.Net多项式拟合

有一个项目需要拟合数据序列,从最简单的线性拟合,到复杂的多项式拟合。对于线性拟合,有一个简单的实现,请参考博客:利用最小二乘法拟合任意次函数曲线(C#)http://blog.sina.com.cn/s/blog_6e51df7f0100thie.html

其实有一个现成的库可以用,可参考博客:使用、 Excel 和 Math.Net 进行曲线拟合和数据预测

我用了一些数据,做了一个简单的例子,感觉挺好的:

            double[] X = new double[] { 1, 2, 3, 4, 5 };
            double[] Y = new double[] { 12, 16, 34, 45, 47 };
            double[] parameters = Fit.Polynomial(X, Y, 1);
            foreach (var item in parameters)
            {
                Console.WriteLine(item);
            }

需要先安装Nuget 包:MathNet.Numerics。另外,其返回的参数是从第位开始的,比如对于“y=ax^2+bx+c”,c=p0,b=p1,c=p2。也可以理解为“y=p0+p1*x+p2*x*x”。

posted @ 2021-04-04 21:34  顺其自然,道法自然  阅读(827)  评论(0编辑  收藏  举报