Matlab曲线拟合fit命令1

2025-05-31 18:38:57

1、给出一行数据,这里我们使用sin函数来进行数据拟合,人为的加入了一些噪声:aa = sin(0:0.05:pi);aa = aa+randn(1,63)/100;bb = 0:0.05:pi;plot(bb,aa,'bo');

Matlab曲线拟合fit命令1

2、然后就可以使用fit命令进行数据拟合了。ff = fit(bb,aa,'poly2');回车之后出现如下情况,数据报错。

Matlab曲线拟合fit命令1

3、原因比较简单,主要是需要列数据,而我们给出的是行数据。因此可以进行如下修改:aa = aa';bb = bb媪青怍牙';ff = fit(bb,aa,'poly2');可以看到ff有三个参数,这主要是poly2起到了作用,意思是二阶拟合。

Matlab曲线拟合fit命令1

4、出现上述情况可以说明已经拟合成功,但是拟合的效果怎么样呢?plot(ff,bb,aa);看图来说,效果还不错。

Matlab曲线拟合fit命令1

5、我们可以计算一下它们之间的差值。cc = -0.4185*bb.^2+1.136*bb-0.05554;dd = cc-aa;plot(dd);std(dd)ans = 0.1665

Matlab曲线拟合fit命令1

6、当然,后面的poly2也可以改成为poly10或者其他数值,后面的数值表示阶数,在比较简单的图形中,少量的阶数就可以很好的进行数据拟合,但是如果复杂的图形的话,就需要较多的阶数。比如还是以上图形,我们使用5阶;

Matlab曲线拟合fit命令1

7、将二阶和五阶的图形全部输入到figure中,我们再绘制一个sin图像,从0~pi。从图像可以看出,五阶的几乎与sin图像重合了。因此阶数越高,其函数拟合效果越好,当然计算所需的时间就会越长。

Matlab曲线拟合fit命令1
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