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

这篇具有很好参考价值的文章主要介绍了MATLAB曲线拟合工具箱(cftool)介绍(完结)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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),
MATLAB曲线拟合工具箱(cftool)介绍(完结)
第二种,直接在命令行窗口输入“cftool”:
MATLAB曲线拟合工具箱(cftool)介绍(完结)
进入界面后,弹出如下窗口:
MATLAB曲线拟合工具箱(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. 加载数据

在上述窗口中选中相应数据和拟合选项:MATLAB曲线拟合工具箱(cftool)介绍(完结)

5. 选择拟合曲线的类型

通过下拉菜单选择拟合曲线的类型,
MATLAB曲线拟合工具箱(cftool)介绍(完结)
工具箱提供的拟合类型有:

  • 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”,在方框中输入相应的函数表达式,拟合过程及结果图像如下图所示:
MATLAB曲线拟合工具箱(cftool)介绍(完结)
可以发现,曲线和拟合程度较差。这是因为,对同一问题的拟合情况,每次可能都不一样,这取决对于参数a,b,c,d的StartPoint的选取。解决方法是在拟合过程中,将a,b,c和d也作为约束拟合的条件,例子中已知a,b,c,d的的取值范围(正负范围),可以进行如下操作,点击[Fit Options]按钮,弹出的窗口如下:
MATLAB曲线拟合工具箱(cftool)介绍(完结)
可以调整a,b,c,d参数的StartPoint,Lower,Upper三个选项来是拟合更加准确,比如说,将a,b,d的Lower选项设为0(a,b,d>0),将c的Upper选项设为0(c<0),设置如下图所示:
MATLAB曲线拟合工具箱(cftool)介绍(完结)
设置完毕之后,就会自动出现重新拟合之后的图像,如下图所示。
MATLAB曲线拟合工具箱(cftool)介绍(完结)
可以看到,拟合程度较之前有了很大的提高.因此,可以预见的是,在拟合过程中,设置好待拟合函数的参数的StartPoint,Lower和Upper三者的值可以使拟合更加准确。

7. 拟合结果分析

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

MATLAB曲线拟合工具箱(cftool)介绍(完结)
拟合效果评测:

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

8.其他常用拟合方法

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

  • Interpolant
    插值逼近,该方法的优势在于会连接所有点,而使其SSE为0,R-square为1,如下图所示:
    MATLAB曲线拟合工具箱(cftool)介绍(完结)
  • Smoothing Spline
    平滑逼近,该方法的会尽可能逼近所有点,使其SSE尽可能逼近0,R-square尽可能逼近1,如下图所示:
    MATLAB曲线拟合工具箱(cftool)介绍(完结)

9.输出拟合参数

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

y = fitresult(x)';

10.结论

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

ok,以上便是曲线拟合工具箱的全部内容了,如果对你有所帮助,记得点个赞哟~文章来源地址https://www.toymoban.com/news/detail-433154.html

到了这里,关于MATLAB曲线拟合工具箱(cftool)介绍(完结)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于MATLAB的最小二乘法拟合与拟合工具箱使用教程(附完整代码与算法)

    给定一组数据满足某一函数模型,其中a为待定系数向量。 那么,最小二乘曲线拟合的目标就是:求出一组待定系数的值,使得以下表达式子最小: 在MATLAB中格式如下: 由以下MATLAB代码生成一组数据: 该组数据满足y(x),求出待定系数,使得目标函数的值为最小。 解: MATL

    2024年01月17日
    浏览(31)
  • 基于Matlab的Robotics Toolbox工具箱的机器人仿真函数介绍(空间位姿表示与动力学)

    随着我们了解到机器人如何建立运动学模型和动力学模型之后,我们可以使用Matlab中的仿真工具箱内来对模型的准确性进行验证,并且可以通过内置的函数进行简单的轨迹规划和可视化观察,本节涉及到的工具箱是MATLAB自带的Robotics Toolbox工具箱。 平移与旋转函数: SE2(x,y,t

    2024年02月07日
    浏览(36)
  • 【标准DH法和改进DH法介绍及三自由度四足或双足机器人腿建模——MATLAB机器人工具箱使用】

    DH参数是机器人学习过程中常用的一种建模方法,通常情况下每一次坐标变换需要6个独立参数来描述坐标系i相对坐标系i-1的关系,即3个用来描述位置另外3个用来描述姿态。而DH参数法只需要4个参数,列出DH参数表并带入变换矩阵中可以轻易的得到机械手末端和基

    2024年02月02日
    浏览(41)
  • Matlab 优化工具箱

    语法:[x,fval,exitflag,output,lambda] = linprog(f,A,b,Aeq,beq,lb,ub,options) f、x、b、beq、lb 和 ub 是向量,A 和 Aeq 是矩阵。 示例1-1 : 语法:[x,fval,exitflag,output] = intlinprog(f,intcon,A,b,Aeq,beq,lb,ub,x0,options) f、x、intcon、b、beq、lb 和 ub 是向量,A 和 Aeq 是矩阵。 语法:x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub

    2024年02月02日
    浏览(46)
  • (转载)matlab遗传算法工具箱

            以下内容大部分来源于《MATLAB智能算法30个案例分析》,仅为学习交流所用。         遗传算法(genetic algorithm,GA)是一种进化算法,其基本原理是仿效生物界中的“物竞天择、适者生存”的演化法则。遗传算法是把问题参数编码为染色体,再利用迭代的方式进行选

    2024年02月07日
    浏览(38)
  • 【MATLAB第57期】基于MATLAB的双隐含层BP神经网络回归预测模型(无工具箱版本及工具箱版本对比)

    数据为案例数据 。103行样本,7输入1输出数据。 训练集数据的R2为:0.9022 测试集数据的R2为:0.87266 训练集数据的MAE为:1.8189 测试集数据的MAE为:2.1658 训练集数据的MBE为:-0.00088469 测试集数据的MBE为:0.3059 数据与无工具版本相同,数据顺序也相同。 训练集数据的R2为:1 测试

    2024年02月16日
    浏览(33)
  • matlab系统辨识工具箱及其反向验证

    系统辨识工具箱 什么时候使用系统辨识,当系统传递函数不确定(在多大程度上不确定?)时,通过对输入输出数据采集,通过数学迭代找到控制对象的近似模型。在找到近似模型(传递函数)后,就可以使用线性化调参工具对系统控制参数进行整定,进行控制系统设计。 调用命

    2024年02月05日
    浏览(38)
  • 遗传算法与Matlab GA工具箱

    GA是一种进化算法,基本原理效仿生物界“物竞天择,适者生存”的演化法则。 一些基本概念 种群population:问题潜在的解集 个体individual:每一个可能的解,通过基因编码一定数目的个体形成一个种群 适应度fitness:由此判断个体的优良,进而进行选择 选择selection、交叉cr

    2024年02月09日
    浏览(44)
  • matlab机器人工具箱基础使用

    资料:https://blog.csdn.net/huangjunsheng123/article/details/110630665 test1.m

    2024年02月12日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包