曲线拟合_图文

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MATLAB

中曲线拟合方法总结

鉴于最近遇到非线性函数拟合问题,本人对网上有关 matlab 多种类型的线性、非线性曲线拟合的方法进行了总结,希望对各位朋友有所帮助。

1. Matlab有一个功能强大的曲线拟合工具箱 cftool , 使用方便, 能实现多种类型的线性、非线性曲线拟合。下面简单介绍如何使用这个工具箱。

1.1 从 matlab 命令窗口到 cftool

可以直接在 matlab 命令行输入 cftool 命令即可进入 cftool 窗口。

》 cftool

输入命令回车后就得到一下界面

进行曲线拟合的时候,最基本的操作包括点击“data...”按钮和“fitting...”按钮。

1.2 data… . 按钮

首先,到命令窗口中为点击 "data..." 做好准备:

x=[8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20];

》 y=[0.6,0.62,0.64, 0.65, 0.66, 0.67, 0.68, 0.68, 0.69, 0.66, 0.65, 0.65,0.64]; 》

然后,点击“data...”按钮,选 x 横坐标和选 y 纵坐标变量:

1在弹出的 Data 窗口中,在 X Data 选项中选择 x, 在 Y Data中选择 y 。其中 X, Y 都是刚刚在命令行所准备的数据变量名。

2经过此步骤后点击“Create data set”按钮。这个时候 Data 对话框背后的对话框中已经有散点图了。然后点击 Data 中的 close 按钮 .

1.3 fiting … . 按钮

在正确设置 Data 对话框之后,在关闭 Data 对话框之后,就可以点击 fitting... 按钮了。会弹出这么一个对话框 :

1 在 Fitting 对话框中点击 Newfit 后在 Fitname 为此次曲线取名字:“cftool 曲线拟合”, 当有多条曲线需要同时绘制时,每次都需要点击 Newfit, 然后选择对应的Data set值即对应相应的数据变量就可以绘制多条曲线了。即同时拟合多条曲线。选择 data set。

2选择相应类型的曲线拟合(到其它地方粘贴过来的,点击 Type of fit 下拉菜单:

Custom Equations:用户自定义的函数类型

· Exponential:指数逼近,有 2种类型, a*exp(b*x 、 a*exp(b*x + c*exp(d*x

· Fourier:傅立叶逼近,有 7种类型,基础型是 a0 + a1*cos(x*w + b1*sin(x*w

· Gaussian:高斯逼近,有 8种类型,基础型是 a1*exp(c1-((x-b1/c1^2

· Interpolant:插值逼近,有 4种类型, linear 、 nearest neighbor 、 cubic spline 、shape-preserving · Polynomial:多形式逼近,有 9种类型, linear ~、 quadratic ~、 cubic ~、 4-9th degree ~

· Power:幂逼近,有 2种类型, a*x^b 、 a*x^b + c

· Rational:有理数逼近,分子、分母共有的类型是 linear ~、 quadratic ~、 cubic ~、 4-5th degree ~; 此外,分子还包括 constant 型

· Smoothing Spline:平滑逼近(翻译的不大恰当,不好意思

· Sum of Sin Functions:正弦曲线逼近,有 8种类型,基础型是 a1*sin(b1*x + c1

· Weibull:只有一种, a*b*x^(b-1*exp(-a*x^b

3最后再选择一种曲线拟合下的具体类型,点击 Apply 按钮就可以看见所拟合的曲线了。

如果发现曲线和数据点不是很“磨合”就需要重新选择曲线类型了。

上图是点击了应用按钮之后的状态,在 Results 中得来的就是拟合数据的曲线函数关系式。

点击 Appy 后的运行结果为:

1.4 CFTOOL 菜单使用

在上面显示的曲线拟合结果中, 可以明显的看见横坐标和纵坐标都不是从原点(0,0 开始设置的坐标。那么我们可以使用

Curve Fitting Tool 对话框中 Tools 菜单中的

Tools 中的各个选项的功能:

1 New Cunstom Equation:表示使用自定义的函数来模拟图中显示的散点数据的函数式子。

2 Legend:就是图中显示着“y vs.x cftool 曲线拟合”的那个框。

3 Grid :跟指令 grid 一样的功能,是曲线背景充满虚线框。

4 Axis Limit Control:设置横轴、纵轴坐标的范围。

2. matlab中直接使用曲线拟合工具:cftool. (不使用 cftool 的 GUI 界面

最基本的使用方法如下,假设我们需要拟合的点集存放在两个向量 X 和 Y 中,分别储存着各离散点的横坐标和纵坐标,则在 MATLAB 中直接键入命令 cftool(X,Y 就会弹出 Curve Fitting Tool的 GUI 界面, 点击界面上的 fitting 即可开始曲线拟合。

MATLAB 提供了各种曲线拟合方法,例如:Exponential, Fourier, Gaussing, Interpolant, Polynomial, Power, Rational, Smoothing Spline, Sum of Functions, Weibull 等, 当然, 也可以使用 Custom Equations. cftool 不仅可以绘制拟合后的曲线、给出拟合参数,还能给出拟合好坏的评价参数 (Goodness of fit如 SSE, R-square, RMSE等数据,非常好用。但是如果我们已经确定了拟合的方法,只需要对数据进行计算, 那么这种 GUI 的操作方式就不太适合了,比如在 m 文件中就不方便直接调用 cftool 。

MATLAB 已经给出了解决办法,可以在 cftool 中根据情况生成特定的 m 文件,让我们直接进行特定的曲线拟合并给出参数。具体方法在帮助文件的如下文档中" \ Curve Fitting Toolbox \ Generating M-files From Curve Fitting Tool " ,以下简单举例说明

相关文档
最新文档