使用 MATLAB 曲线拟合工具箱做曲线拟合
在实际的工程应用领域和经济应用领域中,人们往往通过实验或者观测得到一些数据, 为了从这些数据中到其内在的规律性, 也就是求得自变量和因变量之间的近似函数关系表 达式。这类问题可以归结曲线拟合。
1.MATLAB 曲线拟合工具箱简介
MATLAB 做曲线拟合可以通过内建函数或者拟合工具箱(Curve Fitting Toolbox )。这个 工具箱集成了用MATLAB 建立的图形用户界面(GUIs )和 M 文件函数。利用这个工具箱 可以进行参数拟合(当想出回归系数以及他们背后的物理意义的时候就可以采用参数拟 合),或者通过采用平滑样条或者其他各种插值方法进行参数拟合(当回归系数不具有物理 意义并且不在意他们的时候,就采用非参数拟合)。利用这个界面,可以快速地在简单易用 的环境中实现许多基本的曲线拟合。
2.实际例子应用
数学模型书上关于汽车刹车距离模型,建立的模型如下:
2 1 d t v kv
=+ 其中v 是汽车速度, 1 t 是反应时间,按大多数人平均取 0.75 秒,d 是刹车距离。交通部 门提供了一组刹车的距离实际数据如表1 所示(刹车距离括号内为最大值)。
表 1
车速(英尺 秒)
29.3 44 58.7 73.3 88 102.7 1173 刹车距离 (英尺) 42(44) 73.5(78) 116(124) 173(186) 248(268) 343(372) 464(506) 利用表 1 的数据,我们拟合
在 MATLAB 的 command window 里输入:
>>v=[29.3 44 58.7 73.3 88 102.7 117.3];
>>d1=[42 73.5 116 173 248 343 464];
>>cftool %cftool 是打开拟合工具箱的命令;
则跳出曲线拟合工具箱的界面如图 1 所示, 如果输入数据非常大, 并且每次输入有困难, 可以新建一个 M 文件,依次输入上述命令行,保存之后执行,同样可以进入曲线拟合工具 箱界面。
图1 拟合工具箱界面 图2 画散点图 点击“Data”按钮,则现如图 2 所示的 Data 窗口,我们选择 X data 为
v,Y Data为 d1, 则右侧会出现散点图。 我们还可以进行数据的加权拟合,权值可以是与数据相联系的一个权 向量。在“Weight”的下拉菜单中可以选择。点击“Create data set”,点击“Close”按钮 退出“Data”窗口,返回工具箱界面,这时会自动画出数据集的散点图。
然后点击图 1 中“Fitting”按钮,出现“Fitting”窗口,点击“new fit”窗口如图 3 所
示。
然后通过下拉菜单“Type of fit”选择拟合曲线的类型,工具箱提供的拟合类型有:
Custom Equations (自定义函数)
Exponential (指数函数)
Fourier (傅里叶函数)
Gaussian (正态分布函数)
Interplant (内部插值)
matlab拟合数据Polynomial (多项式函数)
Power (幂函数)
等 11 种类型, 本例虽然是二次多项式, 但不是标准的二次多项式形式, 故我们选 Custom Equations ,点击“New equation”按钮,选择“General Equations”标签,出现如图 4 所示 窗口,输入自定义函数,设置初值以及参数的上下限,然后点击 OK。类型设置完成后,点 击“Apply”按钮,就可以在“Fitting”窗口的 Results 框中得到拟合信息如表 2,同时,也 会在工具箱窗口中显示拟合曲线如图 5所示。
图4 设定拟合方程窗口 图5 拟合曲线
表 2
General model:
f(x) = 0.75*x+k*x^2
Coefficients (with 95% confidence bounds):
k = 0.02555 (0.02358, 0.02752) (注:给出参数 k 置信度为 95%的置信区间)
Goodness of fit:
SSE: 1576 (注:SSE 为误差平方和,越小越好)
Rsquare: 0.9888 (注:Rsquare为复相关系数,越接近 1越好)
Adjusted Rsquare: 0.9888 (注:Adjusted Rsquare为调整自由度复相关系数) RMSE: 16.2 (注:RMSE 为均方根误差)
3 利用 Curve Fitting Toolbox 改善拟合效果
很多因素会对曲线拟合产生影响,导致拟合效果有好有坏,我们仅从一些角度出发探讨 有可能改善拟合质量。
1)模型的选择: 这是最主要的一个因素, 试着用各种不同的模型对数据进行拟合比较;
2) 数据预处理: 在拟合钱对数据进行预处理也很有用, 这包括对相应数据进行变换以 及剔除 Infs ,NaNs ,以及有明显错误的点。
3) 合理的拟合应该具有处理出现奇异而使得预测趋于无穷大的时候的能力。
4) 知道越多的系数的估计信息,拟合越容易收敛。
5) 将数据分解为几个子集,对不同的子集采用不同的曲线拟合。
6) 复杂的问题最好通过进化的方式解决,即一个问题的少量独立变量先解决。 低阶问 题的解通常通过近似映射作为高阶问题解的起始点。例如模型为 e sin()
cx y a b d kx =++ 那么最好每次拟合一个项,通常从最重要的项开始。先拟合,然后利用拟合出的结果系 数作为上式中的a ,b ,c 的起始值进行完整的拟合。
4 结束语
MATLAB 曲线拟合工具箱使用方便、直观、快捷。利用这个界面,可以快速地在简单 易用的环境中实现许多基本的曲线拟合。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论