【MATLAB】数据拟合_多项式/拟合工具cftool

论坛 期权论坛 编程之家     
选择匿名的用户   2021-5-28 11:20   105   0

NO1.多项式拟合

例:已知的数据点来自f(x)=(x2+3x+5)e5x*sinx,用多项式拟合的方法在不同的阶次下进行拟合。

>> 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

绘制拟合曲线:

>> x0=0:.1:1; y0=(x0.^2-3*x0+5).*exp(-5*x0).*sin(x0);
>> x=0:0.01:1;
>> ya=(x.^2-3*x+5).*exp(-5*x).*sin(x);
>> y1=polyval(p3,x);

>> 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,':');

绘制结果如图:

还可以利用MATLAB的拟合工具来进行数据拟合:

在命令窗口输入 cftool 调用函数拟合界面

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP