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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
一、 单一变量的曲线逼近# g: J( N) p* F" T0 \8 y8 \
Matlab有一个功能强大的曲线拟合工具箱 cftool ,使用方便,能实现多种类型的线性、非线
$ j7 v5 j; |# ~. m0 p8 A% z性曲线拟合。下面结合我使用的 Matlab R2007b 来简单介绍如何使用这个工具箱。
2 J: Y" X; e) G) a# J9 M假设我们要拟合的函数形式是 y=A*x*x + B*x, 且A>0,B>0 。
: @. \/ B6 _. J. u1、在命令行输入数据:! j- c1 ~! J0 d" X8 l' {

1 l- F% Q0 V3 V- s》x=[110.3323 148.7328 178.064 202.8258033 224.7105 244.5711 262.908280.0447" k: u- n5 j6 q+ M  h4 \
296.204 311.5475]$ J1 d; {5 m! o7 _( }

% }  j. T/ @8 j5 j, J5 A2 T》y=[5 10 15 20 25 30 35 40 45 50]
. I, @, F6 w0 G" o! T; Y 7 b" m# d8 O, n2 I, r
2、启动曲线拟合工具箱5 f+ w1 M, L) W. ~8 B3 o( N, f
》cftool
$ e5 |! x  |2 q; Z# n + c1 j! C7 H* c
3、进入曲线拟合工具箱界面“Curve Fitting tool”2 X9 M3 S) [1 A4 U# {4 m7 s/ V) N
(1)点击“Data”按钮,弹出“Data”窗口;
* [- X1 s, W' r0 O: ]2 n# d(2)利用X data和Y data的下拉菜单读入数据x,y,可修改数据集名“Data setname”,然- a3 r, r( |3 _5 g. o" ^
后点击“Create data set”按钮,退出“Data”窗口,返回工具箱界面,这时会自动画出数' i6 k& O" e# P! o' s5 s
据集的曲线图;
' O7 }! p( M5 w$ |- t: {(3)点击“Fitting”按钮,弹出“Fitting”窗口;
& X. J( O( M3 i9 V% B$ t6 p* }; u(4)点击“New fit”按钮,可修改拟合项目名称“Fit name”,通过“Dataset”下拉菜单
9 d+ X( c5 V  K- f8 O! B选择数据集,然后通过下拉菜单“Type of fit”选择拟合曲线的类型,工具箱提供的拟合类" }( N& W: O7 u& u3 G  J
型有:1 W, k0 T; @4 j8 g
Custom Equations:用户自定义的函数类型" Q( \/ r* |8 }8 o  }7 H
Exponential:指数逼近,有2种类型, a*exp(b*x) 、 a*exp(b*x) +c*exp(d*x)" U2 V, N+ E: F- \# O: t
Fourier:傅立叶逼近,有7种类型,基础型是 a0 + a1*cos(x*w) +b1*sin(x*w)0 e6 R% X! r/ m0 @5 Q# r" G9 q
Gaussian:高斯逼近,有8种类型,基础型是 a1*exp(-((x-b1)/c1)^2)
6 z8 f) o+ L) N! z4 G6 [Interpolant:插值逼近,有4种类型,linear、nearest neighbor、cubicspline、shape-# I7 C/ |2 ^: g1 i& R9 W$ X
preserving
6 Y: m& \( Z* [( h# R# {4 ?Polynomial:多形式逼近,有9种类型,linear ~、quadratic ~、cubic ~、4-9th degree~, g0 c5 T. ?& c2 Q, t
Power:幂逼近,有2种类型,a*x^b 、a*x^b + c
( p) Z6 M% V# T& B2 VRational:有理数逼近,分子、分母共有的类型是linear ~、quadratic ~、cubic~、4-5th1 f# h# a3 Y$ I7 K
degree ~;此外,分子还包括constant型
$ p) W( r! g* ~. n7 _& z% Y( NSmoothing Spline:平滑逼近(翻译的不大恰当,不好意思)8 D, m+ s1 J. v$ P
Sum of Sin Functions:正弦曲线逼近,有8种类型,基础型是 a1*sin(b1*x +c1)! e" L% X$ {1 v) A2 S! F" J- j% b
Weibull:只有一种,a*b*x^(b-1)*exp(-a*x^b)
2 k0 s4 ^( J* B! U2 ?7 H选择好所需的拟合曲线类型及其子类型,并进行相关设置:" s; l' x: k  C. u$ o- g& S
——如果是非自定义的类型,根据实际需要点击“Fit options”按钮,设置拟合算法、修改
( g7 T* J# Q! x) A/ A待估计参数的上下限等参数;
, |# f& {; K, w' K——如果选CustomEquations,点击“New”按钮,弹出自定义函数等式窗口,有“Linear; p, ^: Q" c* z
Equations线性等式”和“General Equations构造等式”两种标签。0 W( Z! k/ L6 i  p" O
在本例中选Custom Equations,点击“New”按钮,选择“GeneralEquations”标签,输入函
, o, r& r1 y$ R9 ?数类型y=a*x*x + b*x,设置参数a、b的上下限,然后点击OK。; H" l) r# l4 `
(5)类型设置完成后,点击“Apply”按钮,就可以在Results框中得到拟合结果,如下例:# w3 S- i6 i0 ~7 V0 a3 _: z3 }' N, Q2 f* r
general model:& ]: G8 G- {- \# o. n  ^
f(x) = a*x*x+b*x
- o1 J' i' Y& s: r/ rCoefficients (with 95% confidence bounds):% Y% Y& `( z/ o% p/ B
a = 0.009194 (0.009019, 0.00937)7 x1 l' n' E+ }+ I  ]: k5 H" s  o' g/ }
b = 1.78e-011 (fixed at bound)
" B* ^8 ~1 t  j3 X# _2 IGoodness of fit:  `2 f- b  \; k2 i" D* w' z, l; r4 K
SSE: 6.146
" R+ m0 |) T$ W, p) c' vR-square: 0.9978 V2 R5 E2 _5 x8 C
Adjusted R-square: 0.997' `) a3 T0 p5 I* Y4 M
RMSE: 0.8263
& ~6 W0 q# |: Q同时,也会在工具箱窗口中显示拟合曲线。9 f. L4 d5 D, k' ^/ J
这样,就完成一次曲线拟合啦,十分方便快捷。当然,如果你觉得拟合效果不好,还可以在“+ U$ A9 Y- z' v( E
Fitting”窗口点击“New fit”按钮,按照步骤(4)~(5)进行一次新的拟合。
( c  u6 C, j( k3 C/ |: o不过,需要注意的是,cftool 工具箱只能进行单个变量的曲线拟合,即待拟合的公式中,变; Y' z- f$ e6 L3 j$ c
量只能有一个。对于混合型的曲线,例如 y = a*x + b/x ,工具箱的拟合效果并不好。下一& ]$ k7 @3 O; z0 Y( {5 I
篇文章我介绍帮同学做的一个非线性函数的曲线拟合。
- c; Q/ g( J7 x % L( @' G$ R, X0 t2 H7 o1 O
上边对cftool工具箱做了很详尽的说明,但并没有对各种曲线拟合的性能做点评,在单变量曲线拟合中,如何选取一种最优化的拟合方式是非常重要的,我们在采用CFTOOL拟合后,会有一些性能说明,如:# O; Y( P/ q$ P/ M! C9 J
Goodness of fit:: Y) e( E4 p. J* Q: `8 h2 C" h
SSE: 6.146
2 Z" J: r/ g5 d) d. _& wR-square: 0.997
% ]0 g: X9 V9 uAdjusted R-square: 0.997
( u+ s: ?7 T; Q( _4 V' mRMSE: 0.8263- E; P9 r; c4 Y% h1 A
/ e. B5 f6 G! x% N' [8 M
官方的解释:! A  @7 H8 l  v6 I
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:4 I6 w- D% W& }- `- M4 e
% |# a; ~: G+ K
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.0 [: g: ?  W) D+ T( S1 ?
: w/ D' t3 O5 l0 M3 Z
R-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.8 ]  V8 T* p  P/ W7 i

* Z/ l5 u9 J/ {* ?7 x2 UAdjusted 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.
& G4 h& l" H, P' }  U6 v : A$ N5 M, r# r" P
RMSE -- The root mean squared error. A value closer to 0 indicatesa better fit.
+ U- I" g' n0 r* F# b; k& h+ E

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-24 01:30 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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