matlab数值拟合

时间:2024-10-12 05:16:29

1、matlab除了可以进行数据插值,还可以进行数据拟合,下面主要介绍polyfit和polyval命令的用法。

matlab数值拟合

2、假设我们有如下两行数据,这数据可以是随机得来的。但是两侧的数据不太满足要求,仔细看过去好像毛刺比较多,那我们可以使用polyfit和polyval命令。

matlab数值拟合

3、首先对a曲线使用polyfit命令,这里我们选择取10阶多项式进行拟合,然后使用poly2str命令,找出对应的拟合多项式。[pp,qq] = polyfit(1:432,aa(1,:),10);ploy2str(pp,'x')

matlab数值拟合

4、这里的pp即是对应的多项式的各项的系数,其中pp的第一个数据是对应的x^10;依次递减。然后再使用polyval命令依关骇脘骱次计算该多项式拟合后的数据。bb = polyval(pp,1:432,qq);figure;plot(aa(1,:),'b.');hold on;plot(bb,'r^');

matlab数值拟合

5、可以明显看到bb比aa(1,:)数据好了一些。如果对其进行15阶数据拟合,那么数据质量又会更好一些。下图是280:370的数据质量,显然15阶拟合(绿色曲线)比10阶拟合(红色曲线)要好一些,更接近实际情况。

matlab数值拟合

6、当然,上述polyfit命令中,qq是误差评估的一个精度统计:给出了自由度和残差等信息。从精度统计方面来讲,15阶矩阵更加接近实际测量值。

matlab数值拟合
© 手抄报圈