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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
一、 单一变量的曲线逼近
0 J' t" _3 R1 I4 w. cMatlab有一个功能强大的曲线拟合工具箱 cftool ,使用方便,能实现多种类型的线性、非线" K5 U- s, y0 @" S2 b
性曲线拟合。下面结合我使用的 Matlab R2007b 来简单介绍如何使用这个工具箱。
! y# _3 e0 |( {, f4 n) M- R  ^假设我们要拟合的函数形式是 y=A*x*x + B*x, 且A>0,B>0 。3 @) d% ]$ a* p2 l! l, D' z
1、在命令行输入数据:
+ x; l( q/ y1 f* J+ j3 Q0 X* M% U0 z! u
》x=[110.3323 148.7328 178.064 202.8258033 224.7105 244.5711 262.908280.0447$ z5 d5 P: K1 m2 v1 E
296.204 311.5475]( g& c1 s  _! ]4 F: Y, S

, C$ _! y. _# f: a; [# b》y=[5 10 15 20 25 30 35 40 45 50]
  b; @* D# _+ r' m , ]* L2 F$ U8 d) J
2、启动曲线拟合工具箱
/ |; ^/ L9 e$ i7 X/ v* {0 ]》cftool
, e4 l8 U: U5 |4 k, U
3 Q, j5 c( A+ c3、进入曲线拟合工具箱界面“Curve Fitting tool”$ N! ~, g; k9 Z& l" g+ S- W# o
(1)点击“Data”按钮,弹出“Data”窗口;7 f- i) V) F4 C: F/ }2 v
(2)利用X data和Y data的下拉菜单读入数据x,y,可修改数据集名“Data setname”,然
. n" I  d" ?3 n- d# K后点击“Create data set”按钮,退出“Data”窗口,返回工具箱界面,这时会自动画出数, }9 M6 T/ Q/ T' t. M, R% j
据集的曲线图;5 z: L5 j# x: X$ U7 B$ [
(3)点击“Fitting”按钮,弹出“Fitting”窗口;4 z, A6 e0 T4 I7 n4 H0 a2 ^
(4)点击“New fit”按钮,可修改拟合项目名称“Fit name”,通过“Dataset”下拉菜单
4 N; X) }* W& r" [4 `! }* A! \选择数据集,然后通过下拉菜单“Type of fit”选择拟合曲线的类型,工具箱提供的拟合类
4 G  K, h+ V: L6 E( v& k型有:8 Z$ s3 G- J/ N/ u& n3 r" K
Custom Equations:用户自定义的函数类型' L& U3 m9 Q* [  W* B2 {5 A; d, N
Exponential:指数逼近,有2种类型, a*exp(b*x) 、 a*exp(b*x) +c*exp(d*x)
' d% a0 ^, J0 o. q, ~: y8 [Fourier:傅立叶逼近,有7种类型,基础型是 a0 + a1*cos(x*w) +b1*sin(x*w)$ `0 _; M3 P' w& A3 Q
Gaussian:高斯逼近,有8种类型,基础型是 a1*exp(-((x-b1)/c1)^2)
8 M1 S/ b; ^2 |  y0 ^2 x& `Interpolant:插值逼近,有4种类型,linear、nearest neighbor、cubicspline、shape-' w8 f9 ^' z5 Y, `
preserving% z" P+ n6 T/ ^- O- W( i
Polynomial:多形式逼近,有9种类型,linear ~、quadratic ~、cubic ~、4-9th degree~4 R* I/ ]0 Q+ l. f+ u, l
Power:幂逼近,有2种类型,a*x^b 、a*x^b + c
6 X+ `: @7 n1 v# M( }/ _7 @& SRational:有理数逼近,分子、分母共有的类型是linear ~、quadratic ~、cubic~、4-5th
6 |! t3 J1 [6 L# M- P8 U5 r: H; m+ ]degree ~;此外,分子还包括constant型
6 W3 A5 Q: L! h2 I8 a2 jSmoothing Spline:平滑逼近(翻译的不大恰当,不好意思)
1 Q; t+ n& W8 c" n& u3 t" ^Sum of Sin Functions:正弦曲线逼近,有8种类型,基础型是 a1*sin(b1*x +c1)0 v' O7 l, l& }0 ^" V2 U
Weibull:只有一种,a*b*x^(b-1)*exp(-a*x^b)
* O4 L! Z' K9 o0 y; n选择好所需的拟合曲线类型及其子类型,并进行相关设置:
! t/ Q6 E4 v. A  }6 r- Y( i* [——如果是非自定义的类型,根据实际需要点击“Fit options”按钮,设置拟合算法、修改, q2 C2 F" q  n# t
待估计参数的上下限等参数;
8 E  d* b: C4 c6 U3 E) d3 v4 T——如果选CustomEquations,点击“New”按钮,弹出自定义函数等式窗口,有“Linear
+ J. t1 z8 I) E$ I* |! fEquations线性等式”和“General Equations构造等式”两种标签。
- M% w; o7 Z$ w4 h2 s( @在本例中选Custom Equations,点击“New”按钮,选择“GeneralEquations”标签,输入函
! t" m. M: @8 d/ R0 s3 J数类型y=a*x*x + b*x,设置参数a、b的上下限,然后点击OK。5 r5 Q- k1 P" G* w5 F2 t1 U
(5)类型设置完成后,点击“Apply”按钮,就可以在Results框中得到拟合结果,如下例:& d- J3 j) v/ z  n* e1 q
general model:
0 H. S( S. e! f& vf(x) = a*x*x+b*x
+ S/ v- w* W6 U1 t5 lCoefficients (with 95% confidence bounds):
4 z8 W7 c3 P- W5 ga = 0.009194 (0.009019, 0.00937)! X. n3 Y& m' G7 `$ P) x/ o" I' m
b = 1.78e-011 (fixed at bound)% v5 G: s5 N& L! ^2 w0 E
Goodness of fit:
4 X+ Q6 l+ \: @) j. e1 ]. FSSE: 6.146
# j4 [3 F' o9 J0 B  x  ER-square: 0.997$ J! A$ ?& N- G- k, i% Y
Adjusted R-square: 0.9975 Z  i; H2 K+ o) j: ]" T
RMSE: 0.82634 v8 P* ^$ t' w8 Y6 g! |3 o, m
同时,也会在工具箱窗口中显示拟合曲线。" @* D. n4 B% w  ]5 u# d
这样,就完成一次曲线拟合啦,十分方便快捷。当然,如果你觉得拟合效果不好,还可以在“
: W, `2 T& A% M7 zFitting”窗口点击“New fit”按钮,按照步骤(4)~(5)进行一次新的拟合。3 x" H" I+ Z; w
不过,需要注意的是,cftool 工具箱只能进行单个变量的曲线拟合,即待拟合的公式中,变
* O$ ]1 L1 n7 F% Z9 @- l+ \" }& ?# s( M量只能有一个。对于混合型的曲线,例如 y = a*x + b/x ,工具箱的拟合效果并不好。下一" l3 t* G/ n1 W: k6 S9 Y5 v# c% O
篇文章我介绍帮同学做的一个非线性函数的曲线拟合。
& u6 z3 \) N1 R2 g) H# H5 d - N; w8 V* k8 f4 K, l
上边对cftool工具箱做了很详尽的说明,但并没有对各种曲线拟合的性能做点评,在单变量曲线拟合中,如何选取一种最优化的拟合方式是非常重要的,我们在采用CFTOOL拟合后,会有一些性能说明,如:
8 H( ~8 s# G; qGoodness of fit:0 o# b7 z5 v0 P9 S
SSE: 6.146
4 e6 E; v/ n; i, y6 X: g' p; MR-square: 0.997; M2 Q% j, i3 W, W8 t
Adjusted R-square: 0.997
: l- \8 e0 D8 I( IRMSE: 0.8263
+ G, a" V( |1 S4 \8 e! C/ _2 j! J; x
: D1 X5 n3 n1 D) N2 c9 `4 Y/ X官方的解释:
! |7 W2 o/ t' n$ R9 L6 K( mResults -- 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:
6 G/ d3 q' O+ B) {  B & r. e0 P( N" m% g; e. G' [' ]8 b" Y
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.; ], a$ u! {  l( y- d2 |
; b/ K; Q" ~6 ?% ?
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.
, l( p/ Z% g+ a2 S) Q1 [' c5 p 8 o% u5 I3 G/ B5 y1 C
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.! H  c9 n3 H# W) A
, e2 n& b+ B* U5 _& P
RMSE -- The root mean squared error. A value closer to 0 indicatesa better fit.0 j% L. t  T1 o- e' M/ X3 D- t

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-22 16:40 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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