MATLAB函数拟合

在研究的过程中,往往会需要根据采样得到的数据,拟合指定函数,获得函数参数。

常见的拟合有两种,一种是多项式拟合,一元线性回归就属于这种拟合;另一种在MATLAB帮助文档上叫非线性拟合,我称为指定函数拟合。本文介绍如何使用MATLAB进行函数拟合。

本文涉及到的函数:

写作格式说明:

代码块中的>是matlab的命令提示符,后面接命令。

多项式拟合

本文参考了:多项式曲线拟合 - MATLAB polyfit - MathWorks 中国

传入变量说明:

传出变量说明:

求出参数后,可以通过画图来比较拟合的效果:

匿名函数其实是一种函数句柄,定义简单,可作为其他函数的输入,具体可以参考匿名函数 - MATLAB & Simulink - MathWorks 中国

指定函数拟合

本文参考了:非线性数据拟合 - MATLAB & Simulink - MathWorks 中国

很多时候我们需要拟合特定的函数,想要对函数的参数进行后续的分析,这时候多项式拟合就不能完成目标,需要使用lsqcurvefit来对制定的函数进行拟合。

假如我有一个函数如下,需要拟合其中的 a,g,c 三个参数用作后续的分析。

(1)f(x)=a1+eg(xc)

我们通过实验采样获得了自变量 x 和 因变量y ,下面开始进行数据处理

传入变量说明:

p0是进行函数拟合的初始值,强烈建议根据参数的物理意义选择初始值,避免由于局部最优算法而拟合失败。

接下来我们根据图像大致对拟合的结果进行评估

后续问题

这篇文章还存在可以补充修改的地方,如果后续学习的过程中碰到并解决了,会回来填坑的。

  1. 多元函数的拟合怎么做?
  2. 拟合得到的结果如何用统计学方法回答可信度的问题?