中科院matlab课件matlab在科学计算中的应用5章节幻灯片.ppt

中科院matlab课件matlab在科学计算中的应用5章节幻灯片.ppt

  1. 1、本文档共90页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
或 或矩阵形式: 多项式拟合MATLAB命令:polyfit 格式:p=polyfit(x,y,n) x0=0:.1:1; y0=(x0.^2-3*x0+5).*exp(-5*x0).*sin(x0); p3=polyfit(x0,y0,3); vpa(poly2sym(p3),10) % 可以如下显示多项式 ans = 2.839962923*x^3-4.789842696*x^2+1.943211631*x+.5975248921e-1 例 绘制拟合曲线: x=0:.01:1; ya=(x.^2-3*x+5).*exp(-5*x).*sin(x); y1=polyval(p3,x); plot(x,y1,x,ya,x0,y0,o) 就不同的次数进行拟合: p4=polyfit(x0,y0,4); y2=polyval(p4,x); p5=polyfit(x0,y0,5); y3=polyval(p5,x); p8=polyfit(x0,y0,8); y4=polyval(p8,x); plot(x,ya,x0,y0,o,x,y2,x,y3,x,y4) 拟合最高次数为8的多项式: vpa(poly2sym(p8),5) ans = -8.2586*x^8+43.566*x^7-101.98*x^6+140.22*x^5-125.29*x^4+74.450*x^3-27.672*x^2+4.9869*x+.42037e-6 Taylor幂级数展开: syms x; y=(x^2-3*x+5)*exp(-5*x)*sin(x); vpa(taylor(y,9),5) ans = 5.*x-28.*x^2+77.667*x^3-142.*x^4+192.17*x^5-204.96*x^6+179.13*x^7-131.67*x^8 多项式表示数据模型是不唯一的,即是两个多项式函数完全不同。在某一区域内其曲线可能特别近似。 多项式拟合的效果并不一定总是很精确的。 x0=-1+2*[0:10]/10; y0=1./(1+25*x0.^2); x=-1:.01:1; ya=1./(1+25*x.^2); p3=polyfit(x0,y0,3); y1=polyval(p3,x); p5=polyfit(x0,y0,5); y2=polyval(p5,x); p8=polyfit(x0,y0,8); y3=polyval(p8,x); p10=polyfit(x0,y0,10); y4=polyval(p10,x); plot(x,ya,x,y1,x,y2,-.,x,y3,--,x,y4,:) 例 用Taylor幂级数展开效果将更差。 syms x; y=1/(1+25*x^2); p=taylor(y,x,10) p = 1-25*x^2+625*x^4-15625*x^6+390625*x^8 多项式拟合效果 x1=-1:0.01:1; ya=1./(1+25*x1.^2); y1=subs(p,x,x1); plot(x1,ya,--‘,x1,y1) 5.3.2 函数线性组合的曲线拟合方法 该方程的最小二乘解为: 其中 例 x=[0,0.2,0.4,0.7,0.9,0.92,0.99,1.2,1.4,1.48,1.5]; y=[2.88;2.2576;1.9683;1.9258;2.0862;2.109; 2.1979;2.5409;2.9627;3.155;3.2052]; A=[ones(size(x)),exp(-3*x),cos(-2*x).*exp(-4*x),x.^2]; c=A\y; c1=c c1 = 1.2200 2.3397 -0.6797 0.8700 图形显示 x0=[0:0.01:1.5]; A1=[ones(size(x0)) exp(-3*x0), cos(-2*x0).*exp(-4*x0) x0.^2]; y1=A1*c; plot(x0,y1,x,y,x) 数据分析 x=[1.1052,1.2214,1.3499,1.4918,1.6487,1.8221,2.0138,... 2.2255,2.4596,2.7183,3.6693]; y=[0.6795,0.6006,0.5309,0.4693,0.4148,0.3666,0.3241,... 0.2864,0.2532,0.2238,0.1546]; plot(x,y,x,y,*) 例 分别对x,y进行对数变换: x1=log(x); y1=log(y);

文档评论(0)

开心农场 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档