ImageVerifierCode 换一换
格式:DOC , 页数:11 ,大小:299KB ,
资源ID:6021510      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/6021510.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(曲线拟合_线性最小二乘法及其MATLAB程序.doc)为本站上传会员【xrp****65】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

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

1、函数逼近与曲线拟合 1 曲线拟合的线性最小二乘法及其MATLAB程序 例7.2.1 给出一组数据点列入表7–2中,试用线性最小二乘法求拟合曲线,并用(7.2),(7.3)和(7.4)式估计其误差,作出拟合曲线. 表7–2 例7.2.1的一组数据 xi -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)在MATLAB工作窗口输

2、入程序 >> x=[-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)编写下列MATLAB程序计算在处的函数值,即输入程序 >> syms a1 a2 a3 a4

3、x=[-2.5 -1.7 -1.1 -0.8 0 0.1 1.5 2.7 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/1

4、0*a3+a4, 27/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] 编写构造误差平方和的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

5、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*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+(-4

6、913/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/1000*a1+729/100*a2+27/10*a3+a4-13/2)^2+(5832/125*a1+324/25*a2+18/5*a3

7、a4-1701/25)^2 为求使达到最小,只需利用极值的必要条件 ,得到关于的线性方程组,这可以由下面的MATLAB程序完成,即输入程序 >> 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+

8、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; 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),

9、运行后屏幕显示J分别对a1, a2 ,a3 ,a4的偏导数如下 Ja11= 56918107/10000*a1+32097579/25000*a2+1377283/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+1485

10、9/25 解线性方程组Ja11 =0,Ja21 =0,Ja31 =0,Ja41 =0,输入下列程序 >>A=[56918107/10000, 32097579/25000, 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) 运行

11、后屏幕显示拟合函数f及其系数C如下 C = 5.0911 -14.1905 6.4102 -8.2574 f=716503695845759/140737488355328*x^3 -7988544102557579/562949953421312*x^2 +1804307491277693/281474976710656*x -4648521160813215/562949953421312 故所求的拟合曲线为 . (4)编写下面的MATLAB程序估计其误差,并作出拟合曲线和数据的图形.输入程序 >> xi=[-2.

12、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]; 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)

13、/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'), title('例7.2.1的数据点(xi,yi)和拟合曲线y=f(x)的图形') 运行后屏幕显示数据与拟合函数f的最大误差Ew,平均误差E1和均方根误差E2及其数据点和拟合曲线y=f(x)的图形(略). Ew = E1 = E2 = 3.105 4

14、 0.903 4 1.240 9 7.3 函数的选取及其MATLAB程序 例7.3.1 给出一组实验数据点的横坐标向量为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.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)式估计其误差,作出拟

15、合曲线. 解 (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.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)的散点图')

16、 运行后屏幕显示数据的散点图(略). (3)编写下列MATLAB程序计算在处的函数值,即输入程序 >> 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), a*exp(18/5*b),

17、a*exp(17/5*b), a*exp(13/5*b), a*exp(5/2*b), a*exp(21/10*b), a*exp(3/2*b), a*exp(27/10*b), a*exp(18/5*b)] 编写构造误差平方和的MATLAB程序如下 >>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]; fi =[ a*exp(17/2*b), a*exp(87/10*b), a*exp(71/10*b), a*exp(34/5*b), a

18、exp(51/10*b), a*exp(9/2*b), a*exp(18/5*b), a*exp(17/5*b), a*exp(13/5*b), a*exp(5/2*b), a*exp(21/10*b), a*exp(3/2*b), a*exp(27/10*b), a*exp(18/5*b)]; fy=fi-y; fy2=fy.^2; J=sum(fy.^2) 运行后屏幕显示误差平方和如下 J = (a*exp(17/2*b)-22963/50)^2+(a*exp(87/10*b)-5281/100)^2+(a*exp(71/10*b)-19827/100)

19、^2+(a*exp(34/5*b)-828/5)^2+(a*exp(51/10*b)-5917/100)^2+(a*exp(9/2*b)-2083/50)^2+(a*exp(18/5*b)-648/25)^2+(a*exp(17/5*b)-2237/100)^2+(a*exp(13/5*b)-1347/100)^2+(a*exp(5/2*b)-1287/100)^2+(a*exp(21/10*b)-1187/100)^2+(a*exp(3/2*b)-669/100)^2+(a*exp(27/10*b)-1487/100)^2+(a*exp(18/5*b)-1211/50)^2 为求使达到最小

