强大的matlab数据拟合库cftool——直接输入参数进行拟合
对于使用过matlab做数据处理的人来说,拟合是将平面上一系列的点,用一条光滑的曲线连接起来。因为这条曲线有无数种可能,从而有各种拟合方法。拟合的曲线一般可以用函数表示,根据这个函数的不同有不同的拟合名字。
数据拟合又称曲线拟合,俗称拉曲线,是一种把现有数据透过数学方法来代入一条数式的表示方式。科学和工程问题可以通过诸如采样、实验等方法获得若干离散的数据,根据这些数据,我们往往希望得到一个连续的函数(也就是曲线)或者更加密集的离散方程与已知数据相吻合,这过程就叫做拟合(fitting)。
介绍的引用来源:百度
一、安装cftool
cftool(Curve Fitting Toolbox™)工具箱主要是针对数据拟合的。使用起来特别的强大,尤其对于数据的处理超级方便,可以直接对于数据拟合,并且可以预设各种的拟合方案。这里注意的是非线性的也可以进行拟合,例如:幂律,高斯等等。
更详细的功能描述:Curve Fitting Toolbox™提供了用于将曲线和曲面拟合到数据的应用程序和功能。 该工具箱可让您执行探索性数据分析,预处理和后处理数据,比较候选模型并删除异常值。 您可以使用提供的线性和非线性模型库进行回归分析,也可以指定自己的自定义方程式。 该库提供了优化的求解器参数和起始条件,以提高拟合质量。 该工具箱还支持非参数建模技术,例如样条,插值和平滑。 创建拟合后,您可以应用各种后处理方法进行绘图,内插和外推。 估计置信区间; 并计算积分和导数。
主要在matlab附加资源管理器:
image.pngimage.png
image.png
二、验证是否安装成功
image.png三、实列操作(拟合以y=sin(x)+1为例)
可以与函数进行拟合或者直接两数据进行拟合,前提要分清谁是因变量和自变量。(按个人需求)
首先输入以下代码:
>> x=1:100;
>> plot(x,y)
>> y=sin(x)+1;
>> plot(x,y)
image.png
接着我们在命令窗口输入:cftool,然后选择拟合的数据,当然我们这里拟合的是二维数据。只需要输入2个数据源。
image.png
在获取的拟合左下角就是我们想要的值,即p1和p2(直线拟合)
Linear model Poly1:
f(x) = p1*x + p2
Coefficients (with 95% confidence bounds):
p1 = -0.001181 (-0.006099, 0.003737)
p2 = 1.058 (0.7723, 1.344)
Goodness of fit:
SSE: 50.15
R-square: 0.00231
Adjusted R-square: -0.00787
RMSE: 0.7154
然后选择拟合的函数类型,可以选择线性,高斯,幂律,等常见的函数类型。此时的数据拟合结果也会在左侧显示。如下面的拟合效果还不错:
image.png数据拟合的目的:之所以对实验数据进行拟合是为了得到符合数据的函数关系(你可以简单理解为构造函数解析式),从而能更好地理解数据背后的数学、物理意义。进而对实验的各个参数有更深入的理解,能分析出各个参数对实验结果的影响。