本文通过实例对MATLAB曲线拟合工具箱进行详细讲解,帮助大家更容易理解曲线拟合工具箱(cftool)。

目录

  • 1.实例介绍
  • 2. 进入曲线拟合工具箱界面
  • 3. 加载数据
  • 4. 加载数据
  • 5. 选择拟合曲线的类型
  • 6. 进行曲线拟合
  • 7. 拟合结果分析
  • 8.其他常用拟合方法
  • 9.输出拟合参数
  • 10.结论

1.实例介绍

已知
x = [0 0.2 0.50.8 0.9 1.3 1.4 1.9 2.1 2.2 2.5 2.6 2.9 3.0];
y = [1.27792.1596 2.7311 2.5974 2.4068 1.6215 1.4178 0.9955 0.9666 0.8837 0.9639 1.00311.1233 1.1583];

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

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

两种方法,第一种:
打开app栏的曲线拟合工具箱(Curve Fitting),

第二种,直接在命令行窗口输入“cftool”:

进入界面后,弹出如下窗口:

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∗exp(b∗x)a*exp(b*x)a∗exp(b∗x) 、 a∗exp(b∗x)+c∗exp(d∗x)a*exp(b*x) + c*exp(d*x)a∗exp(b∗x)+c∗exp(d∗x);
  • Fourier:傅立叶逼近,有7种类型,基础型是 a0+a1∗cos(x∗w)+b1∗sin(x∗w)a0 + a1*cos(x*w) + b1*sin(x*w)a0+a1∗cos(x∗w)+b1∗sin(x∗w);
  • Gaussian:高斯逼近,有8种类型,基础型是 a1∗exp(−((x−b1)/c1)2)a1*exp(-((x-b1)/c1)^2)a1∗exp(−((x−b1)/c1)2);
  • Interpolant:插值逼近,有4种类型,Nearest neighbor、Linear、Cubic、Shape-preserving(PCHIP);
  • Linear Fitting:线性拟合;
  • Polynomial:多形式逼近;
  • Power:幂逼近,有2种类型,a∗xba*x^ba∗xb 、a∗xb+ca*x^b + ca∗xb+c;
  • Rational:有理数逼近;
  • Smoothing Spline:平滑逼近;
  • Sum of Sin Functions:正弦曲线逼近,有8种类型,基础型是 a1∗sin(b1∗x+c1)a1*sin(b1*x + c1)a1∗sin(b1∗x+c1);
  • Weibull:只有一种,a∗b∗x(b−1)∗exp(−a∗xb)a*b*x^(b-1)*exp(-a*x^b)a∗b∗x(b−1)∗exp(−a∗xb);

6. 进行曲线拟合

假设我们以y=a∗sin(b∗x)∗exp(c∗x)+dy =a*sin(b*x)*exp(c*x)+dy=a∗sin(b∗x)∗exp(c∗x)+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,以上便是曲线拟合工具箱的全部内容了,如果对你有所帮助,记得点个赞哟~