20、只需利用极值的必要条件,得到关于的线性方程组,这可以由下面的MATLAB程序完成,即输入程序 >> syms a b J=(a*exp(17/2*b)-22963/50)^2+(a*exp(87/10*b)-5281/100)^2+(a*exp(71/10*b)-19827/100)^2+(a*exp(34/5*b)-828/5)^2+(a*exp(51/10*b)-5917/100)^2+(a*exp(9/2*b)-2083/50)^2+(a*exp(18/5*b)-648/25)^2+(a*exp(17/5*b)-2237/100)^2+(a*exp(13/5*b)-1347/100

21、)^2+(a*exp(5/2*b)-1287/100)^2+(a*exp(21/10*b)-1187/100)^2+(a*exp(3/2*b)-669/100)^2+(a*exp(27/10*b)-1487/100)^2+(a*exp(18/5*b)-1211/50)^2; Ja=diff(J,a); Jb=diff(J,b); Ja1=simple(Ja), Jb1=simple(Jb), 运行后屏幕显示J分别对的偏导数如下 Ja1 = 2*a*exp(3*b)+2*a*exp(17*b)+2*a*exp(87/5*b)+2*exp(68/5*b)*a+2*exp(9*b)*a+

22、2*a*exp(34/5*b)-669/50*exp(3/2*b)-1487/50*exp(27/10*b)-2507/25*exp(18/5*b)-22963/25*exp(17/2*b)-5281/50*exp(87/10*b)-19827/50*exp(71/10*b)-2237/50*exp(17/5*b)-1656/5*exp(34/5*b)-1347/50*exp(13/5*b)-5917/50*exp(51/10*b)-1287/50*exp(5/2*b)-2083/25*exp(9/2*b)-1187/50*exp(21/10*b)+4*a*exp(36/5*b)+2*a*ex

23、p(26/5*b)+2*a*exp(71/5*b)+2*a*exp(51/5*b)+2*a*exp(5*b)+2*a*exp(21/5*b)+2*a*exp(27/5*b) Jb1 = 1/500*a*(2100*a*exp(21/10*b)^2+8500*a*exp(17/2*b)^2+6800*a*exp(34/5*b)^2-10035*exp(3/2*b)-40149*exp(27/10*b)-180504*exp(18/5*b)-3903710*exp(17/2*b)-459447*exp(87/10*b)-1407717*exp(71/10*b)-76058*exp(17/5*b

24、)-1126080*exp(34/5*b)-35022*exp(13/5*b)-301767*exp(51/10*b)-32175*exp(5/2*b)-187470*exp(9/2*b)-24927*exp(21/10*b)+7100*a*exp(71/10*b)^2+5100*a*exp(51/10*b)^2+4500*a*exp(9/2*b)^2+7200*a*exp(18/5*b)^2+3400*a*exp(17/5*b)^2+2600*a*exp(13/5*b)^2+2500*a*exp(5/2*b)^2+1500*a*exp(3/2*b)^2+2700*a*exp(27/10*b)

25、^2+8700*a*exp(87/10*b)^2) 用解二元非线性方程组的牛顿法的MATLAB程序求解线性方程组Ja1 =0,Jb1 =0,得 a = b= 2.811 0 0.581 6 故所求的拟合曲线(7.13)为 e. (7.14) (4)根据(7.2),(7.3),(7.4)和(7.14)式编写下面的MATLAB程序估计其误差,并做出拟合曲线和数据的图形.输入程序 >> xi=[-8.5 -8.7 -7.1 -6.8 -5.10 -4.5 -3.6 -3.4 -2.6 -2.5 -2.1 -

26、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]; n=length(xi); f=2.8110.*exp(-0.5816.*xi); x=-9:0.01: -1; F=2.8110.*exp(-0.5816.*x); fy=abs(f-y); fy2=fy.^2; Ew=max(fy), E1=sum(fy)/n, E2=sqrt((sum(fy2))/n), plot(xi

27、y,'r*'), hold on plot(x,F,'b-'), hold off, legend('数据点(xi,yi)','拟合曲线y=f(x)') xlabel('x'), ylabel('y'), title('例7.3.1的数据点(xi,yi)和拟合曲线y=f(x)的图形') 运行后屏幕显示数据与拟合函数f的最大误差Ew = 390.141 5,平均误差E1=36.942 2和均方根误差E2=106.031 7及其数据点和拟合曲线y=f(x)的图形(略). 7.4 多项式拟合及其MATLAB程序 例7.4.1 给出一组数据点列入表7–3中,试用线性最小二乘法

