Matlab指定函数曲线拟合教程
在学习的过程中,我们经常需要对一些离散数据进行指定函数的曲线拟合,来验证一些理论推理。下面我将为大家示范如何使用Matlab进行指定函数的曲线拟合。
准备数据
我们通过阻尼振荡实验中测得离散数据来进行示范,数据如下:
x [0 0.4 1.2 2 2.8 3.6 4.4 5.2 6 7.2 8 9.2 10.4 11.6 12.4 13.6 14.4 15];
y [1 0.85 0.29 -0.27 -0.53 -0.4 -0.12 0.17 0.28 0.15 -0.03 -0.15 -0.071 0.059 0.08 0.032 -0.015 -0.02];
我们先通过散点图来观察其大致规律。
选择拟合函数模型
由上面的散点图可知,其对应的函数形式为指数衰减的余弦函数,即a*cos(k*t)*exp(w*t)。
使用Matlab进行曲线拟合
接下来我们采用这个函数模型对上面的离散数据进行曲线拟合,代码如下:
syms tf fittype('a*cos(k*t)*exp(w*t)', 'independent', 't', 'coefficients', {'a', 'k', 'w'});
cfun fit(x, y, tf);
% 显示拟合函数,数据必须为列向量形式
xi 0:0.1:20;
yi cfun(xi);
figure
plot(x, y, 'r*');
hold on
plot(xi, yi, 'b-');
title('拟合函数图形');
figure
plot(x, sqrt((y-yi(1:1:18,:)).^2/18), 'r*');
title('标准误差图');
由上面的拟合函数图形和标准误差图形可知,拟合函数给出了数据的大致趋势,结果很好。下面再给出几个参数值与对应参数的置信区间。
代码解释
细心的网友可能看到命令窗口中给出的Warning,其实,因为我们三个参数a,k,w三个参数的初始值未给出导致,因此如果拟合结果不是十分理想,可以多运行几次。
最后,我们对上述Matlab代码所出现的一些函数进行大致介绍,如果想要详细介绍请参考Matlab说明文档。
- fittype(): 自定义拟合函数,在使用时直接模仿下面的参数填写即可
- fit(): 根据自定义的拟合函数来拟合数据x,y,注意数据必须为列向量形式
总结
通过上面的Matlab代码,我们成功地对离散数据进行了指定函数的曲线拟合,得到了较为理想的拟合结果。希望对大家学习Matlab曲线拟合有所帮助。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。