MATLAB曲线拟合工具箱(cftool)介绍(完结)

MATLAB曲线拟合工具箱(cftool)介绍(完结)本文通过实例对 MATLAB 曲线拟合工具箱进行详细讲解 帮助大家更容易理解曲线拟合工具箱 cftool 目录 1 实例介绍 2 进入系统辨识工具箱界面 3 加载数据 4 加载数据 5 选择拟合曲线的类型 1 实例介绍已知 x 00 20 50 80 91 31 41 92 12 22 52 62 93 0 y 1 27792 15962 73112 59742 40681 62151 41780 99550 96660 88370 96391 0

1.实例介绍

并且根据某种物理或数学关系确定y=f(x)的表达形式,并求出拟合结果对应的系数。

2. 进入曲线拟合工具箱界面

3. 加载数据

新建一个.m文件,并写入如下代码:

clc;clear; x = [0 0.2 0.5 0.8 0.9 1.3 1.4 1.9 2.1 2.2 2.5 2.6 2.9 3.0]; y = [1.2779 2.1596 2.7311 2.5974 2.4068 1.6215 1.4178 0.9955 0.9666 0.8837 0.9639 1.0031 1.1233 1.1583]; 

作为要拟合曲线所需要的数据。

4. 加载数据

在上述窗口中选中相应数据和拟合选项:在这里插入图片描述

5. 选择拟合曲线的类型

  • Custom Equations:用户自定义的函数类型;
  • Exponential:指数逼近,有2种类型, a ∗ e x p ( b ∗ x ) a*exp(b*x) aexp(bx) a ∗ e x p ( b ∗ x ) + c ∗ e x p ( d ∗ x ) a*exp(b*x) + c*exp(d*x) aexp(bx)+cexp(dx)
  • Fourier:傅立叶逼近,有7种类型,基础型是 a 0 + a 1 ∗ c o s ( x ∗ w ) + b 1 ∗ s i n ( x ∗ w ) a0 + a1*cos(x*w) + b1*sin(x*w) a0+a1cos(xw)+b1sin(xw)
  • Gaussian:高斯逼近,有8种类型,基础型是 a 1 ∗ e x p ( − ( ( x − b 1 ) / c 1 ) 2 ) a1*exp(-((x-b1)/c1)^2) a1exp(((xb1)/c1)2)
  • Interpolant:插值逼近,有4种类型,Nearest neighbor、Linear、Cubic、Shape-preserving(PCHIP);
  • Linear Fitting:线性拟合;
  • Polynomial:多形式逼近;
  • Power:幂逼近,有2种类型, a ∗ x b a*x^b axb a ∗ x b + c a*x^b + c axb+c
  • Rational:有理数逼近;
  • Smoothing Spline:平滑逼近;
  • Sum of Sin Functions:正弦曲线逼近,有8种类型,基础型是 a 1 ∗ s i n ( b 1 ∗ x + c 1 ) a1*sin(b1*x + c1) a1sin(b1x+c1)
  • Weibull:只有一种, a ∗ b ∗ x ( b − 1 ) ∗ e x p ( − a ∗ x b ) a*b*x^(b-1)*exp(-a*x^b) abx(b1)exp(axb)

6. 进行曲线拟合

假设我们以 y = a ∗ s i n ( b ∗ x ) ∗ e x p ( c ∗ x ) + d y =a*sin(b*x)*exp(c*x)+d y=asin(bx)exp(cx)+d的表达形式进行拟合,则选择”Custom Equation”,在方框中输入相应的函数表达式,拟合过程及结果图像如下图所示:
在这里插入图片描述
可以发现,曲线和拟合程度较差。这是因为,对同一问题的拟合情况,每次可能都不一样,这取决对于参数a,b,c,d的StartPoint的选取。解决方法是在拟合过程中,将a,b,c和d也作为约束拟合的条件,例子中已知a,b,c,d的的取值范围(正负范围),可以进行如下操作,点击[Fit Options]按钮,弹出的窗口如下:
在这里插入图片描述
可以调整a,b,c,d参数的StartPoint,Lower,Upper三个选项来是拟合更加准确,比如说,将a,b,d的Lower选项设为0(a,b,d>0),将c的Upper选项设为0(c<0),设置如下图所示:
在这里插入图片描述
设置完毕之后,就会自动出现重新拟合之后的图像,如下图所示。
在这里插入图片描述
可以看到,拟合程度较之前有了很大的提高.因此,可以预见的是,在拟合过程中,设置好待拟合函数的参数的StartPoint,Lower和Upper三者的值可以使拟合更加准确。
















