曲线拟合_线性最小二乘法及其MATLAB程序

上传人:di****ng 文档编号:36425388 上传时间:2018-03-28 格式:DOC 页数:11 大小:299KB
返回 下载 相关 举报
曲线拟合_线性最小二乘法及其MATLAB程序_第1页
第1页 / 共11页
曲线拟合_线性最小二乘法及其MATLAB程序_第2页
第2页 / 共11页
曲线拟合_线性最小二乘法及其MATLAB程序_第3页
第3页 / 共11页
曲线拟合_线性最小二乘法及其MATLAB程序_第4页
第4页 / 共11页
曲线拟合_线性最小二乘法及其MATLAB程序_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《曲线拟合_线性最小二乘法及其MATLAB程序》由会员分享,可在线阅读,更多相关《曲线拟合_线性最小二乘法及其MATLAB程序(11页珍藏版)》请在金锄头文库上搜索。

1、函数逼近与曲线拟合1051 1 曲线拟合的线性最小二乘法及其曲线拟合的线性最小二乘法及其 MATLABMATLAB 程序程序例例 7.2.17.2.1 给出一组数据点列入表 72 中,试用线性最小二乘法求拟合曲线,),(iiyx并用(7.2) , (7.3)和(7.4)式估计其误差,作出拟合曲线.表 72 例 7.2.1 的一组数据),(iiyxxi-2.5 -1.7 -1.1 -0.8 0 0.1 1.5 2.7 3.6 yi-192.9 -85.50 -36.15 -26.52 -9.10 -8.43 -13.12 6.50 68.04解解 (1 1)在 MATLAB 工作窗口输入程序 x

2、=-2.5 -1.7 -1.1 -0.8 0 0.1 1.5 2.7 3.6;y=-192.9 -85.50 -36.15 -26.52 -9.10 -8.43 -13.12 6.50 68.04; plot(x,y,r*), legend(实验数据(xi,yi) xlabel(x), ylabel(y), title(例7.2.1的数据点(xi,yi)的散点图) 运行后屏幕显示数据的散点图(略). (3 3)编写下列 MATLAB 程序计算在处的函数值,即输入程序)(xf),(iiyx syms a1 a2 a3 a4 x=-2.5 -1.7 -1.1 -0.8 0 0.1 1.5 2.7

3、3.6; fi=a1.*x.3+ a2.*x.2+ a3.*x+ a4 运行后屏幕显示关于a1,a2, a3和a4的线性方程组 fi = -125/8*a1+25/4*a2-5/2*a3+a4, - 4913/1000*a1+289/100*a2-17/10*a3+a4, -1331/1000*a1+121/100*a2- 11/10*a3+a4, -64/125*a1+16/25*a2-4/5*a3+a4, a4, 1/1000*a1+1/100*a2+1/10*a3+a4, 27/8*a1+9/4*a2+3/2*a3+a4, 19683/1000*a1+729/100*a2+27/10*a

4、3+a4, 5832/125*a1+324/25*a2+18/5*a3+a4 编写构造误差平方和的 MATLAB 程序 y=-192.9 -85.50 -36.15 -26.52 -9.10 -8.43 -13.12 6.50 68.04; fi=-125/8*a1+25/4*a2-5/2*a3+a4, - 4913/1000*a1+289/100*a2-17/10*a3+a4, - 1331/1000*a1+121/100*a2-11/10*a3+a4, - 64/125*a1+16/25*a2-4/5*a3+a4, a4, 1/1000*a1+1/100*a2+1/10*a3+a4, 27

5、/8*a1+9/4*a2+3/2*a3+a4, 19683/1000*a1+729/100*a2+27/10*a3+a4, 5832/125*a1+324/25*a2+18/5*a3+a4; fy=fi-y; fy2=fy.2; J=sum(fy.2) 运行后屏幕显示误差平方和如下 J= (-125/8*a1+25/4*a2-5/2*a3+a4+1929/10)2+(- 4913/1000*a1+289/100*a2-17/10*a3+a4+171/2)2+(- 1331/1000*a1+121/100*a2-11/10*a3+a4+723/20)2+(- 64/125*a1+16/25*a2

6、- 4/5*a3+a4+663/25)2+(a4+91/10)2+(1/1000*a1+1/100*a2+1/10*a3+a4 +843/100)2+(27/8*a1+9/4*a2+3/2*a3+a4+328/25)2+(19683/1000*a1+ 729/100*a2+27/10*a3+a4- 13/2)2+(5832/125*a1+324/25*a2+18/5*a3+a4-1701/25)2为求使达到最小,只需利用极值的必要条件 4321,aaaaJ0kaJ函数逼近与曲线拟合106,得到关于的线性方程组,这可以由下面的 MATLAB 程序完)4 , 3 , 2 , 1(k4321,aaa

7、a成,即输入程序 syms a1 a2 a3 a4 J=(-125/8*a1+25/4*a2-5/2*a3+a4+1929/10)2+(- 4913/1000*a1+289/100*a2-17/10*a3+a4.+171/2)2+(- 1331/1000*a1+121/100*a2-11/10*a3+a4+723/20)2+(- 64/125*a1+16/25*a2- 4/5*a3+a4+663/25)2+(a4+91/10)2+(1/1000*a1+1/100*a2+1/10*a3+a4 +843/100)2+(27/8*a1+9/4*a2+3/2*a3+a4+328/25)2+(19683

8、/1000*a1+ 729/100*a2+27/10*a3+a4- 13/2)2+(5832/125*a1+324/25*a2+18/5*a3+a4-1701/25)2; Ja1=diff(J,a1); Ja2=diff(J,a2); Ja3=diff(J,a3); Ja4=diff(J,a4); Ja11=simple(Ja1), Ja21=simple(Ja2), Ja31=simple(Ja3), Ja41=simple(Ja4), 运行后屏幕显示 J 分别对 a1, a2 ,a3 ,a4的偏导数如下 Ja11= 56918107/10000*a1+32097579/25000*a2+1

9、377283/2500*a3+ 23667/250*a4-8442429/625 Ja21 = 32097579/25000*a1+1377283/2500*a2+23667/250*a3+67*a4 +767319/625 Ja31 = 1377283/2500*a1+23667/250*a2+67*a3+18/5*a4-232638/125 Ja41 = 23667/250*a1+67*a2+18/5*a3+18*a4+14859/25 解线性方程组 Ja11 =0,Ja21 =0,Ja31 =0,Ja41 =0,输入下列程序 A=56918107/10000, 32097579/2500

10、0, 1377283/2500, 23667/250; 32097579/25000, 1377283/2500, 23667/250, 67; 1377283/2500, 23667/250, 67, 18/5; 23667/250, 67, 18/5, 18; B=8442429/625, -767319/625, 232638/125, -14859/25; C=B/A, f=poly2sym(C) 运行后屏幕显示拟合函数 f 及其系数 C 如下 C = 5.0911 -14.1905 6.4102 -8.2574 f=716503695845759/140737488355328*x3

11、 -7988544102557579/562949953421312*x2 +1804307491277693/281474976710656*x -4648521160813215/562949953421312 故所求的拟合曲线为.8.25746.410214.19055.0911)(23xxxxf (4 4)编写下面的 MATLAB 程序估计其误差,并作出拟合曲线和数据的图形.输入 程序 xi=-2.5 -1.7 -1.1 -0.8 0 0.1 1.5 2.7 3.6;y=-192.9 -85.50 -36.15 -26.52 -9.10 -8.43 -13.12 6.50 68.04;

12、 n=length(xi); f=5.0911.*xi.3-14.1905.*xi.2+6.4102.*xi -8.2574; x=-2.5:0.01: 3.6; F=5.0911.*x.3-14.1905.*x.2+6.4102.*x -8.2574; fy=abs(f-y); fy2=fy.2; Ew=max(fy), E1=sum(fy)/n, E2=sqrt(sum(fy2)/n) plot(xi,y,r*), hold on, plot(x,F,b-), hold off legend(数据点(xi,yi),拟合曲线y=f(x), xlabel(x), ylabel(y), titl

13、e(例7.2.1的数据点(xi,yi)和拟合曲线y=f(x)的图形) 运行后屏幕显示数据与拟合函数 f 的最大误差Ew,平均误差E1和均方根误差E2),(iiyx及其数据点和拟合曲线 y=f(x)的图形(略).),(iiyx函数逼近与曲线拟合107Ew = E1 = E2 = 3.105 4 0.903 4 1.240 97.37.3 函数函数的选取及其的选取及其 MATLABMATLAB 程序程序)(xrk例例7.3.17.3.1 给出一组实验数据点的横坐标向量为x=(-8.5,-8.7,-7.1,-6.8,-),(iiyx5.10,-4.5,-3.6,-3.4,-2.6,-2.5, -2.

14、1,-1.5, -2.7,-3.6),纵横坐标向量为 y=(459.26,52.81,198.27,165.60,59.17,41.66,25.92, 22.37,13.47, 12.87, 11.87,6.69,14.87,24.22),试用线性最小二乘法求拟合曲线,并用(7.2) , (7.3)和 (7.4)式估计其误差,作出拟合曲线. 解解 (1 1)在 MATLAB 工作窗口输入程序 x=-8.5,-8.7,-7.1,-6.8,-5.10,-4.5,-3.6,-3.4,-2.6,-2.5, -2.1,-1.5, -2.7,-3.6; y=459.26,52.81,198.27,165.

15、60,59.17,41.66,25.92, 22.37,13.47, 12.87, 11.87,6.69,14.87,24.22; plot(x,y,r*),legend(实验数据(xi,yi) xlabel(x), ylabel(y), title(例7.3.1的数据点(xi,yi)的散点图) 运行后屏幕显示数据的散点图(略). (3 3)编写下列 MATLAB 程序计算在处的函数值,即输入程序)(xf),(iiyx syms a b x=-8.5,-8.7,-7.1,-6.8,-5.10,-4.5,-3.6,-3.4,-2.6,-2.5,- 2.1,-1.5,-2.7,-3.6; fi=a.*exp(-b.*x) 运行后屏幕显示关于a和b的线性方程组 fi = a*exp(17/2*b), a*exp(87/10*b), a*exp(71/10*b), a*exp(34/5*b), a*exp(51/10*b), a*exp(9/2*b),

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号