【数学建模算法】(番外6)Matlab曲线拟合工具箱cftool

在之前的几节中我们介绍了一些插值和拟合的算法,这一节我们介绍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.尝试画出折线图观察

【数学建模算法】(番外6)Matlab曲线拟合工具箱cftool_第1张图片
折线图

发现曲线形状更像一个二次曲线或者一个指数曲线,所以决定使用二次曲线或指数曲线分别拟合选择效果好的一种。

接下来就要用到工具箱了

3.打开cftool工具箱

在命令行输入cftool

>> cftool

之后就会出现cftool的主界面

【数学建模算法】(番外6)Matlab曲线拟合工具箱cftool_第2张图片
cftool主界面

下面对界面进行逐一介绍:

1.左上角——数据界面

【数学建模算法】(番外6)Matlab曲线拟合工具箱cftool_第3张图片
数据界面

可以看到cftool工具箱支持最多3维数据的拟合,而且还可以为数据增加权重。
在你打开工具箱之后,它会自动读取工作区的数据,你需要将其分别赋给X,Y,Z data。

2.右上角——拟合选项

【数学建模算法】(番外6)Matlab曲线拟合工具箱cftool_第4张图片
拟合选项

左边部分:
最上面:函数类型

Polynomial:多项式


【数学建模算法】(番外6)Matlab曲线拟合工具箱cftool_第5张图片
Polynomial

Degree:多项式阶数。
Robust:鲁棒性要求:
Off——无要求
LAR——(least absolute residual)最小绝对残差
Bisquare——赋权最小残差,给离曲线近的给予较大的权重,远的给予较小的权重。

【数学建模算法】(番外6)Matlab曲线拟合工具箱cftool_第6张图片
Custom Equation

Custom Equation:用户自定方程
下面是用户自行编写的函数形式。

【数学建模算法】(番外6)Matlab曲线拟合工具箱cftool_第7张图片
Exponential

指数型Exponential

举例说明到此结束,剩下的类型请读者自行探索。

3.左下角——结果(Result)

【数学建模算法】(番外6)Matlab曲线拟合工具箱cftool_第8张图片
Result

在这部分中会给出函数的模型和计算出的参数值。

4.右下角——图像

【数学建模算法】(番外6)Matlab曲线拟合工具箱cftool_第9张图片
图像

给出按参数拟合出的函数图像。

5.最下方——各类参数和评价指标

各类参数和评价指标

4.比较两种拟合方式的结果

二次多项式:


【数学建模算法】(番外6)Matlab曲线拟合工具箱cftool_第10张图片
二次多项式

指数型:


【数学建模算法】(番外6)Matlab曲线拟合工具箱cftool_第11张图片
指数型

从二者的结果比较可以明显看出,多项式的拟合效果更好。

你可能感兴趣的:(【数学建模算法】(番外6)Matlab曲线拟合工具箱cftool)