您好,欢迎访问三七文档
最小二乘法数据拟合设给定数据),(iifx,),,2,1(mi在集合},,,{Span10n中找一个函数)()(*0**xaxSknkk,)(mn(1)其误差是iiifxS)(*,),,2,1(mi(2)使)(*xS满足21)(2*112])()[(min])()[(iimiixSiimiimiifxSxfxSx(3)0)(x是],[ba上给定的权函数。上述求逼近函数)(*xS的方法就称为曲线拟合的最小二乘法。满足关系式(3)的函数)(*xS称为上述最小二乘问题的最小二乘解。并且有结论:1)对于给定的函数表),(iifx,),,2,1(mi,在函数类},,,{Span10n中存在唯一的函数)()(*0**xaxSknkk,使得关系式(3)成立。2)最小二乘解的系数**1*0,,,naaa可以通过解法方程),(),(0faknkjk,),,2,1,0(nj(4)作为曲线拟合的一种常用的情况,如果讨论的是代数多项式拟合,即取},,,,1{},,,{210nnxxx那么相应的法方程(4)就是iniiiiiiinniiniiniiniiiiiiniiiiifxfxfaaaxxxxxxxx102112(5)其中,)(iix,并且将mi1简写成“”。此时,knkkxaxS0**)(,称它为数据拟合多项式,上述拟合称为多项式拟合。例:已知某高度传感器测得的数据如下表:表1序号i1234567时间ix(秒)1234678高度iy(米)2367532试用最小二乘法求多项式曲线与此数据组拟合。(一)算法:解:取二次方多项式去拟合(当然也可以取三次、四次等,次数越高计算越复杂),2210)(xaxaaxfy由式(5)可建立法方程组(其中取1)(ix)71271712107171714327171713271717121iiiiiiiiiiiiiiiiiiiiiiiiiyxyxyaaaxxxxxxxx(6)由表1的数据可以计算出71iix,712iix,713iix,714iix,71iiy,71iiiyx,712iiiyx计算结果列在表2中i1234567求和时间ix(秒)123467831高度iy(米)2367532282ix149163649641793ix18276421634351211714ix116812561296240140968147iiyx261828302116121iiyx221254112180147128635将表2中算得的结果代入法方程(6),可得:14762-354100304926-10030101980-30104210210210aaaaaaaaa解方程组可得:88.344547210aaa故所求拟合曲线为:23864.04321.33185.1)(xxxfy(二)用MATLAB编程求解:多项式函数使用polyfit(x,y,n),n为次数拟合曲线x=[1,2,3,4,6,7,8];y=[2,3,6,7,5,3,2];解:MATLAB程序如下:x=[1,2,3,4,6,7,8];y=[2,3,6,7,5,3,2];p=polyfit(x,y,2)x1=0:0.01:10;y1=polyval(p,x1);plot(x,y,'*r',x1,y1,'-b')计算结果为:p=-0.38643.4318-1.3182012345678910-6-4-202468
本文标题:最小二乘法数据拟合
链接地址:https://www.777doc.com/doc-5635496 .html