ALGLIB Spline1dConvcubic идет ужасно неправильно
У меня есть следующий код для выполнения сплайн-интерполяции в C# с ALGLIB:
void interpolateData() // Spline 1D convcubic
{
int anzNeueWerte = Convert.ToInt32(
Interaction.InputBox("Enter the new number of x-values:"
", x.Length / 2 + "", 500, 500));
double[] xNeu = new double[anzNeueWerte]; double[] yNeu;
double tempXNeu = 0;
for(int i = 0; i < xNeu.Length; i ++)
{
xNeu[i] = tempXNeu
tempXNeu += ((double) x.Length / anzNeueWerte);
}
alglib.spline1dconvcubic(x, y, xNeu, out yNeu);
for(int i = 0; i < y.Length; i ++)
{
vorher.Add(new PointPair(x[i], y[i]));
Debug.WriteLine("Vorher:" + vorher.ElementAt(i).ToString());
}
for(int i = 0; i < yNeu.Length; i ++)
{
nachher.Add(new PointPair(xNeu[i], yNeu[i]));
Debug.WriteLine("Nachher:" + nachher.ElementAt(i).ToString());
}
CreateGraph();
}
Я уже проверил входные значения, на случай, если они прочитаны неверно, и они верны. Единственное, что идет не так - это строка с alglib.spline1dconvcubic (..). Я не знаю, если расчет не работает или я просто пишу так, чтобы десятичные точки по какой-то причине находились в очень разных местах.
Переменная anzNeueWerte (немецкий) определяет новое число значений x для набора данных. Переменные xNeu и yNeu являются двойными массивами, которые содержат новые значения x и y.
Последняя строка CreateGraph() просто вызывает метод для рисования диаграммы ZedGraph, который работает как надо, поэтому проблема не в этой строке и не в вызываемом им методе.
У меня уже было это на прошлой неделе, и я почти уверен, что с тех пор ничего не изменилось.
Любая помощь приветствуется.
Заранее спасибо.
РЕДАКТИРОВАТЬ: Y-значения должны быть в диапазоне 0-8000, но перейти от чуть более нуля до -320.000.000.000.000
PS: не отмечайте этот вопрос как не по теме, дубликат или что-то еще. Ни один из вопросов, которые я мог найти об этой библиотеке, не содержит ничего полезного для моей проблемы.