7. 拟合结果分析

在左侧的Result中显示拟合模型参数以及拟合效果

在这里插入图片描述
拟合效果评测:

  • SSE:拟合误差平方和,接近0,表示与数据拟合的好,但是要小心过拟合;
  • R-Square:实测数据与推理数据之间的相关系数平方值,趋近于1较好;
  • RMSE:均方差;

8.其他常用拟合方法

当然,除了上面提到的拟合方法之外,还有两种常用的拟合方法:

  • Interpolant
    插值逼近,该方法的优势在于会连接所有点,而使其SSE为0,R-square为1,如下图所示:
    在这里插入图片描述




  • Smoothing Spline
    平滑逼近,该方法的会尽可能逼近所有点,使其SSE尽可能逼近0,R-square尽可能逼近1,如下图所示:
    在这里插入图片描述




9.输出拟合参数

如果希望只显示拟合图像,可以点击“文件”——>“Print to figure”
在这里插入图片描述
这样就可以只显示拟合图像了,如下图所示。
在这里插入图片描述
如果希望导出拟合后的曲线数据,可以点击“文件”——>“Generate Code”
在这里插入图片描述
生成代码后,默认函数名为createFit,可以自行修改,直接保存,就可以调用了。比如说,我要导出五次多项式Polynomial逼近结果,按照上述方式导出后,可以查看生成代码的信息:
在这里插入图片描述
其中,fitresult是函数的输出,是一个结构体,可以用fitresult.p1得到p1的系数,同理其它系数也可得。
在这里插入图片描述
如果想导出拟合后的曲线数据,只需要把横坐标传给fitresult就可以了:




















y = fitresult(x)'; 

10.结论

本文主要讨论了MATLAB曲线拟合工具箱(cftool)的拟合过程。通过工具箱模块可以非常方便地对曲线进行拟合,不需要太多的编程,曲线拟合方法多样,效果较好。

ok,以上便是曲线拟合工具箱的全部内容了,如果对你有所帮助,记得点个赞哟~

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/202639.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午11:39
下一篇 2026年3月19日 下午11:40


相关推荐

  • mybatispluslog激活码[最新免费获取]

    (mybatispluslog激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~1STL5S9V8F-eyJsaWNlb…

    2022年3月27日
    226
  • 查看Linux硬盘空间使用情况

    查看Linux硬盘空间使用情况查看 Linux 硬盘空间使用情况 0 概述在我们面试各大公司的时候 关于 Linux 往往最容易被问到的问题之一就是 Linux 指令 而其中 对系统软硬件参数的获取 又是相对比较容易被问到的 因为对这些参数的了解 最能直观反映应聘者对 Linux 环境是否熟悉 我们结合海量面经 提取出四个最容易被问到的 Linux 查看软硬件参数的命令 供大家参考 如何查看 Linux 硬盘使用情况如何查看 LinuxCPU 使用情况如何查看 Linux 内存使用情况如何查看 Linux 查看系统版本我们今天搞定第一个吧 1

    2026年3月18日
    1
  • 美团联合联想百应推出OpenClaw远程部署服务 一键配置AI智能体

    美团联合联想百应推出OpenClaw远程部署服务 一键配置AI智能体

    2026年3月13日
    2
  • 学生信息管理系统数据库课程设计「建议收藏」

    学生信息管理系统数据库课程设计「建议收藏」一.概述学生信息管理系统是学校管理的重要工具,是学校不可或缺的一部分。随着在校人数的不断增加,教务系统的数量也不断的上涨。学校工作繁杂,资料众多,人工管理信息的难度也越来越大,显然是不能满足实际的需要,效率也是很低的。并且这种传统的方式存在着众多的弊端,如:保密性差.查询不便.效率低,很难维护和更新等,然而,本系统针对以上的缺点能够极大的提高学生信息管理的效率,也是科学化.正规化的管理,与世界接轨…

    2022年5月19日
    45
  • Pycharm中加入Tensorflow出现问题的解决方法

    Pycharm中加入Tensorflow出现问题的解决方法初次使用 Pycharm 加载 Tensorflow 出现 Cudnn 找不到等问题 现在给出解决方案 如果你配置正常 执行过程中就会出现一下界面 这是使用 tensorflow cnn 训练的 mnist 数字识别的 baseline 一 设置 python 编译器 File gt Setting gt Project 我的项目名叫 TF 所以是 Project TF 也就是修改上面的 ProjiectI

    2026年3月27日
    2
  • 电商项目商品详情页架构设计[通俗易懂]

    电商项目商品详情页架构设计

    2022年3月3日
    39

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号