2016 - 2024

感恩一路有你

Matlab指定函数曲线拟合教程

浏览量:1103 时间:2024-08-16 17:48:28 作者:采采

在学习的过程中,我们经常需要对一些离散数据进行指定函数的曲线拟合,来验证一些理论推理。下面我将为大家示范如何使用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曲线拟合有所帮助。

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。