在matlab中也可以用用户自定义的函数进行拟合,例题用下表中数据进行拟合,
在matlab命令行中用如下代码先把散点图画出,代码以及运行结果图如下图:
接下来使用自定义函数f(t)=acos(kt)e^wt,进行数据拟合。编写M文件如下,并且运行之后结果图如下:
其中,fittype函数是自定义拟合函数,cfun=fit(x,y,f)是根据自定义的拟合函数拟合数据x,y。此处数据必须为列向量的形式。
拟合曲线给出了数据的大致趋势,效果很好,并给出各参数的置信区间。
查了一下fittype()函数的用法:
用法为fittype('自定义函数','independent','自变量','coefficients',{'系数1','系数2'……});
比如要拟合一组数据(x,y) ,知道其对应的函数形式为a*cos(k*t)
syms t
x=[ 已知数据列向量];
y=[ 已知数据列向量];
fittype('a*cos(k*t)','independent','t','coefficients',{'a','k'});
cfun=fit(x,y,f) %显示拟合函数
xi=0:0.1:10;%比如
yi=cfun(xi);
plot(x,y,'r*',xi,yi,'b-');