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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
一、 单一变量的曲线逼近
. A- q# l' w& c/ S* c" ]" vMatlab有一个功能强大的曲线拟合工具箱 cftool ,使用方便,能实现多种类型的线性、非线
9 E$ v/ v, O: B$ T9 e) r: H5 J性曲线拟合。下面结合我使用的 Matlab R2007b 来简单介绍如何使用这个工具箱。
: S+ k! J+ e( `1 h6 _4 v0 ^假设我们要拟合的函数形式是 y=A*x*x + B*x, 且A>0,B>0 。/ p5 Y* ~3 V/ b3 S5 ^) K8 u
1、在命令行输入数据:
7 @! B& r' Y" }7 c# w
: S& ^3 p: ^, m1 C2 a3 q4 u  L》x=[110.3323 148.7328 178.064 202.8258033 224.7105 244.5711 262.908280.0447# ^" p, H" `; W  k: E
296.204 311.5475]" V5 a' R7 o2 A! i* _1 B) D
0 y" U1 \. ]6 s* X1 W" ]
》y=[5 10 15 20 25 30 35 40 45 50]5 {6 K+ ^) S* c
  I8 x- e. b8 h* L1 C5 v5 J
2、启动曲线拟合工具箱* [2 T* F9 {: z' L9 R, |9 n- j- X
》cftool
: f+ k; x3 K' x
& H) }3 s1 D5 n! F0 `# Z6 n3、进入曲线拟合工具箱界面“Curve Fitting tool”; ?- K" X5 `3 v5 j. v2 p
(1)点击“Data”按钮,弹出“Data”窗口;5 i) f% {& l; v9 Y! s) q
(2)利用X data和Y data的下拉菜单读入数据x,y,可修改数据集名“Data setname”,然
! _) A$ {0 k& E) F( E% A/ x* {9 ~" C后点击“Create data set”按钮,退出“Data”窗口,返回工具箱界面,这时会自动画出数5 K' d8 ?/ V: K) O
据集的曲线图;
/ F8 c' Z, G- p2 u) ?(3)点击“Fitting”按钮,弹出“Fitting”窗口;
# J- z' R* p& u# N(4)点击“New fit”按钮,可修改拟合项目名称“Fit name”,通过“Dataset”下拉菜单: \3 u3 x* ~8 K) Z8 G
选择数据集,然后通过下拉菜单“Type of fit”选择拟合曲线的类型,工具箱提供的拟合类2 Z5 z9 Q) n* G, N. p! ]& |; I
型有:; q7 V5 I. C9 y
Custom Equations:用户自定义的函数类型5 b& _5 n) b6 v8 Q9 t
Exponential:指数逼近,有2种类型, a*exp(b*x) 、 a*exp(b*x) +c*exp(d*x)9 Z5 {, N$ D/ O; O' c4 _
Fourier:傅立叶逼近,有7种类型,基础型是 a0 + a1*cos(x*w) +b1*sin(x*w)
, R2 J8 N3 j2 G* U- ~+ rGaussian:高斯逼近,有8种类型,基础型是 a1*exp(-((x-b1)/c1)^2)
" m" R$ X! {8 v5 i1 vInterpolant:插值逼近,有4种类型,linear、nearest neighbor、cubicspline、shape-
) {* ~, k/ [+ d8 apreserving
* p6 Z5 A8 e+ XPolynomial:多形式逼近,有9种类型,linear ~、quadratic ~、cubic ~、4-9th degree~3 f/ t. g0 G% r: z
Power:幂逼近,有2种类型,a*x^b 、a*x^b + c, E+ B! G* E) o# y$ o' O* N- \
Rational:有理数逼近,分子、分母共有的类型是linear ~、quadratic ~、cubic~、4-5th" U0 ]5 p+ P/ |' y1 a& e2 P4 s
degree ~;此外,分子还包括constant型: h$ P; Q- \" g
Smoothing Spline:平滑逼近(翻译的不大恰当,不好意思)
' n( [3 L. ~; |  D$ Y' ~( \Sum of Sin Functions:正弦曲线逼近,有8种类型,基础型是 a1*sin(b1*x +c1)
* _/ N  [( z5 f. I& AWeibull:只有一种,a*b*x^(b-1)*exp(-a*x^b)
0 W- i  k( X$ V. ^- l5 {选择好所需的拟合曲线类型及其子类型,并进行相关设置:
7 G7 ?0 z  {5 R8 e——如果是非自定义的类型,根据实际需要点击“Fit options”按钮,设置拟合算法、修改, o- D0 {# K2 i/ W! e8 k
待估计参数的上下限等参数;* t/ Y8 ^+ v3 M. t8 ^% H
——如果选CustomEquations,点击“New”按钮,弹出自定义函数等式窗口,有“Linear5 K+ ]- h7 v. y% @7 W4 i$ }
Equations线性等式”和“General Equations构造等式”两种标签。$ s* ~. q8 y* q! K
在本例中选Custom Equations,点击“New”按钮,选择“GeneralEquations”标签,输入函
! F3 ?- P. d2 K% `1 P1 {数类型y=a*x*x + b*x,设置参数a、b的上下限,然后点击OK。" k  b. o  E& Q$ D/ u' t. R! X% X) @$ u+ k
(5)类型设置完成后,点击“Apply”按钮,就可以在Results框中得到拟合结果,如下例:9 u' ?  }, K% q3 c& G* L
general model:. s) S( a! o: [2 m! X6 v
f(x) = a*x*x+b*x
. m$ L- h6 m, q* gCoefficients (with 95% confidence bounds):
6 ?: B  g: y. w9 f3 Da = 0.009194 (0.009019, 0.00937)
. I" c% K) F# Z4 R  G2 B! qb = 1.78e-011 (fixed at bound): A) `# I* t, Z# J! Q1 `3 f
Goodness of fit:' A: _- x# [" f# d- _% c1 {
SSE: 6.1460 g) d% A/ B. K& t7 T* s
R-square: 0.997
: x1 s, X) m5 ^' xAdjusted R-square: 0.997
* i: \+ \2 K3 E' SRMSE: 0.8263
- t7 T7 ~  ?5 B同时,也会在工具箱窗口中显示拟合曲线。
1 V* G& i7 ]6 T1 B, l; ~/ q9 N这样,就完成一次曲线拟合啦,十分方便快捷。当然,如果你觉得拟合效果不好,还可以在“
$ @% G2 f, @' Z9 H- M+ ]$ vFitting”窗口点击“New fit”按钮,按照步骤(4)~(5)进行一次新的拟合。% Q, j  w  e' X. s6 W
不过,需要注意的是,cftool 工具箱只能进行单个变量的曲线拟合,即待拟合的公式中,变6 Z( p& c1 Z+ {1 m  u9 m/ v" c8 }
量只能有一个。对于混合型的曲线,例如 y = a*x + b/x ,工具箱的拟合效果并不好。下一
" |: g+ u; p/ T5 |& G& C篇文章我介绍帮同学做的一个非线性函数的曲线拟合。
  t& o; F9 Q" m2 f0 v4 U" Y: X + l3 n* C, L" E
上边对cftool工具箱做了很详尽的说明,但并没有对各种曲线拟合的性能做点评,在单变量曲线拟合中,如何选取一种最优化的拟合方式是非常重要的,我们在采用CFTOOL拟合后,会有一些性能说明,如:
% Z* X. f! G! K9 J! @Goodness of fit:
; ]! A" W4 C6 g* f% B5 i: T/ dSSE: 6.146& T4 v+ _0 D; w" C
R-square: 0.997
9 z2 T5 ~5 \' b4 W' h* lAdjusted R-square: 0.9971 f6 ]/ ~' R; M! O. ?+ k, ?$ t
RMSE: 0.8263
. W/ p# u2 o" S9 t8 Y* U . V* C' Q% ~# v8 i4 }
官方的解释:
. {0 }& ^0 f5 _, P0 ^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:  Y, l- s* J2 o1 N+ `! _
) |# Z3 h* S1 N. e: D, H. X
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.6 Y4 G1 \# [1 v) H4 s; G
; f3 d4 ^) y8 L/ n6 ?
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.3 l8 {3 ?5 h* \

3 D" I9 J& Z- |; n, ]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./ Q5 b  j& w' _5 w( i/ X* a+ T9 T
1 W: N$ ]1 M+ ?. |5 Y% _
RMSE -- The root mean squared error. A value closer to 0 indicatesa better fit.$ ?% s' Q" W. g; P

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-4 16:27 , Processed in 0.187500 second(s), 23 queries , Gzip On.

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

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

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