MATLAB曲线拟合工具箱(cftool)介绍(完结)相关推荐

  1. matlab曲线拟合工具箱cftool,Matlab曲线拟合工具箱CFtool使用

    Matlab曲线拟合工具箱CFtool使用 CFtool是Matlab中的曲线拟合工具箱,能够实现很多基本的曲线拟合算法,使用非常方便,现将其使用方法简介如下: 步骤1:在命令行输入数据x.y x=[ ...

  2. matlab曲线拟合工具箱cftool

    今天意外发现matlab的曲线拟合工具箱cftool,转自http://blog.csdn.net/chenyusiyuan/article/details/1942605,希望以后能用到 一. 单一 ...

  3. matlab曲线拟合工具箱 cftool

    Matlab有一个功能强大的曲线拟合工具箱 cftool ,使用方便,能实现多种类型的线性.非线性曲线拟合.下面结合我使用的Matlab R2011b 来简单介绍如何使用这个工具箱. 假设我们要拟合的 ...

  4. Matlab的曲线拟合工具箱CFtool使用简介

    Matlab有一个功能强大的曲线拟合工具箱 cftool ,使用方便,能实现多种类型的线性.非线性曲线拟合.下面结合我使用的Matlab R2011b 来简单介绍如何使用这个工具箱. 假设我们要拟合的 ...

  5. Matlab的曲线拟合工具箱CFtool的使用

    今天帮同学做了一个非线性函数的曲线拟合,以前没做过,所以是摸着石头过河.费了一下午时间,终于把曲线拟合出来了,顺道也学习了使用Matlab进行曲线拟合的方法,把学习所得记录下来,和大家共享. 一.   ...

  6. matlab拟合工具箱cftool

    matlab拟合工具箱cftool %拟合数据曲线:线性最小二乘法是解决曲线拟合的最常用的方法, %1.多项式拟合函数:p=polyfit(x,y,n);求p拟合函数在xi处的近似值pi=polyva ...

  7. 数据拟合---使用自定义函数进行非线性拟合 -在Origin。matlab拟合工具箱cftool

    在Origin中使用自定义函数进行非线性拟合 http://blog.163.com/wuhen211@126/blog/static/7474635020105233269949/ matlab拟合 ...

  8. 最小二乘法与matlab拟合工具箱cftool

    一)关于最小二乘法 百度百科解释: 最小二乘法(又称最小平方法)是一种数学优化技术.它通过最小化误差的平方和寻找数据的最佳函数匹配.利用最小二乘法可以简便地求得未知的数据并使得这些求得的数据与实际数据 ...

  9. MATLAB曲线拟合工具箱

    鉴于凸轮曲线编辑器和曲线拟合的重要性,这篇博客简单介绍下MATLAB里曲线拟合APP的应用.在MATLBA命令行窗口输入 >>cftool,可以打开曲线拟合APP,如下图: 1.曲线拟合工 ...

最新文章

  1. socket编程:I/O模型
  2. 静茹docker容器的几种方法_Docker介绍及使用
  3. 空类,虚函数类,虚继承类的空间大小
  4. 编写Java 制作留言板_JSP+Servlet+JavaBean制作简单留言板
  5. 小猿圈零基础怎样学好java?
  6. ai画面怎么调大小_怎么使用pr(adobe premiere)裁剪视频画面的大小
  7. 安装路径是什么意思_404 not found nginx是什么意思
  8. iOS之常用的方法和技巧
  9. 你真的了解 CDC 吗?
  10. android 开启一个定时线程_Android 定时任务刷新的多种实现方式
  11. 在日本山区流域使用支持向量机和 bagging、boosting 和 stacking 集成机器学习框架改进滑坡评估--文献阅读
  12. [Ajax] Ajax的基本用法
  13. a标签不可点击_如何在Notion中做多级标签?-Notion102
  14. 二进制数据(Image类型)从一个表存入另一个表
  15. [转载] 在python中、关于全局变量和局部变量、以下_python中的全局变量和局部变量
  16. Python简单游戏代码
  17. Android开发程序获取GPS信息步骤
  18. mssql用户/角色无法查询sys.dm_tran_locks视图;消息 297,级别 16,状态 1,第 1 行 用户没有执行此操作的权限。
  19. 8583 mac 字符选择 java 实现_8583报文MAC验证实现过程
  20. P1571 眼红的Medusa

热门文章

  1. obs多推流地址_知乎电脑端(PC端)OBS直播教程
  2. optee qemu环境搭建
  3. jstree的基本使用例子
  4. 前端高频面试题目 -- 15k级别
  5. jedate日期控件的图标乱码
  6. bars 除障句完整_85句温柔励志简短别致的句子,发圈写文、摘抄练字都可,打卡...
  7. 无线蓝牙耳机哪个品牌音质最好?2023音质蓝牙耳机排行
  8. 浅析最好、最坏、平均、均摊时间复杂度
  9. 169v 条目不存在_钴催化1,6烯炔与片呐醇硼烷的不对称硼氢化/环化反应
  10. 「点燃我,温暖你」用Python制作一个动态爱心效果