最小二乘法原理,拟合(matlab)。

来源:互联网 发布:手机录屏直播软件 编辑:程序博客网 时间:2024/05/21 06:30

最小二乘法:

原理:

用各个离差的平方和M=Σ[yi-(axi+b)]^2 (i = 1...n)最小来保证每个离差的绝对值都很小。

为求其最小值,可用函数M对a、b求偏导,并令偏导数为0。

整理得(Σxi^2)a+(Σxi)b=Σxiyi;(Σxi)a+nb=Σyi。解出a,b。

a = (n * Σxiyi - Σxi * Σyi) / (n * Σxi^2 - (Σxi)^2);

b = (Σxi * Σxiyi - Σxi^2 * Σyi) / ((Σxi)^2 - Σxi^2 * n);

 

拟合:

对给定数据点{(Xi,Yi)}(i=0,1,…,m),在取定的函数类Φ 中,求p(x)∈Φ ,使误差的平方和E^2最小,E^2=∑[p(Xi)-Yi]^2。从几何意义上讲,就是寻求与给定点 {(Xi,Yi)}(i=0,1,…,m)的距离平方和为最小的曲线y=p(x)。函数p(x)称为拟合函数或最小二乘解,求拟合函数p(x)的方法称为曲线拟合的最小二乘法。

最小二乘法的Matlab实现

① 一次函数 使用polyfit(x,y,1)  ②多项式函数 使用 polyfit(x,y,n),n为次数  拟合曲线  x=[0.5,1.0,1.5,2.0,2.5,3.0],  y=[1.75,2.45,3.81,4.80,7.00,8.60]。  解:MATLAB程序如下:  x=[0.5,1.0,1.5,2.0,2.5,3.0];  y=[1.75,2.45,3.81,4.80,7.00,8.60];  p=polyfit(x,y,2)  x1=0.5:0.05:3.0;  y1=polyval(p,x1);  plot(x,y,'*r',x1,y1,'-b')  计算结果为:  p =0.5614 0.8287 1.1560  即所得多项式为y=0.5614x^2+0.08287x+1.15560

  ③非线性函数 使用 lsqcurvefit(fun,x0,x,y)

 

转自:百度百科。

原创粉丝点击