《最小二乘法数据拟合》由会员分享,可在线阅读,更多相关《最小二乘法数据拟合(4页珍藏版)》请在金锄头文库上搜索。
1、最小二乘法数据拟合设给定数据 ,),(ifx),21(mL在集合 中找一个函数,Span0n, (1)()(*0*xxk)其误差是, (2)iiifS)(*),21(mL使 满足x(3)21)(*12 )(miniiixSiiiii fxS是 上给定的权函数。上述求逼近函数 的方法就称为曲线拟合的最小0)(,ba )(*xS二乘法。满足关系式(3)的函数 称为上述最小二乘问题的最小二乘解。)(*xS并且有结论:1)对于给定的函数表 , ,在函数类 中存),(if),21(mL ,Span10nL在唯一的函数 ,使得关系式(3)成立。)*0*xaxSkn2)最小二乘解的系数 可以通过解法方程*1
2、*,nL, (4),(),(0faknkj ),20j作为曲线拟合的一种常用的情况,如果讨论的是代数多项式拟合,即取 ,1,210 nnxLL那么相应的法方程(4)就是(5) iniininini niii iii fxfaxxMLOM10212其中, ,并且将 简写成“ ”。)(iixmi1此时, ,称它为数据拟合多项式,上述拟合称为多项式拟合。knaS0*)(例:已知某高度传感器测得的数据如下表:表 1序号 i1 2 3 4 5 6 7时间 x(秒) 1 2 3 4 6 7 8高度 iy(米) 2 3 6 7 5 3 2试用最小二乘法求多项式曲线与此数据组拟合。(一)算法:解:取二次方多项
3、式去拟合(当然也可以取三次、四次等,次数越高计算越复杂) ,210)(xaxfy由式(5)可建立法方程组(其中取 )1)(i(6)7127120717143271712iiiiiiiiiiiiii yxyaxxx由表 1 的数据可以计算出, , , , , ,71ix712i713ix714i71iy71iix712iy计算结果列在表 2 中i1 2 3 4 5 6 7求和时间 ix(秒) 1 2 3 4 6 7 8 31高度 iy(米) 2 3 6 7 5 3 2 282ix1 4 9 16 36 49 64 17931 8 27 64 216 343 512 11714i1 16 81 2
4、56 1296 2401 4096 8147yx2 6 18 28 30 21 16 121i22 12 54 112 180 147 128 635将表 2 中算得的结果代入法方程(6),可得:14762-3510398042aa解方程组可得:8.47210a故所求拟合曲线为: 23864.0421.35.)( xxfy(二)用 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.3864 3.4318 -1.31820 1 2 3 4 5 6 7 8 9 10-6-4-202468