在之前的几节中我们介绍了一些插值和拟合的算法,这一节我们介绍Matlab中专用于曲线拟合和插值的工具箱——cftool。
以一个例子作为这篇文章的开始:
例1 已知一组函数采样点如下表:
x | 110.3323 | 148.7328 | 178.064 | 202.8258033 | 224.7105 | 244.5711 | 262.908 | 280.0447 | 296.204 | 311.5475 |
---|---|---|---|---|---|---|---|---|---|---|
y | 5 | 10 | 15 | 20 | 25 | 30 | 35 | 40 | 45 | 50 |
利用Matlab中的cftool寻找适当的模型对这个数据进行拟合。
1.在命令行输入数据
x=[110.3323 148.7328 178.064 202.8258033 224.7105 244.5711 262.908 280.0447 296.204 311.5475];
y=[5 10 15 20 25 30 35 40 45 50];
2.尝试画出折线图观察
折线图发现曲线形状更像一个二次曲线或者一个指数曲线,所以决定使用二次曲线或指数曲线分别拟合选择效果好的一种。
接下来就要用到工具箱了
3.打开cftool工具箱
在命令行输入cftool
>> cftool
之后就会出现cftool的主界面
cftool主界面下面对界面进行逐一介绍:
1.左上角——数据界面
数据界面可以看到cftool工具箱支持最多3维数据的拟合,而且还可以为数据增加权重。
在你打开工具箱之后,它会自动读取工作区的数据,你需要将其分别赋给X,Y,Z data。
2.右上角——拟合选项
拟合选项左边部分:
最上面:函数类型
Polynomial:多项式
Polynomial
Degree:多项式阶数。
Robust:鲁棒性要求:
Off——无要求
LAR——(least absolute residual)最小绝对残差
Bisquare——赋权最小残差,给离曲线近的给予较大的权重,远的给予较小的权重。
Custom Equation:用户自定方程
下面是用户自行编写的函数形式。
指数型Exponential
举例说明到此结束,剩下的类型请读者自行探索。
3.左下角——结果(Result)
Result在这部分中会给出函数的模型和计算出的参数值。
4.右下角——图像
图像给出按参数拟合出的函数图像。
5.最下方——各类参数和评价指标
各类参数和评价指标4.比较两种拟合方式的结果
二次多项式:
二次多项式
指数型:
指数型
从二者的结果比较可以明显看出,多项式的拟合效果更好。
网友评论