《最小二乘法的基本原理和多项式拟合matlab实现(共12页).doc》由会员分享,可在线阅读,更多相关《最小二乘法的基本原理和多项式拟合matlab实现(共12页).doc(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上最小二乘法的基本原理和多项式拟合一、最小二乘法的基本原理从整体上考虑近似函数同所给数据点(i=0,1,m)误差(i=0,1,m)的大小,常用的方法有以下三种:一是误差(i=0,1,m)绝对值的最大值,即误差 向量的范数;二是误差绝对值的和,即误差向量r的1范数;三是误差平方和的算术平方根,即误差向量r的2范数;前两种方法简单、自然,但不便于微分运算 ,后一种方法相当于考虑 2范数的平方,因此在曲线拟合中常采用误差平方和来 度量误差(i=0,1,m)的整体大小。数据拟合的具体作法是:对给定数据 (i=0,1,,m),在取定的函数类中,求,使误差(i=0,1,m)的平方和
2、最小,即 从几何意义上讲,就是寻求与给定点(i=0,1,m)的距离平方和为最小的曲线(图6-1)。函数称为拟合函数或最小二乘解,求拟合函数p(x)的方法称为曲线拟合的最小二乘法。在曲线拟合中,函数类可有不同的选取方法.61二 多项式拟合假设给定数据点(i=0,1,m),为所有次数不超过的多项式构成的函数类,现求一,使得 (1)当拟合函数为多项式时,称为多项式拟合,满足式(1)的称为最小二乘拟合多项式。特别地,当n=1时,称为线性拟合或直线拟合。显然为的多元函数,因此上述问题即为求的极值 问题。由多元函数求极值的必要条件,得 (2)即 (3)(3)是关于的线性方程组,用矩阵表示为 (4)式(3)
3、或式(4)称为正规方程组或法方程组。可以证明,方程组(4)的系数矩阵是一个对称正定矩阵,故存在唯一解。从式(4)中解出(k=0,1,,n),从而可得多项式 (5)可以证明,式(5)中的满足式(1),即为所求的拟合多项式。我们把称为最小二乘拟合多项式的平方误差,记作由式(2)可得 (6)多项式拟合的一般方法可归纳为以下几步: (1) 由已知数据画出函数粗略的图形散点图,确定拟合多项式的次数n;(2) 列表计算和;(3) 写出正规方程组,求出;(4) 写出拟合多项式。在实际应用中,或;当时所得的拟合多项式就是拉格朗日或牛顿插值多项式。 例1 测得铜导线在温度()时的电阻如表6-1,求电阻R与温度
4、T的近似函数关系。i0123456()19.125.030.136.040.045.150.076.3077.8079.2580.8082.3583.9085.10解 画出散点图(图6-2),可见测得的数据接近一条直线,故取n=1,拟合函数为列表如下i019.176.30364.811457.330125.077.80625.001945.000230.179.25906.012385.425336.080.801296.002908.800440.082.351600.003294.000545.183.902034.013783.890650.085.102500.004255.00024
5、5.3565.59325.8320029.445正规方程组为解方程组得故得R与T的拟合直线为利用上述关系式,可以预测不同温度时铜导线的电阻值。例如,由R=0得T=-242.5,即预测温度T=-242.5时,铜导线无电阻。6-2例2 例2 已知实验数据如下表i01234567813456789101054211234试用最小二乘法求它的二次拟合多项式。解 设拟合曲线方程为列表如下I0110111101013592781154524416642561664352251256251050461362161296636571493432401749682645124096161287938172965
6、612724381041001000100004040053323813017253171471025得正规方程组解得故拟合多项式为*三 最小二乘拟合多项式的存在唯一性定理1 设节点互异,则法方程组(4)的解存在唯一。证 由克莱姆法则,只需证明方程组(4)的系数矩阵非奇异即可。用反证法,设方程组(4)的系数矩阵奇异,则其所对应的齐次方程组 (7)有非零解。式(7)可写为 (8)将式(8)中第j个方程乘以(j=0,1,,n),然后将新得到的n+1个方程左右两端分别 相加,得因为其中所以 (i=0,1,m)是次数不超过n的多项式,它有m+1n个相异零点,由代数基本定理,必须有,与齐次方程组有非零解
7、的假设矛盾。因此正规方程组(4)必有唯一解 。定理2 设是正规方程组(4)的解,则是满足式(1)的最小二乘拟合多项式。证 只需证明,对任意一组数组成的多项式,恒有即可。因为(k=0,1,,n)是正规方程组(4)的解,所以满足式(2),因此有故为最小二乘拟合多项式。*四 多项式拟合中克服正规方程组的病态在多项式拟合中,当拟合多项式的次数较高时,其正规方程组往往是病态的。而且正规方程组系数矩阵的阶数越高,病态越严重;拟合节点分布的区间偏离原点越远,病态越严重;(i=0,1,,m)的数量级相差越大,病态越严重。为了克服以上缺点,一般采用以下措施:尽量少作高次拟合多项式,而作不同的分段低次拟合;不使用
8、原始节点作拟合,将节点分布区间作平移,使新的节点关于原 点对称,可大大降低正规方程组的条件数,从而减低病态程度。平移公式为: (9)对平移后的节点(i=0,1,,m),再作压缩或扩张处理: (10)其中,(r是拟合次数) (11) 经过这样调整可以使的数量级不太大也不太小,特别对于等距节点,作式(10)和式(11)两项变换后,其正规方程组的系数矩阵设 为A,则对14次多项式拟合,条件数都不太大,都可以得到满意的结果。变换后的条件数上限表如下:拟合次数1234=19.950.3t=20.5 32.5 51 73 95.7 r=765 826 873 942 1032aa=polyfit(t,r,
9、1) % 插值点,其中1表示一次多项式,即直线a=aa(1) % 插值求得一次项系数 a=3.3940b=aa(2) % 插值求得常数项系数 b=702.4918y=polyval(aa,t) %求得拟合出来的多项式在输入值为x下的y值plot(t,r,k+, t,y,r) 图1-1(2)例题对以下数据分别作二次和三次多项式拟合,求得多项式系数,并画出图形。u 二次多项式拟合程序如下:(程序中如果想显示结果就不加分号,图1-2)%多项式最小二乘法拟合,参照(matlab实验实验指导书李新平 实验六)自己做的%多项式表示为y=ax.2+bx+cx=2 4 5 6 7 8 10 12 14 16;
10、 r=6.4 8.4 9.28 9.5 9.7 9.86 10.2 10.4 10.5 10.6;xs=polyfit(x,r,2); %求的系数矩阵这里是向量xs,其中2表示二次多项式a=xs(1) % 插值求得二次项系数b=xs(2) % 插值求得一次项系数c=xs(3) % 插值求得常数项y=polyval(xs,x) %求得拟合出来的多项式在输入值为x下的y值plot(x,r,r*,x,y,b-) %画出通过数据点而拟合出来的曲线u 三次多项式拟合程序如下:(图1-3)%多项式最小二乘法拟合,参照(matlab实验实验指导书李新平 实验六)自己做的%多项式表示为y=ax.3+bx.2+
11、cx+dx=2 4 5 6 7 8 10 12 14 16; r=6.4 8.4 9.28 9.5 9.7 9.86 10.2 10.4 10.5 10.6;xs=polyfit(x,r,3);a=xs(1)b=xs(2)c=xs(3)d=xs(4)y=polyval(xs,x)plot(x,r,r*,x,y,b-) 图1-2 图1-34、 拟合和插值 【例4.3-6】对于给定数据对x0 , y0 ,求拟合三阶多项式,并图示拟合情况。(见图4.3-1 ) x0=0:0.1:1; y0=-.447,1.978,3.11,5.25,5.02,4.66,4.01,4.58,3.45,5.35,9.2
12、2; n=3; P=polyfit(x0,y0,n) xx=0:0.01:1; yy=polyval(P,xx); plot(xx,yy,-b,x0,y0,.r,MarkerSize,20),xlabel(x) 【例4.3-7】以上例所给数据,研究一维插值,并观察插值与拟合的区别。 x0=0:0.1:1; y0=-.447,1.978,3.11,5.25,5.02,4.66,4.01,4.58,3.45,5.35,9.22; xi=0:0.02:1; yi=interp1(x0,y0,xi,cubic); plot(xi,yi,-b,x0,y0,.r,MarkerSize,20), xlabel(x)专心-专注-专业