28、求拟合曲线,并用(7.2),(7.3)和(7.4)式估计其误差,作出拟合曲线. 表7–3 例7.4.1的一组数据 xi -2.9 -1.9 -1.1 -0.8 0 0.1 1.5 2.7 3.6 yi 53.94 33.68 20.88 16.92 8.79 8.98 4.17 9.12 19.88 解 (1)首先根据表7–3给出的数据点,用下列MATLAB程序画出散点图. 在MATLAB工作窗口输入程序 >> x=[-2.9 -1.9 -1.1 -0.8 0 0.1 1.5 2.7

29、 3.6]; y=[53.94 33.68 20.88 16.92 8.79 8.98 4.17 9.12 19.88]; plot(x,y,'r*'), legend('数据点(xi,yi)') xlabel('x'), ylabel('y'), title('例7.4.1的数据点(xi,yi)的散点图') 运行后屏幕显示数据的散点图(略). (3)用作线性最小二乘拟合的多项式拟合的MATLAB程序求待定系数 .输入程序 >> a=polyfit(x,y,2) 运行后输出(7.16)式的系数 a = 2.8302 -7.3721 9.13

30、82 故拟合多项式为 . (4)编写下面的MATLAB程序估计其误差,并做出拟合曲线和数据的图形.输入程序 >> xi=[-2.9 -1.9 -1.1 -0.8 0 0.1 1.5 2.7 3.6]; y=[53.94 33.68 20.88 16.92 8.79 8.98 4.17 9.12 19.88]; n=length(xi); f=2.8302.*xi.^2-7.3721.*xi+9.1382 x=-2.9:0.001:3.6;F=2.8302.*x.^2-7.3721.*x+8.79; fy=abs(f-y); fy2=fy.^2

31、 Ew=max(fy), E1=sum(fy)/n, E2=sqrt((sum(fy2))/n), plot(xi,y,'r*', x,F,'b-'), legend('数据点(xi,yi)','拟合曲线y=f(x)') xlabel('x'), ylabel('y'), title('例7.4.1 的数据点(xi,yi)和拟合曲线y=f(x)的图形') 运行后屏幕显示数据与拟合函数f的最大误差Ew,平均误差E1和均方根误差E2及其数据点(xi,yi)和拟合曲线y=f(x)的图形(略). Ew = E1 = E2 = 0.

32、745 7, 0.389 2, 0.436 3 7.5 拟合曲线的线性变换及其MATLAB程序 例7.5.1 给出一组实验数据点的横坐标向量为x=(7.5 6.8 5.10 4.5 3.6 3.4 2.6 2.5 2.1 1.5 2.7 3.6),纵横坐标向量为y=(359.26 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)式估计其误差,作出拟合

33、曲线. 解 (1)首先根据给出的数据点,用下列MATLAB程序画出散点图. 在MATLAB工作窗口输入程序 >> x=[7.5 6.8 5.10 4.5 3.6 3.4 2.6 2.5 2.1 1.5 2.7 3.6]; y=[359.26 165.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.5.1的数据点

34、xi,yi)的散点图') 运行后屏幕显示数据的散点图(略). (2)根据数据散点图,取拟合曲线为 e , (7.19) 其中是待定系数.令,则(7.19)化为.在MATLAB工作窗口输入程序 >> x=[7.5 6.8 5.10 4.5 3.6 3.4 2.6 2.5 2.1 1.5 2.7 3.6]; y=[359.26 165.60 59.17 41.66 25.92 22.37 13.47 12.87 11.87 6.69 14.87 24.22]; Y=log(y); a=po

35、lyfit(x,Y,1); B=a(1);A=a(2); b=B,a=exp(A) n=length(x); X=8:-0.01:1; Y=a*exp(b.*X); f=a*exp(b.*x); plot(x,y,'r*',X,Y,'b-'), xlabel('x'),ylabel('y') legend('数据点(xi,yi)','拟合曲线y=f(x)') title('例7.5.1 的数据点(xi,yi)和拟合曲线y=f(x)的图形') fy=abs(f-y); fy2=fy.^2; Ew=max(fy), E1=sum(fy)/n, E2=sqrt((sum(fy2))/n)

