Matlab曲线拟合fit命令1

科普言 人气:7.38K

Matlab中可以进行曲线拟合,之前的曲线拟合方式比较复杂,这是在2016中的拟合方式。主要介绍fit命令,它包含有二维数据拟合和三维数据拟合。

Matlab曲线拟合fit命令1

操作方法

(01)给出一行数据,这里我们使用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张

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

Matlab曲线拟合fit命令1 第3张

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

Matlab曲线拟合fit命令1 第4张

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

Matlab曲线拟合fit命令1 第5张

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

Matlab曲线拟合fit命令1 第6张

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

Matlab曲线拟合fit命令1 第7张

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

Matlab曲线拟合fit命令1 第8张