zoukankan      html  css  js  c++  java
  • math.net 拟合

    参考:http://blog.csdn.net/ztmsimon/article/details/50524392

    在论坛中总看到有人在说Math.NET Iridium,查了一下,现在被整合到MathNet.Numerics这个库中来了。

    但是好像对于MathNet.Numerics这个库的相关资料比较少。我

    大概看了一下,MathNet.Numerics这个库太博大精深了,就举线性拟合的例子来说明一下这个库。

    1、引用库:

    在http://numerics.mathdotnet.com/这个网址中,我没看到怎么直接下载这个库的地方,但是有Nuget/GitHub。

    但是GitHub好像是这个项目的源代码,不是库,没怎么具体看。就转到Nuget上下载了。

    安装Nuget在https://dist.nuget.org/index.html这个页面--DOWNLOADS里面就有。并且在VS2013好像是集成Nuget的,不用安装。

    在VS2013中--工具--Nuget包管理器--程序包管理器控制台--输入"Install-Package MathNet.Numerics"。等待安装完成即可。

    完成后,程序的文件夹中会多一个packages文件夹,程序中也自动引用了MathNet.Numerics,这个时候就能使用了。

    2、拟合直线:

                Tuple<double, double> s = new Tuple<double, double>(0, 0);
                s = Fit.Line(X, Y);

    这个就很好理解了:double[] X = new double[i];为x轴的数组,double[] Y = new double[i];为y轴的数组,s为拟合出来直线参数,s.Item2为斜率k,s.Item1为斜率b。

    (公式为y=s.Item2*x+s.Item1)

    3、拟合曲线:

                   double[] res = Fit.Polynomial(X, Y, m);

    其中:与直线拟合一样,X为x轴的数组,Y为y轴数组,m为次方数。

    比如平时我们使用较多的4次方,m就输入4,公式为:y=res[4]*x^4+res[3]*x^3+res[2]*x^2+res[1]*x+res[0]

    4、计算曲线拟合出来的R^2

    虽然不太理解R^2是什么意思,但是使用EXCEL拟合的时候,都会有这个值,并且这个值越接近1,说明拟合出来的曲线跟原曲线就越接近。

    RSquared=GoodnessOfFit.RSquared(Y, Ytest);

    这个命令就是计算R^2,其中Y为原始的Y点,Ytest是使用拟合出来的线计算的Y点,相当于原始线与拟合线做比较。

    本人对MathNet.Numerics理解也不深,也是才开始使用。后续如有再遇到其他的问题的时候再记录。


    c#代码三次样条插值。

    http://blog.csdn.net/panjinliang066333/article/details/56682829


    c# 二元多次函数拟合:

    http://blog.sina.com.cn/s/blog_6e51df7f0100thie.html 

  • 相关阅读:
    梯度下降的矩阵分解公式推导
    再谈矩阵分解在推荐系统中的应用
    浅谈矩阵分解在推荐系统中的应用
    tomcat局域网内发布html
    通过JavaScript动态生成html控件
    html 复选框checkbox
    HTML <frameset>不同frame之间传值
    OpenLayers 案例一
    ubuntu java开发环境jdk安装
    如何成为Python高手
  • 原文地址:https://www.cnblogs.com/zhubinglong/p/7905256.html
Copyright © 2011-2022 走看看