36、 运行后屏幕显示e的系数b =0.624 1,a =2.703 9,数据与拟合函数f的最大误差Ew =67.641 9,平均误差E1=8.677 6和均方根误差E2=20.711 3及其数据点和拟合曲线e的图形(略). 7.6 函数逼近及其MATLAB程序 最佳均方逼近的MATLAB主程序 function [yy1,a,WE]=zjjfbj(f,X,Y,xx) m=size(f);n=length(X);m=m(1);b=zeros(m,m); c=zeros(m,1); if n~=length(Y) error('X和Y的维数应该相同') end for j

37、1:m for k=1:m b(j,k)=0; for i=1:n b(j,k)=b(j,k)+feval(f(j,:),X(i))*feval(f(k,:),X(i)); end end c(j)=0; for i=1:n c(j)=c(j)+feval(f(j,:),X(i))*Y(i); end end a=b\c; WE=0; for i=1:n ff=0; for j=1:m ff=ff+a(j)*feval(f(j,

38、),X(i)); end WE=WE+(Y(i)-ff)*(Y(i)-ff); end if nargin==3 return; end yy=[]; for i=1:m l=[]; for j=1:length(xx) l=[l,feval(f(i,:),xx(j))]; end yy=[yy l']; end yy=yy*a; yy1=yy'; a=a';WE; 例7.6.1 对数据X和Y, 用函数进行逼近,用所得到的逼近函数计算在处的函数值,并估计误差.其中 X=(1 3 4 5

39、 6 7 8 9); Y=(-11 -13 -11 -7 -1 7 17 29). 解 在MATLAB工作窗口输入程序 >> X=[ 1 3 4 5 6 7 8 9]; Y=[-11 -13 -11 -7 -1 7 17 29]; f=['fun0';'fun1';'fun2']; [yy,a,WE]=zjjfbj(f,X,Y,6.5) 运行后屏幕显示如下 yy = 2.75000000000003 a = -7.00000000000010 -4.99999999999995 1.00000000000000

