matlab自动数据拟合cftool工具箱简单应用

导读

matlab数据拟合工具箱cftool可以对线性和非线性的数据进行自动选择函数方程进行拟合,以下将以一个线性应用例子分别通过最小二乘法计算和cftool工具箱拟合得出经验方程,观察拟合结果。

示例

例子:用X光机检查镁合金铸件内部缺陷时,为了获得最佳的灵敏度,透视电压y应随透视件的厚度x而改变,经实验获得下表所示的一组数据,假设透视件的厚度工无误差,试求透视电压y随着厚度x变化的经验公式。

x/mmy/kV
1252
1355
1458
1561
1665
1870
2075
2280
2485
2691

最小二乘法计算

选定函数公式

本示例为输入输出量之间为线性关系,则选定线性函数为:y=kx+b
由此我们可以列出误差方程:Yi-(kxi+b)=Vi (i=1,2,…,10)
其中Yi为在透视件厚度xi下测得的透视电压。

计算

令m=k,n=b,则误差方程可写为:
52- (n+ 12m) =V1
55- (n+ 13m) =V2
58- (n +14m) =V3
61- (n+ 15m) =V4
65- (n+ 16m) =V5
70- (n +18m) =V6
75- (n+ 20m) =V7
80- (n+ 22m) =V8
85- (n +24m) =V9
91- (n +26m) =V10
要得到可信赖的结果,我们要使残余误差Vi的平方和最小,根据极值条件得Vi的平方对n和m的偏导应为零。由此我们可以得到上述方程的正规方程:
[a1a1]n+[a1a2]m=[a1Y]
[a2a1]n+[a2a2]m=[a2Y]
[a1a1]=a11a11+a21a21+…+a101a101
[a1a2]=a12a11+a21a22+…+a101a102
[a2a1]=a11a12+a21a22+…+a101a102
[a2a2]=a12a12+a22a22+…+a102a102
[a1Y]=a11Y1+a21Y2+…+a101Y10
[a2Y]=a12Y1+a22Y2+…+a102Y10
其中ai1(i=1,2,…,10)为n的系数,ai2(i=1,2,…,10)为m的系数。
于是有
10n+180m=692
180n+3450m=13032
上式解得:
m=2.742857142857143≈2.743;
n=19.828571428571426≈19.82

所求得经验公式为:y=2.743x+19.82

cftool工具箱拟合

命令行输入数据

在命令行中输入本例数据如下:
X=[12 13 14 15 16 18 20 22 24 26]
Y=[52 55 58 61 65 70 75 80 85 91]
随后在workplace中有了我们调用工具箱所需的拟合数据,此时启动工具箱,在命令行中输入:
cftoll

cftool设置

我们使用的是matlab2019b版本,打开工具箱后页面如下图所示
图1 cftool打开界面
随后我们在可以在Fit name栏目中输入本次数据拟合的名称,我们取名为Voltagefit,再在X data中下拉选择自变量数组数据X,Y data中下拉选择因变量数据Y,在页面的右上方已经默认勾选了自动拟合,下图为拟合结果:
图2 拟合结果页面
可以看到页面右下方有拟合出的曲线,左下方有具体的拟合结果,其中:
p1 =2.743,p2 =19.83
与我们使用最小二乘法计算的结果一致。

总结

以上示例中展示了使用最小二乘法对线性函数关系的拟合计算过程和matlab的cftool工具箱的基本使用。本文主要用于学习过程中知识的记录,其中计算方法步骤主要参考于学习教材,如有错误欢迎指正。

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值