资源预览内容
第1页 / 共17页
第2页 / 共17页
第3页 / 共17页
第4页 / 共17页
第5页 / 共17页
第6页 / 共17页
第7页 / 共17页
第8页 / 共17页
第9页 / 共17页
第10页 / 共17页
亲,该文档总共17页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
数 值 分 析2013 年 12 月最小二乘法的基本原理和多项式拟合摘 要:随着科技发展和社会进步,尤其是计算机大范围的普及,计算机应用逐渐由大规模科学计算的海量数据处理转向日常学习中遇到的小型数据的处理与计算,这就产生了解决各种实际问题需要的各种应用程序,特别是在电磁检验实验中的应用更为广泛。最小二乘法(又称最小平方法)是一种数学优化技术,是利用最小化误差的平方和寻找数据的最佳函数匹配的一种计算方法1,本文对最小二乘法进行了深入细致的研究,利用 Matlab 语言编制程序和数学知识相结合,通过实验数据的输入,实现多项式和曲线拟合的输出,并利用设计的程序实现了一些实际问题的求解和处理。关键词:最小二乘法,曲线拟合,多项式一、前言曲线拟合又称作函数逼近,是求近似函数的一类数值方法它不要求近似函数在每个节点处与函数值相同,只要求其尽可能的反映给定数据点的基本趋势以及某种意义上的无限“逼近” 在需要对一组数据进行处理、筛选时,我们往往会选择合理的数值方法,而曲线拟合在实际应用中也倍受青睐采用曲线拟合处理数据时,一般会考虑到误差的影响,于是我们往往基于残差的平方和最小的准则选取拟合曲线的方法,这便是经常所说的曲线拟合的最小二乘法通过对一些文献的分析和整理,不仅有数据处理(数据采集) ,还有模型建立,可以了解到曲线拟合的最小二乘法的应用领域较为广泛。二、最小二乘法法的介绍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)的平方和最小,即=从几何意义上讲,就是寻求与给定点 (i=0,1,m)的距离平方和为最小的曲线 (图 6-1)。函数 称为拟合 函数或最小二乘解,求拟合函数 的方法称为曲线拟合的最小二乘法。 在曲线拟合中,函数类 可有不同的选取方法.612),多项式拟合假设给定数据点 (i=0,1,m), 为所有次数不超过 的多项式构成的函数类,现求一 ,使得(1)当拟合函数为多项式时,称为多项式拟合,满足式(1)的 称为最小二乘拟合多项式。特别地,当 n=1 时,称为线性拟合或直线拟合。显然为 的多元函数,因此上述问题即为求 的极值 问题。由多元函数求极值的必要条件,得(2)即 (3)(3)是关于 的线性方程组,用矩阵表示为(4)式(3)或式(4)称为正规方程组或法方程组。可以证明,方程组(4)的系数矩阵是一个对称正定矩阵,故存在唯一解。从式(4)中解出 (k=0,1,,n),从而可得多项式 (5)可以证明,式(5)中的 满足式(1),即 为所求的拟合多项式。我们把 称为最小二乘拟合多项式 的平方误差,记作由式(2)可得(6)多项式拟合的一般方法可归纳为以下几步:(1) 由已知数据画出函数粗略的图形散点图,确定拟合多项式的次数n;(2) 列表计算 和 ;(3) 写出正规方程组,求出 ;(4) 写出拟合多项式 。在实际应用中, 或 ;当 时所得的拟合多项式就是拉格朗日或牛顿插值多项式。3),最小二乘拟合多项式的存在唯一性定理 1 设节点 互异,则法方程组(4)的解存在唯一。证 由克莱姆法则,只需证明方程组(4)的系数矩阵非奇异即可。用反证法,设方程组(4)的系数矩阵奇异,则其所对应的齐次方程组(7)有非零解。式(7)可写为(8)将式(8)中第 j 个方程乘以 (j=0,1,,n),然后将新得到的 n+1 个方程左右两端分别 相加,得因为其中所以(i=0,1,m)是次数不超过 n 的多项式,它有 m+1n 个相异零点,由代数基本定理,必须有 ,与齐次方程组有非零解的假设矛盾。因此正规方程组(4)必有唯一解 。定理 2 设 是正规方程组(4)的解,则是满足式(1)的最小二乘拟合多项式。证 只需证明,对任意一组数 组成的多项式 ,恒有即可。因为 (k=0,1,,n)是正规方程组(4)的解,所以满足式(2),因此有故 为最小二乘拟合多项式。2 算法实现在化学反应中,由实验测得分解物浓度与时间的关系如下表 1 所示表 1 浓度(y)与时间( t )的关系实验数据表t 0 5 10 15 20 25y 0 1.27 2.16 2.86 3.44 3.87t 30 35 40 45 50 55y 4.15 4.37 4.51 4.58 4.62 4.643 思路解答根据题设要求即根据所给数据求一未知的多项式拟合曲线,由于曲线未知,只能通过已知数据去确定待定的多项式参数,进而使数据尽可能的逼近所求曲线最后再通过总误差比较,取最小误差对应多项式即可不妨设所求多项式为fiv, 式中 表示多项式的最高次数10 0mjyaxax m说明:表格(1)中 是题设给定的函数值,f0,f1,f2,f5,f9 分别表示拟合iy多项式最高次数 m=1,2,3,6,10 时的拟合值由于数据不是很多,可以直接用最小二乘法找出最好的拟合曲线具体就是比较总误差的大小,然后取误差最小的那条拟合曲线即可当然,可根据均方差 和偏差 G= 211)(iniitfyQ。计算求得同时根据法方程组yf或者多项式公式 ,可求出其多项式系数表 a据表 a 可得一次多项式系数 a1=0.0765,a0=1.2667,故267.105.fx可得二次多项式系数 a2= 0.0022,a1=0.1992,a0=0.2453,故三次多项式系数 a3=0.000032499,a2=-0.0049,a1=0.2557,a0=0.0122,故同理六次和十次多项式拟合曲线 分别为 6-234-5- 7-88-1098104 10*.490.5*6.2*.- 1*3*6738219 xxx xfa. 用 matlab 绘出多项式拟合的直观图:i ti yi ti2 tiyi ti3 ti4 ti5 ti6 ti2yi ti3yi0 0 0 0 0 0 0 0 0 0 01 5 1.27 25 6.35 125 625 3125 15625 31.75 158.752 10 2.16 100 21.6 100 10000 100000 1000000 216 21603 15 2.86 225 42.9 3375 50625 759375 11390625 643.5 9652.54 20 3.44 400 68.8 8000 160000 3200000 64000000 1376 275205 25 3.87 625 96.75 15625 390625 9765625 244140625 2418.75 60468.756 30 4.15 900 124.5 27000 810000 24300000 729000000 3735 1120507 35 4.37 1225 152.95 42875 1500625 52521875 1838265625 5353.25 187363.88 40 4.51 1600 180.4 64000 2560000 102400000 4096000000 6640 2656009 45 4.58 2025 206.1 91125 4100625 184528125 8303765625 9274.5 417352.510 50 4.62 2500 231 12500 6250000 312500000 15625000000 11550 57750011 55 4.64 3025 255.2 166375 9150625 503284375 27680640625 14036 771980和 330 40.47 12650 1386.55 431100 24983750 1193362500 58593218750 55274.75 2431806 图一4 总误差比较与分析:用 matlab 程序 tw计算可得最大偏差和均方差分别为Gw1=1.2677,Gw2=0.2453,Gw3=0.0661,Gw6=0.0188,Gw10=0.0040074.)(1032.609.)(3471.2085.2)(1212915211120iiiiiiiiiifyEffyfEfy根据图一可知一次多项式拟合和二次多项式拟合偏差太大,三次、六次、十次多项式比较贴近真实值,再结合多项式拟合的最大偏差和均方差,可清晰知道十次多项式拟合的数据最小故十次多项式拟合更接近实际值,综合可知 10 次多项式拟合曲线比 1、2、3 和 6 次拟合更加接近题设所给数据三、参考文献1 李庆扬,王能超,易大义. 数值分析M.清华大学出版社:2009 年:第三章2 姜健飞,胡良剑,唐 俭.数值分析及其 MATLAB 实验M.科学出版社:2004 年:第四章3 罗建军, 杨 琦,冯博琴 .MATLAB 数值分析M.机械工业出版社:2012 年:第三、七章4 张 铁,阎家斌 数值分析M 北京: 冶金工业出版社,2005第二、三章5 李岳生,黄友谦.数值逼近.人民教育出版社,1978, (3):36-41 6 陈杰,张增强,于锋.MATLAB 宝典第 3 版.北京:电子工业出版社,2011.1.第六章第二三节四、附录t=0 5 10 15 20 25 30 35 40 45 50 55y=0 1.27 2.16 2.86 3.44 3.87 4.15 4.37 4.51 4.58 4.62 4.64figure(1)plot(t,y,bo)grid onhold onxs0=polyfit(t,y,1);% 插值点,其中 1 表示一次多项式,即直线a=xs0(1)% 插值求得一次项系数 b=xs0(2)% 插值求得常数项项系数 f0=polyval(xs0,t) % 求得拟合出来的多项式在输入值为 t 下的 y 值xs1=polyfit(t,y,2);% 插值点,其中 1 表示一次多项式,即直线a=xs1(1) %插值求得二次项系数b=xs1(2) %插值求得一次项系数c=xs1(3) %插值求得常数项系数f1=polyval(xs1,t) % 求得拟合出来的多项式在输入值为 t 下的 y 值xs2=polyfit(t,y,3);a=xs2(1) %插值求得三次项系数b=xs2(2) %插值求得二次项系数c=xs2(3) %插值求得一次项系数d=xs2(4) %插值求得常数项系数f2=polyval(xs2,t) % 求得拟合出来的多项式在输入值为 t 下的 y 值xs5=polyfit(t,y,6);a=xs5(1) %插值求得六次项系数b=xs5(2) %插值求得五次项系数c=xs5(3) %插值求得四次项系数d=xs5(4) %插值求得三次项系数e=xs5(5) %插值求得二次项系数f=xs5(6) %插值求得一次项系数g=xs5(7) %插值求得常数项系数f5=po
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号