40、 WE = 7.172323350269439e-027 例7.6.2 对数据X和Y,用函数,,e,进行逼近,其中X=(0 0.50 1.00 1.50 2.00 2.50 3.00),Y=(0 0.4794 0.8415 0.9815 0.9126 0.5985 0.1645). 解 在MATLAB工作窗口输入程序 >> X=[ 0 0.50 1.00 1.50 2.00 2.50 3.00]; Y=[0 0.4794 0.8415 0.9815 0.9126 0.5985 0.1645]; f=['fun0';'fun1';'fun2';'

41、fun3';'fun4';'fun5'];xx=0:0.2:3; [yy,a,WE]=zjjfbj(f,X,Y, xx), plot(X,Y,'ro',xx,yy,'b-') 运行后屏幕显示如下(图略) yy = Columns 1 through 7 -0.0005 0.2037 0.3939 0.5656 0.7141 0.8348 0.9236 Columns 8 through 14 0.9771 0.9926 0.9691 0.9069 0.8080 0.6766 0.5191 Col

42、umns 15 through 16 0.3444 0.1642 a = 0.3828 0.4070 -0.3901 0.0765 -0.4598 0.5653 WE = 1.5769e-004 即,最佳逼近函数为 y=0.3828+0.4070*x-0.3901*x^2+0.0765*exp(x) -0.4598*cos(x) +0.5653*sin(x). 7.7 三角多项式逼近及其MATLAB程序 计算三角多项式的MATLAB主程序 function [A,B,Y1,Rm]=sanjiao(X,Y,X1,m) n= len

43、gth(X)-1;max1=fix((n-1)/2); if m > max1 m=max1; end A=zeros(1,m+1);B=zeros(1,m+1); Ym=(Y(1)+Y(n+1))/2; Y(1)=Ym; Y(n+1)=Ym; A(1)=2*sum(Y)/n; for i=1:m B(i+1)=sin(i*X)*Y'; A(i+1)=cos(i*X)*Y'; end A=2*A/n; B=2*B/n; A(1)=A(1)/2;Y1=A(1); for k=1:m Y1=Y1+A(k+1)*cos(k*X1)+ B(k+1)*sin(k*

44、X1); Tm=A(1)+A(k+1).*cos(k*X)+ B(k+1).*sin(k*X); k=k+1; end Y;Tm; Rm=(sum(Y-Tm).^2)/n; 例7.7.1 根据上的个等距横坐标点 和函数. (1)求的6阶三角多项式逼近,计算均方误差; (2)将这三个三角多项式分别与的傅里叶级数 的前6项进行比较; (3)利用三角多项式分别计算Xi= -2, 2.5的值; (4)在同一坐标系中,画出函数,的三角多项式和数据点的图形. 解 (1)输入程序 >> X1=-pi:2*pi/13:pi;Y1=2*sin(X1/3);X1i=[-2,2.5];

45、 [A1,B1,Y11,Rm1]=sanjiao(X1,Y1,X1i,6), X2=-pi:2*pi/60:pi;Y2=2*sin(X2/3); [A2,B2,Y12,Rm2]=sanjiao(X2,Y2,X1i,6) X3=-pi:2*pi/350:pi;Y3=2*sin(X3/3); [A3,B3,Y13,Rm3]=sanjiao(X3,Y3,X1i,6) X1i=[-2,2.5];Y1=2*sin(X1i/3) for n=1:6 bi=(-1)^(n+1)*18*sqrt(3)*n/(pi*(9*n^2-1)) end (2)画图,输入程序 >>X1=-

46、pi:2*pi/13:pi;Y1=2*sin(X1/3); Xi=-pi:0.001:pi; f=2*sin(Xi/3); [A1,B1,Y1i,R1m]=sanjiao(X1,Y1,Xi,6);X2=-pi:2*pi/60:pi; Y2=2*sin(X2/3); X3=-pi:2*pi/350:pi;Y3=2*sin(X3/3); [A2,B2,Y2i,R2m]=sanjiao(X2,Y2,Xi,6); [A3,B3,Y3i,R3m]=sanjiao(X3,Y3,Xi,6); plot(X1,Y1,'r*', Xi, Y1i,'b-',Xi, Y2i,'g--', Xi, Y3

47、i, 'm:', Xi, f, 'k-.') xlabel('x'),ylabel('y') legend('数据点(xi,yi)','n=13的三角多项式','n=60的三角多项式','n=350的三角多项式','函数f(x)') title('例7.7.1 的数据点(xi,yi)、n=13,60,350的三角多项式T3和函数f(x)的图形') 运行后图形(略). 7.8 随机数据点上的二元拟合及其MATLAB程序 例7.8.1 设节点(X,Y,Z)中的X和Y分别是在区间和上的50个随机数,Z是函数Z=7-3x3e在(X,Y)的值,拟合点(XI,YI)中的XI=-3:0

48、2:3, YI=-2.5:0.2:3.5.分别用二元拟合方法中最近邻内插法、三角基线性内插法、三角基三次内插法和MATLAB 4网格化坐标方法计算在(XI,YI)处的值,作出它们的图形,并与被拟和曲面进行比较. 解 (1)最近邻内插法.输入程序 >> x=rand(50,1); y=rand(50,1); %生成50个一元均匀分布随机数x和y, x,y . X=-3+(3-(-3))*x;%利用x生成的随机变量. Y=-2.5+(3.5-(-2.5))*y; %利用y生成的随机变量. Z=7-3* X.^3 .* exp(-X.^2 - Y.^2); %在每个随机点(X,Y

49、处计算Z的值. X1=-3:0.2:3; Y1=-2.5:0.2:3.5; [XI,YI] = meshgrid(X1,Y1); %将坐标(XI,YI)网格化. ZI=griddata(X,Y,Z,XI,YI, 'nearest') %计算在每个插值点(XI,YI)处的插值ZI. mesh(XI,YI, ZI) %作二元拟合图形. xlabel('x'), ylabel('y'), zlabel('z'), title('用最近邻内插法拟合函数z =7-3 x^3 exp(-x^2 - y^2) 的曲面和节点的图形') %legend('拟合曲面

50、','节点(xi,yi,zi)') hold on %在当前图形上添加新图形. plot3(X,Y,Z, 'bo') %用兰色小圆圈画出每个节点(X,Y,Z). hold of %结束在当前图形上添加新图形. 运行后屏幕显示用最近邻内插法拟合函数Z=7-3x3e在两组不同节点处的曲面及其插值ZI(略). (2)三角基线性内插法. 输入程序 >> x=rand(50,1); y=rand(50,1); %生成50个一元均匀分布随机数x和y, x,y . X=-3+(3-(-

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服