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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
一、 单一变量的曲线逼近3 ]  J9 F0 k& k  u
Matlab有一个功能强大的曲线拟合工具箱 cftool ,使用方便,能实现多种类型的线性、非线
8 F, y4 Q. [, p7 l* v+ x性曲线拟合。下面结合我使用的 Matlab R2007b 来简单介绍如何使用这个工具箱。
+ j' F8 R+ r1 D2 H) |* N6 e3 \# \假设我们要拟合的函数形式是 y=A*x*x + B*x, 且A>0,B>0 。% q+ t( q4 G, a! A$ W+ h  O5 ~
1、在命令行输入数据:
% h) q# P. ^  n- e. s4 e5 \; y9 g3 p$ W
》x=[110.3323 148.7328 178.064 202.8258033 224.7105 244.5711 262.908280.0447
9 ?  r$ V& W/ b7 t  v296.204 311.5475]
) M  T3 ]( J5 x$ y% K. V/ l% Z
" s2 k( W% h1 n% v) e2 j" O, L》y=[5 10 15 20 25 30 35 40 45 50]
' D6 P1 ^/ Y* s$ o. Y# X. y1 Y 7 Q4 J& U/ X9 m# G
2、启动曲线拟合工具箱
( p5 p1 q: U9 A4 b$ n》cftool0 [) z$ K8 ]' m9 c6 u& m: o
. L; k7 X6 K6 W4 \
3、进入曲线拟合工具箱界面“Curve Fitting tool”6 x8 J# H: C: P% J8 o+ J8 @4 C
(1)点击“Data”按钮,弹出“Data”窗口;/ v& p1 k* Y' @" w' w
(2)利用X data和Y data的下拉菜单读入数据x,y,可修改数据集名“Data setname”,然' `- S1 T2 S' s3 y2 ~2 [! d2 V
后点击“Create data set”按钮,退出“Data”窗口,返回工具箱界面,这时会自动画出数- ^6 U* y9 I6 c! g
据集的曲线图;. h# p/ U% ], O7 e' C
(3)点击“Fitting”按钮,弹出“Fitting”窗口;7 t+ g2 v$ t. }9 H& ?, ?
(4)点击“New fit”按钮,可修改拟合项目名称“Fit name”,通过“Dataset”下拉菜单
( j) ^5 {9 J/ `( K8 a选择数据集,然后通过下拉菜单“Type of fit”选择拟合曲线的类型,工具箱提供的拟合类+ f, Q/ ^# j2 X2 C! Z' |
型有:) p* B: \+ l7 J
Custom Equations:用户自定义的函数类型: @2 k+ {3 S1 c- j9 P
Exponential:指数逼近,有2种类型, a*exp(b*x) 、 a*exp(b*x) +c*exp(d*x)
' @' u' r1 _3 i. {% t' q4 z; G+ lFourier:傅立叶逼近,有7种类型,基础型是 a0 + a1*cos(x*w) +b1*sin(x*w)
% Y4 r8 I5 [; m9 h& [Gaussian:高斯逼近,有8种类型,基础型是 a1*exp(-((x-b1)/c1)^2)8 \: `$ G4 N& Y; ^
Interpolant:插值逼近,有4种类型,linear、nearest neighbor、cubicspline、shape-; B5 y5 i8 [. Q' p0 `% V) [
preserving
0 J4 |5 _2 y$ hPolynomial:多形式逼近,有9种类型,linear ~、quadratic ~、cubic ~、4-9th degree~
. G# ?* J9 _8 J) \, F( fPower:幂逼近,有2种类型,a*x^b 、a*x^b + c
) k( `9 t7 M* D5 A& [3 zRational:有理数逼近,分子、分母共有的类型是linear ~、quadratic ~、cubic~、4-5th, M. b! C) s9 U( e0 k8 Z
degree ~;此外,分子还包括constant型
! Z( Q* d' Y& U8 i2 c  MSmoothing Spline:平滑逼近(翻译的不大恰当,不好意思)8 S: k- V" ]3 F6 x* X/ e
Sum of Sin Functions:正弦曲线逼近,有8种类型,基础型是 a1*sin(b1*x +c1)8 v  ~) t6 F$ {+ D+ y* z" ]" `9 P
Weibull:只有一种,a*b*x^(b-1)*exp(-a*x^b)
/ H% W6 o$ Y/ S! D选择好所需的拟合曲线类型及其子类型,并进行相关设置:
$ h( [5 t. d7 e$ v9 }6 b——如果是非自定义的类型,根据实际需要点击“Fit options”按钮,设置拟合算法、修改5 @% g& H0 N- w8 z
待估计参数的上下限等参数;" \2 R) I7 q3 p
——如果选CustomEquations,点击“New”按钮,弹出自定义函数等式窗口,有“Linear5 D( I& b2 r3 ]4 Q
Equations线性等式”和“General Equations构造等式”两种标签。) R$ {7 |1 P' B" Y; T, U* V6 o
在本例中选Custom Equations,点击“New”按钮,选择“GeneralEquations”标签,输入函
9 [! e" }; I4 K& _数类型y=a*x*x + b*x,设置参数a、b的上下限,然后点击OK。  i7 V# f+ k0 i( J) t
(5)类型设置完成后,点击“Apply”按钮,就可以在Results框中得到拟合结果,如下例:
: f4 ]! S& G' b7 N6 w/ I8 @! h1 cgeneral model:3 B7 M0 H2 v8 n" C
f(x) = a*x*x+b*x$ v% u  t% r% d' s- n3 W2 o1 F
Coefficients (with 95% confidence bounds):
/ `+ O  A, \1 z" K8 Y. Na = 0.009194 (0.009019, 0.00937)# |* n4 A& E1 p' D, _" A* n( ]. t
b = 1.78e-011 (fixed at bound)
6 m8 L3 @6 H( s5 y( J* D3 [6 lGoodness of fit:' g& k( P/ l  b* `( u
SSE: 6.146* ]3 {- C; c# t: E: O4 ?3 a: F
R-square: 0.997, L: K! v( K) g' L7 p/ [$ R, K9 u
Adjusted R-square: 0.997* p- Q" y- H4 @' K1 k
RMSE: 0.82639 e/ _+ I8 S( y
同时,也会在工具箱窗口中显示拟合曲线。
5 W5 y1 e# ~  a: U这样,就完成一次曲线拟合啦,十分方便快捷。当然,如果你觉得拟合效果不好,还可以在“9 D2 @/ H0 e0 _0 R1 d
Fitting”窗口点击“New fit”按钮,按照步骤(4)~(5)进行一次新的拟合。
. N2 L" n/ w9 _9 g1 r5 Q不过,需要注意的是,cftool 工具箱只能进行单个变量的曲线拟合,即待拟合的公式中,变
9 k4 Y5 q) \0 j3 F3 R' T& A, i量只能有一个。对于混合型的曲线,例如 y = a*x + b/x ,工具箱的拟合效果并不好。下一
: |2 J3 i4 p; O& J篇文章我介绍帮同学做的一个非线性函数的曲线拟合。
) b7 Z, e2 J' B # u9 r# d# p# |. E9 `
上边对cftool工具箱做了很详尽的说明,但并没有对各种曲线拟合的性能做点评,在单变量曲线拟合中,如何选取一种最优化的拟合方式是非常重要的,我们在采用CFTOOL拟合后,会有一些性能说明,如:
+ Y3 ]) ]- J4 @: C& G" H0 l. jGoodness of fit:
, Z* i7 s3 Q. i; `5 pSSE: 6.1467 y9 o+ q$ W- _' T
R-square: 0.997
+ `6 _% J  q5 r; L; {% wAdjusted R-square: 0.997+ I. n6 Y+ m; F1 N
RMSE: 0.8263
' l( P( X6 i7 T5 w ( P1 L; M% C- r& R) i3 ?. ]) _7 S
官方的解释:
9 n, e: A; s3 _( @  m! K2 QResults -- 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:1 C, `- L  B# ^! A# ^8 b
, d! n9 Y0 F% a1 q9 V2 c2 T/ L' Z& x% m
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.
: A6 q2 b8 f" \, D9 s# H2 P ' d6 B2 @8 u2 Z0 F" a
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./ H! n) C2 U$ O/ C9 G- J

; p5 ^4 _( ~0 f8 z) a: s% MAdjusted 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.
! E; F, U* V: w; {5 y ; H% R* f( y% f3 o# g: F8 O
RMSE -- The root mean squared error. A value closer to 0 indicatesa better fit.
$ ]7 j4 U% @8 V' T# q7 L

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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