如何用Matlab进行指定函数的曲线拟合

在学习的过程中,我们经常需要对一些离散数据进行指定函数的曲线拟合吗,来验证一些理论推理,下面我将为大家示范如何使用Matlab进行指定函数的曲线拟合。

操作方法

  • 01

    我们通过阻尼振荡实验中测得离散数据来进行示范,数据如下: 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]'; 我们先通过散点图来观察其大致规律:

  • 02

    由上面的散点图可知,其对应的函数形式为下图所示:

  • 03

    接下我们采用这个函数模型对上面的离散数据进行曲线拟合,代码如下: syms t f=fittype('a*cos(k*t)*exp(w*t)','independent','t','coefficients',{'a','k','w'}); cfun=fit(x,y,f) %显示拟合函数,数据必须为列向量形式 xi=0:0.1:20; yi=cfun(xi); figure plot(x,y,'r*',xi,yi,'b-'); title('拟合函数图形'); figure plot(x,sqrt(y-yi(1:1:18,:).^2/18),'r*'); title('标准误差图'); 运行结果如下:

  • 04

    由上面的拟合函数图形和标准误差图形可知,拟合函数给出了数据的大致趋势,结果很好,下面再给出几个参数值与对应参数的置信区间;

  • 05

    细心的网友可能看到命令窗口中给出的Warning,其实,因为我们三个参数a,k,w三个参数的初始值未给出导致,因此如果拟合结果不是十分理想,可以多运行几次。

  • 06

    最后,我们对上述Matlab代码所出现的一些函数进行大致介绍,如果想要详细介绍请参考Matlab说明文档。 %自定义拟合函数,在使用时直接模仿下面的参数填写即可 f=fittype('a*cos(k*t)*exp(w*t)','independent','t','coefficients',{'a','k','w'}); %根据自定义的拟合函数来拟合数据x,y,注意数据必须为列向量形式 cfun=fit(x,y,f)

(0)

相关推荐

  • 用matlab求符号函数数组或函数矩阵的导数实例教程

    在符号矩阵中,矩阵的每个元素都可以存放符号函数,这是对符号函数数组的求到运算是对数组元素逐个进行的.接下来就以实例向大家介绍一下用matlab对符号函数数组或函数矩阵求导数的具体方法步骤,希望大家喜欢 ...

  • 如何用matlab解微分方程

    下面就是小编带给大家的如何用matlab解微分方程方法操作,希望能够给你们带来一定的帮助,谢谢大家的观看. 操作方法 01 在 Matlab 中,用大写字母 D 表示导数,Dy 表示 y 关于自变量的 ...

  • 如何用matlab进行级数或数列的符号求和?matlab符号求和指令分享

    如何进行级数或数列的求和,在高中<数学>课上的数列和大学<高等数学>中的级数都有有遇到过这种问题,这如果用人脑来计算的话非常耗时,难度较大.但是用matlab就可以轻松解决.下 ...

  • 如何用matlab绘制实验统计曲线图

    matlab软件是科研.学习的利器,利用matlab的功能,可以完成拆线图的绘制,美观而大方,而且可以自动计算.更改数值,深得科研人员.老师及学生的欢迎.本介绍如何用matlab绘制曲线图. 操作方法 ...

  • 如何用matlab画直方图

    在工作学习中我们经常遇到将数据整理成图表的形式,其中直方图就是一种数据的体现形式,下面,小编介绍一下如何用MATLAB画直方图 操作方法 01 首先随机产生一组数据作为例子,在这里,我们随机产生一组数 ...

  • 如何用matlab处理excel文件中的数据?

    matlab的另外一个好处是我们可以无需导入直接处理excel中的数据,下面我就向大家介绍一下如何用matlab处理excel文件中的数据. 操作方法 01 首先生成一个带有数据的excel文件,代码 ...

  • 如何用Matlab求一元二次方程式解的个数以及解

    我们学习数学经常会遇到一元二次方程式,那么如何用Matlab软件求一元二次方程式解的个数以及各个解的值呢?下面小编给大家分享一下. 操作方法 01 首先打开Matlab软件,点击左上角的New Scr ...

  • Matlab如何实现函数重载?

    Matlab如何实现函数重载?下面我就通过一个简单的输出输入数中的最大数的函数fun()来说明Matlab在编辑函数时如何实现重载. 方法/步骤: 1.首先打开Matlab(本人使用的是Matlab ...

  • Matlab如何实现函数重载?Matlab实现函数重载的方法

    大家应该都知道C++和Java编程能够实现函数的重载,而当我们使用Matlab的一些函数,如:plot函数,可以发现该函数可以有不同的输入,如:plot(data).plot(t,data)和plot ...