MATLAB的cftool工具箱简介

下面,通过一个例子说明cftool可视化界面工具箱的用法.

例如,已知

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)的表达形式为y =a*sin(b*x)*exp(c*x)+d,其中a,b和d均为正数,c为负数,现要利用该函数形式对已知数据进行拟合,并求出拟合结果对应的系数a,b,c,d.

解法如下

①在Command窗口输入两个向量的具体值,即输入

clc;clear;

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.2779 2.1596 2.7311 2.5974 2.4068 1.6215 1.41780.9955 0.9666 0.8837 0.9639 1.0031 1.1233 1.1583];

②在Command窗口输入cftool命令,打开如下界面


③在上述窗口中选中相应数据和拟合选项,如下


③勾选[Auto fit]选项(或者点击[fit]按钮),即可得到对应图像,如下


④由图可知,曲线和拟合程度较差。这是因为,对同一问题的拟合情况,每次可能都不一样,这取决对于参数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都大于0,则将a,b,d的Lower选项设为0,c小于0,则将c的Upper选项设为0,设如下


⑤设置完毕之后,(如果选择了[Auto fit]选项)就会出现重新拟合之后的图像,如下图,其中右边为图像,左边为参数值,参数置信区间等拟合信息。可以看到,拟合程度较之前有了很大的提高


小结:在拟合过程中,设置好待拟合函数的参数的StartPoint,Lower和Upper三者的值可以使拟合更加准确。更多有关cftool拟合效果的问题,可以参看下面这篇文章

http://cn.mathworks.com/matlabcentral/answers/99087-how-do-i-improve-convergence-in-fitting-my-data-with-curve-fitting-toolbox?requestedDomain=www.mathworks.com
  • 17
    点赞
  • 77
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值