找回密码
 注册
关于网站域名变更的通知
查看: 496|回复: 1
打印 上一主题 下一主题

Matlab曲线拟合工具箱CFtool使用简介

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-4-16 11:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
一、 单一变量的曲线逼近* _& M3 q$ J  _4 s6 o
Matlab有一个功能强大的曲线拟合工具箱 cftool ,使用方便,能实现多种类型的线性、非线
( Y* F2 T1 p* K. C, B% Y. b性曲线拟合。下面结合我使用的 Matlab R2007b 来简单介绍如何使用这个工具箱。3 P# o7 f" T% c! J# P8 l+ ~1 E
假设我们要拟合的函数形式是 y=A*x*x + B*x, 且A>0,B>0 。
2 W2 }7 [" c! A1、在命令行输入数据:) j0 ~! v; W" E. l+ v
. b6 U* v; b, r, n% y
》x=[110.3323 148.7328 178.064 202.8258033 224.7105 244.5711 262.908280.0447
( Q( t; U9 t3 t# V296.204 311.5475]  ]: K( Y- V: q7 }' P& t. b- |3 v
- a6 {3 L5 l) r! }( [& Q/ y+ F
》y=[5 10 15 20 25 30 35 40 45 50]0 L! S+ C" x4 Q3 x( A) L* [

0 `, `: u% p" M+ w5 I* |2 n2、启动曲线拟合工具箱9 \9 V& p: j  S: `0 i4 w  I0 ^7 \6 D
》cftool
1 s0 {# p& {. H% l, d: A4 @ + D) [; Z0 c' R
3、进入曲线拟合工具箱界面“Curve Fitting tool”/ `$ H8 K: E" N2 j
(1)点击“Data”按钮,弹出“Data”窗口;
! X- S' ]( d3 n(2)利用X data和Y data的下拉菜单读入数据x,y,可修改数据集名“Data setname”,然1 Y# A: \" \. ^: k9 i' V
后点击“Create data set”按钮,退出“Data”窗口,返回工具箱界面,这时会自动画出数
, L( s' r, P) F; T8 L) H据集的曲线图;
' H& G5 {( C$ }+ s(3)点击“Fitting”按钮,弹出“Fitting”窗口;& l/ }, ^5 ]# A5 S1 V" Z7 i
(4)点击“New fit”按钮,可修改拟合项目名称“Fit name”,通过“Dataset”下拉菜单
+ J; x  K( P( ^选择数据集,然后通过下拉菜单“Type of fit”选择拟合曲线的类型,工具箱提供的拟合类& m+ q$ F, S: ^' n' {
型有:1 w# a! L; c* h: v3 R  N
Custom Equations:用户自定义的函数类型$ C* u; d7 R6 v7 z0 m7 R
Exponential:指数逼近,有2种类型, a*exp(b*x) 、 a*exp(b*x) +c*exp(d*x)) s' E0 R$ W+ l; N4 g/ u
Fourier:傅立叶逼近,有7种类型,基础型是 a0 + a1*cos(x*w) +b1*sin(x*w)
+ Q! [: h. r6 Q( M& x2 K( TGaussian:高斯逼近,有8种类型,基础型是 a1*exp(-((x-b1)/c1)^2); ]* Y) B8 L4 C4 n2 }: e9 v2 u
Interpolant:插值逼近,有4种类型,linear、nearest neighbor、cubicspline、shape-$ l4 r1 Z! n, F6 m6 o4 T5 |
preserving( e" m; E) s! J: N: I  H& D
Polynomial:多形式逼近,有9种类型,linear ~、quadratic ~、cubic ~、4-9th degree~
& O; d2 W2 X# |; L6 J6 QPower:幂逼近,有2种类型,a*x^b 、a*x^b + c
8 g) m% D* L' V6 qRational:有理数逼近,分子、分母共有的类型是linear ~、quadratic ~、cubic~、4-5th. p. {& G- A$ n( [* |, p* t& z8 a# L
degree ~;此外,分子还包括constant型% x& P/ F5 }% A- B/ T* x
Smoothing Spline:平滑逼近(翻译的不大恰当,不好意思)( C+ Z6 G: ?4 M/ y) P0 a
Sum of Sin Functions:正弦曲线逼近,有8种类型,基础型是 a1*sin(b1*x +c1)3 h2 h( [  z0 ]: E
Weibull:只有一种,a*b*x^(b-1)*exp(-a*x^b)6 \/ o+ F: R* A1 t: E3 O
选择好所需的拟合曲线类型及其子类型,并进行相关设置:+ {  f" U* F2 P; P* S- l2 g0 r; O# W1 C
——如果是非自定义的类型,根据实际需要点击“Fit options”按钮,设置拟合算法、修改
- s5 ]* X) c8 b4 K" ~待估计参数的上下限等参数;
# W5 K" }8 S9 L" w- q——如果选CustomEquations,点击“New”按钮,弹出自定义函数等式窗口,有“Linear
  g5 @9 D! ~% X9 U' tEquations线性等式”和“General Equations构造等式”两种标签。. A' X  @" h3 T9 f- a1 G% e
在本例中选Custom Equations,点击“New”按钮,选择“GeneralEquations”标签,输入函
% k' F( o4 x: h: ]" Q2 x3 C# w& f数类型y=a*x*x + b*x,设置参数a、b的上下限,然后点击OK。
/ P4 o& W, t* c3 e2 D7 ]9 H(5)类型设置完成后,点击“Apply”按钮,就可以在Results框中得到拟合结果,如下例:1 x( V+ e2 c' r: |& t& H
general model:& ]& \* c" g9 `( m4 n' F
f(x) = a*x*x+b*x
9 _& o* k2 K7 y: j" J) w/ ]Coefficients (with 95% confidence bounds):
. A+ U- [2 c2 ]; Ja = 0.009194 (0.009019, 0.00937)/ [& h& {& q/ h6 H- \; y7 c
b = 1.78e-011 (fixed at bound)
/ v; u; l6 ~, j# E$ wGoodness of fit:) {3 M+ x  l, F& P) v
SSE: 6.146& K  U. q$ Q; l. Y7 v1 p
R-square: 0.997' ]) d# p8 h8 B8 j
Adjusted R-square: 0.997
! e; m7 b' e' d6 n0 k+ VRMSE: 0.8263- H& Q. l1 }! e7 ?9 ~: m
同时,也会在工具箱窗口中显示拟合曲线。
8 M- K6 V0 l2 X, t/ J6 e2 w这样,就完成一次曲线拟合啦,十分方便快捷。当然,如果你觉得拟合效果不好,还可以在“
) ~9 r2 p6 E; f* X, w3 v6 @1 ]Fitting”窗口点击“New fit”按钮,按照步骤(4)~(5)进行一次新的拟合。. X7 Q8 c6 f- g/ U( ^
不过,需要注意的是,cftool 工具箱只能进行单个变量的曲线拟合,即待拟合的公式中,变
7 Z! V. }! T/ W9 p量只能有一个。对于混合型的曲线,例如 y = a*x + b/x ,工具箱的拟合效果并不好。下一
- G* d$ ?5 V- L4 s& n0 r1 j$ j篇文章我介绍帮同学做的一个非线性函数的曲线拟合。
. K; \- u- {: D9 g) ^+ ~ " w0 V2 r, Z# `4 G; q
上边对cftool工具箱做了很详尽的说明,但并没有对各种曲线拟合的性能做点评,在单变量曲线拟合中,如何选取一种最优化的拟合方式是非常重要的,我们在采用CFTOOL拟合后,会有一些性能说明,如:
) s: {" ]* d' m( EGoodness of fit:
% d, \. V+ g' D. B6 U. ?3 FSSE: 6.146
  Z  M# y% m! Y. P# dR-square: 0.9976 N5 L9 J1 \( T/ f& K$ c
Adjusted R-square: 0.997. s+ B: T' O6 b: J1 [. E+ B
RMSE: 0.82633 O' v  b: U) o, S  I

+ j4 _8 ]" I0 k% j  V' h官方的解释:
& e& V" r1 T) K) G5 G% |Results -- Displays detailed results for the current fit includingthe fit type (model, spline, or interpolant), the fittedcoefficients and 95% confidence bounds for parametric fits, andthese goodness of fit statistics:
3 q4 f9 a; l/ [9 j6 L  j( v 8 e) d0 a2 B3 p7 k# Z' {! _
SSE -- The sum of squares due to error. This statistic measures thedeviation of the responses from the fitted values of the responses.A value closer to 0 indicates a better fit.4 N; Q; D% E7 E$ F

2 y' i2 F5 L( n* vR-square -- The coefficient of multiple determination. Thisstatistic measures how successful the fit is in explaining thevariation of the data. A value closer to 1 indicates a betteRFit.1 U8 D" ?3 a& W$ U" K& Y

7 o: k+ A# G% b  l+ D1 V9 Y$ @, i8 B1 _Adjusted R-square -- The degree of freedom adjusted R-square. Avalue closer to 1 indicates a better fit. It is generally the bestindicator of the fit quality when you add additional coefficientsto your model.
. Z0 N  p' M  m# N. }: f& q4 d # R  `/ h3 u; n$ n6 `) a
RMSE -- The root mean squared error. A value closer to 0 indicatesa better fit.
! z& V# t7 ?( y8 Z( Y

该用户从未签到

2#
发表于 2020-4-16 18:19 | 只看该作者
很实用的工具。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-6-21 21:32 , Processed in 0.078125 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表