绘制拟合曲线: X=0:01:1;ya=(x^2-3*x+5)*exp(-5*x)sin(x); >>yl-polyval(p3, x); plot(x,y l, x, ya, 0, y0, o) 0.15 006 00.10.20.3040.50.60.70.80.9
• 绘制拟合曲线: >> 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(0, y0, 8); y4-polyval(p8, x) > plot(x, ya, ]0, yo,o, x, y2, x, y3, x, y4 025 02 °0120a4006700
• 就不同的次数进行拟合: >> 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(poly sym(p8), 5) ans 8.2586*x^8+43.566*x^7-101.98*x^6+140.22*x^5 125.29*x^4+74450*x^3- 27672*x^2+4.9869*x+.42037e-6 Taylor幂级数展开: > syms x; y=(x2-3*x+5 )*exp(-5*x) *sin(x) > vpa(taylor(y, 9),5) ans 5.*x-28*x^2+77667*x^3-142.*x^4+192.17*x^5- 204.96*x^6+179.13*x7-131.67*x^8 多项式表示数据模型是不唯一的,即是两个多项式 函数完全不同。在某一区域内其曲线将特别近似
• 拟合最高次数为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 • 多项式表示数据模型是不唯一的,即是两个多项式 函数完全不同。在某一区域内其曲线将特别近似
例对f(x)=1/(1+25x2),-1≤x≤1进行多项式拟合 多项式拟合的效果并不一定总是很精确的 >x0=1+2*[0:1010,y0=1.(1+25*x0.~2); >>x=-1:01:1;ya=1./(1+25*x:^2); >>p3=polyfit(xo, y0, 3) >> y1=polyval(p3, x); p5=polyfit(0, y0, 5) > y2=polyval(p5, x) p8-polyfit(x0, y0, 8) > y3=polyval(p8, x) > p10=polyfit(0, y0, 10) > y4=-polyval(p10, x) .80.6040200.2040.60.81 plot(x,ya, x,yl,x,y
多项式拟合的效果并不一定总是很精确的。 >> 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*/2); p=taylor(y, x, 10 p 1-25*x^2+625*x^4-15625*x6+390625*x^8 多项式拟合效果 >>1=-1:0.01:1; ya=1./(1+25*x1.2) 3 25 y1=subs(p, x, x1); > plot(x1, ya, -,x1,y1)s 0.5 0 180.6.40200.20.40.60.8
• 用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)