- 1、本文档共57页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
插值 拟合 假设从已知函数原型: y(x)=ax+bx2e- cx+d 测得一组数据如下表: 一 用MATLAB作线性最小二乘拟合 1. 作多项式f(x)=a1xm+ …+amx+am+1拟合: a=polyfit(x,y,m) 2. 多项式在x处的值y可用以下命令计算: y=polyval(a,x) 输出拟合多项式系数 a=[a1, …am , am+1] (数组) 输入同长度 的数组X,Y 拟合多项 式次数 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + f=a1+a2x f=a1+a2x+a3x2 f=a1+a2x+a3x2 f=a1+a2/x f=aebx f=ae-bx 基本方法:将数据 (xi,yi) i=1, …n 作图,通过直观判断确定拟合函数f(x)的类型: 对上例,先作散点图,判断出拟合函数的类型。 作三次多项式拟合 程序:x=[1 2 4 7 9 12 13 15 17]; f=[1.5 3.9 6 11.7 12.6 18.8 20.3 20.6 21.1]; axis([0 18 1 22]) plot(x,f,o) 程序:a=polyfit(x,f,3) aa=polyval(a,y) plot(y,aa) 求polyval(a,14) = 20.3540 即要求 出二次多项式: 中 的 使得: 例 对下面一组数据作二次多项式拟合 1)输入以下命令: x=0:0.1:1; y=[-0.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2]; A=polyfit(x,y,2) z=polyval(A,x); plot(x,y,k+,x,z,r) %作出数据点和拟合曲线的图形 vpa(poly2sym(A),5) %显示多项式形式,系数精度5位 2)计算结果: A = -9.8108 20.1293 -0.0317 解法 用多项式拟合的命令 MATLAB(zxec2) 解:因有11个数据,故可用10次多项式拟合,这样可保证曲线通过每个数据点,程序如下: x0=[0 0.4 0.8 1.2 1.6 2.0 2.4 2.8 3.2 3.6 4.0]; y0=[0 0.1 0.85 1.05 3.08 3.50 6.07 7.90 9.7 13.96 14.68]; plot(x0,y0,*) p10=polyfit(x0,y0,10) x=0:0.05:4; y10=polyval(p10,x); plot(x0,y0,ko,x,y10,m-) 例5 今有数据如下: x0=[0 0.4 0.8 1.2 1.6 2.0 2.4 2.8 3.2 3.6 4.0]; y0=[0 0.1 0.85 1.05 3.08 3.50 6.07 7.90 9.7 13.96 14.68]; 试在区间[0,4]上选用合适的多项式进行拟合。 p10 =1.0e+003 * 0.0008 -0.0168 0.1472 -0.7202 2.1632 -4.1067 4.8841 -3.4682 1.3142 -0.1974 -0.0000 即p10 =0.8x10 - 16.8x9 + 147.2 x8 -720.2x7+2163.2x6 - 4106.7x5+ 4884.1x4 - 3468.2x3+ 1314.2x2 -197.4x - 0.0000 从图上看出,虽然曲线通过了每个数据点,但在两个端点附近引起了较大的振荡,看来高次的拟合并不理想,应改用低次的拟合。 p1 = 3.9109 -2.2864 p2 = 0.8957 0.3282 -0.1367 p3 = -0.1119 1.5671 -0.6960 0.1211 p1 = 3.9109x -2.2864 p2 = 0.8957x2+ 0.3282x -0.1367 p3 = -0.1119x3+1.5671x2 -0.6960x+ 0.1211 可看出,一次拟合误差较大,二次或三次拟合则误差较小,且可以接受了。 1. lsqcurvefit 已知数据点: xdata=(xdata1,xdata2,…,xdatan), ydata=(ydata1,ydata2,…,ydatan) 二 用MATLAB作非线性最小二乘拟合 M
文档评论(0)