注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

易拉罐的博客

心静自然凉

 
 
 

日志

 
 

转 最小二乘法 least squares method  

2011-12-30 22:00:38|  分类: 数学 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

    

原理:

用各个离差的平方和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)

 

 

      在我们研究两个变量(x, y)之间的相互关系时,通常可以得到一系列成对的数据(x1, y1),(x2, y2).. (xm , ym);将这些数据描绘在x -y直角坐标系中(如图1), 若发现这些点在一条直线附近,可以令这条直线方程如(式1-1)。

  Y计= a0 + a1 X (式1-1)
  其中:a0、a1 是任意实数   
  为建立这直线方程就要确定a0和a1,应用《最小二乘法原理》,将实测值Yi与利用(式1-1)计算值(Y计=a0+a1X)的离差(Yi-Y计)的平方和〔∑(Yi - Y计)²〕最小为“优化判据”。
  令: φ = ∑(Yi - Y计)² (式1-2)
  把(式1-1)代入(式1-2)中得:
  φ = ∑(Yi - a0 - a1 Xi)2 (式1-3)
  当∑(Yi-Y计)²最小时,可用函数 φ 对a0、a1求偏导数,令这两个偏导数等于零。
  
  评论这张
 
阅读(515)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017