MATLAB cftool工具箱——曲线拟合

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

一、简介及打开方式

    cftool工具箱可以将数据点拟合成曲线或曲面并直观显示出图像。能实现多种类型的线性、非线性曲线/面拟合。

    有两种方式打开cftool:(1)在命令行窗口输入"cftool"并回车;(2)在MATLAB的"APP"选项栏中找到"Curve Fitting"程序打开即可。

MATLAB cftool工具箱——曲线拟合

二、使用方法

1、数据导入

    界面左上部分为数据区域,下拉框中会自动识别MATLAB工作区中的数组,选中需要拟合的X和Y数据即可,若选择X、Y、Z三组数据则可以拟合三维曲面。此外,还可以自定义不同数据的权值,同样将数据在Weights中选中即可。

2、拟合方法

    界面上方可以选择不同的拟合方法,二维图像的拟合方法有:

    (1) Custom Equations:自定义函数拟合。

    (2) Exponential:指数函数拟合,默认形式:f(x) = a*exp(b*x),在"Number of terms"中可以选择指数项的个数,范围1~2。

    (3) Fourier:傅里叶级数逼近,默认形式:f(x) =  a0 + a1*cos(x*w) + b1*sin(x*w),在"Number of terms"中可以选择公式中正余弦项的个数,范围1~8。

    (4) Gaussian:高斯逼近,默认形式:f(x) =  a1*exp(-((x-b1)/c1)^2),在"Number of terms"中可以选择公式中指数项的个数,范围1~8。

    (5) Interpolant:插值。有以下4种类型:Nearest neighbor(最近邻)、Linear(线性插值)、Cubic spline(三次样条插值)、Shape-preserving(PCHIP)(分段三次Hermite插值)。

    其中,样条插值仅需要被插值函数在插值节点处的函数值,不需要知道被插值函数在插值节点处的导数值,数据要求低,光滑性好,可以达到二阶导数连续,但数据变化过大时曲线可能出现波动。Hermite插值是分段三次多项式插值,需要同时知道被插值函数在插值节点处的函数值和导数值,数据要求高,可以达到一阶导数连续,光滑性不如样条插值的好,但其具有保形性,不会出现局部波动。以下这个例子可以很明显的看出二者区别:

MATLAB cftool工具箱——曲线拟合

 三次样条插值

MATLAB cftool工具箱——曲线拟合

 分段三次Hermite插值

    (6) Linear Fitting:线性组合拟合。默认形式:f(x) = a*(sin(x-pi)) + b*((x-10)^2) + c。本质是将各种不同类型的函数进行线性组合。在"Edit"中可以自定义各线性项的权重和形式。

    (7) Polynomial:多项式函数拟合。默认形式:f(x) = p1*x + p2,即最常见的线性最小二乘拟合。在"Degree"中可以选择多项式的最高次数,范围1~9。

    (8) Power:幂函数拟合。默认形式:f(x) = a*x^b。在"Number of terms"中可以选择是否加常数项,若选择2,则公式变为:f(x) = a*x^b+c。

    (9) Rational:有理数逼近。默认形式:f(x) = (p1) / (x + q1)。公式的分子和分母均为多项式,在"Numerator degree"中可以选择分子多项式最高次数,范围0~5。在"Denomenator degree"中可以选择分母多项式最高次数,范围1~5,且x最高次项的系数只能为1。

    (10) Smoothing Spline:平滑样条。这种方法的具体原理较为复杂,MATLAB定义了一个代价函数RSS来衡量拟合误差,拟合时会使此RSS值尽可能小。函数形式如下。前半部分用来衡量拟合曲线与原数据的近似程度,后半部分用来衡量曲线的光滑程度。

MATLAB cftool工具箱——曲线拟合

    应用时,权重wi若没有给定则默认均为1,平滑系数p的取值为 [0,1]。总的来说,p值越小,拟合曲线越平滑,但与原数据误差越大;p值越大,曲线越倾向于经过所有数据点,但局部可能会出现波动。

    (11) Sum of Sin:正弦逼近。默认形式:f(x) =  a1*sin(b1*x+c1)。其通过一串正弦函数来逼近数据点,在"Number of terms"中可以选择正弦函数的个数,范围1~8。

    (12) Weibull:威布尔分布,形式为:f(x) = a*b*x^(b-1)*exp(-a*x^b)。统计学中常用于元件寿命估计。

三、拟合效果评价

窗口左侧的"Results"部分显示函数模型、参数的拟合值以及部分评价参数,主要有:

    (1) SSE:拟合误差平方和,接近0,表示与数据拟合好,但是要小心过拟合(过于贴合数据点而使曲线波动较大);

    (2) R-square:数据点与拟合值之间的相关系数平方值,趋近于1说明约相关,拟合效果好;

    (3) RMSE:均方差(标准差)。同样此值越小,说明拟合效果越好。

四、注意事项

    (1) 工具箱上方有按钮可以调节图例、网格、坐标轴范围:

MATLAB cftool工具箱——曲线拟合

     (2) 对于同一组数据,参数范围不同,其拟合结果也可能差距很大。如果拟合效果不好,可以在"Fit Options"中调整参数的初始值、上下限,往往会在一定程度上改善结果。所以,设置好待拟合函数的参数的StartPoint,Lower和Upper三者的值可以使拟合更加准确。

    如,用自定义函数y=k/(1+exp(a+b*x))来拟合一组数据,如果采用程序默认的k初始值0.5502,拟合结果为:

MATLAB cftool工具箱——曲线拟合

    如果将k的初始值改为800,则拟合结果变为:

MATLAB cftool工具箱——曲线拟合

    可以看到,拟合结果有明显变化。文章来源地址https://www.toymoban.com/news/detail-481642.html

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

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

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

相关文章

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

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

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

    2024年01月17日
    浏览(12)
  • MATLAB机器人工具箱详解1—RTB 10.4版本简介及安装

    MATLAB机器人工具箱详解1—RTB 10.4版本简介及安装

    机器人学工具箱(Robotic Toolbook for Matlab) 是matlab中专门用于机器人仿真的工具箱,在机器人建模、轨迹规划、控制、可视化方面使用非常方便。本次安装环境为Windows 11+MATLAB 2023a,所安装的机器人工具箱的版本为RTB 10.4,后续将有详细的讲解不同的机器人工具箱的版本区别。

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

    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日
    浏览(25)
  • (转载)matlab遗传算法工具箱

    (转载)matlab遗传算法工具箱

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

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

    【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日
    浏览(25)
  • matlab机器人工具箱基础使用

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

    2024年02月12日
    浏览(43)
  • 在Matlab中安装LibSVM工具箱

    在Matlab中安装LibSVM工具箱

    1 下载工具箱 地址:LibSVM下载地址 下拉网页: 2 注意事项: 2.1 注意测试数据 ==官网下载的数据包中没有Matlab对应的数据集格式,点此下载:heart_scale.mat.== 链接: https://pan.baidu.com/s/15LYMilm8asw9EYkHmifLyg 提取码: trws 复制这段内容后打开百度网盘手机App,操作更方便哦 –来自百度

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

    遗传算法与Matlab GA工具箱

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

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

    matlab系统辨识工具箱及其反向验证

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

    2024年02月05日
    浏览(10)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包