AI人工智能与数学之美

强大的matlab数据拟合库cftool——直接输入参数进行拟合

2020-04-23  本文已影响0人  KangSmit的算法那些事儿

对于使用过matlab做数据处理的人来说,拟合是将平面上一系列的点,用一条光滑的曲线连接起来。因为这条曲线有无数种可能,从而有各种拟合方法。拟合的曲线一般可以用函数表示,根据这个函数的不同有不同的拟合名字。

数据拟合又称曲线拟合,俗称拉曲线,是一种把现有数据透过数学方法来代入一条数式的表示方式。科学工程问题可以通过诸如采样实验等方法获得若干离散的数据,根据这些数据,我们往往希望得到一个连续的函数(也就是曲线)或者更加密集的离散方程与已知数据相吻合,这过程就叫做拟合(fitting)
介绍的引用来源:百度

一、安装cftool

cftool(Curve Fitting Toolbox™)工具箱主要是针对数据拟合的。使用起来特别的强大,尤其对于数据的处理超级方便,可以直接对于数据拟合,并且可以预设各种的拟合方案。这里注意的是非线性的也可以进行拟合,例如:幂律,高斯等等。

更详细的功能描述:Curve Fitting Toolbox™提供了用于将曲线和曲面拟合到数据的应用程序和功能。 该工具箱可让您执行探索性数据分析,预处理和后处理数据,比较候选模型并删除异常值。 您可以使用提供的线性和非线性模型库进行回归分析,也可以指定自己的自定义方程式。 该库提供了优化的求解器参数和起始条件,以提高拟合质量。 该工具箱还支持非参数建模技术,例如样条,插值和平滑。 创建拟合后,您可以应用各种后处理方法进行绘图,内插和外推。 估计置信区间; 并计算积分和导数。

主要在matlab附加资源管理器:

image.png
image.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

数据拟合的目的:之所以对实验数据进行拟合是为了得到符合数据的函数关系(你可以简单理解为构造函数解析式),从而能更好地理解数据背后的数学、物理意义。进而对实验的各个参数有更深入的理解,能分析出各个参数对实验结果的影响。

上一篇下一篇

猜你喜欢

热点阅读