ALGLIB Spline1dConvcubic非常错误

时间:2014-08-26 08:39:18

标签: c# interpolation alglib

我有以下代码在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的范围内,但是从略超过0到约-320.000.000.000.000

P.S。: Don&#t; 将此问题标记为偏离主题,重复或其他任何内容。 我可以找到关于此库的问题包含任何有用的来解决我的问题。

0 个答案:

没有答案