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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
一、 单一变量的曲线逼近: V( H: f$ ^( I6 F( }& y8 a
Matlab有一个功能强大的曲线拟合工具箱 cftool ,使用方便,能实现多种类型的线性、非线- r' h8 G% e3 _0 q
性曲线拟合。下面结合我使用的 Matlab R2007b 来简单介绍如何使用这个工具箱。
6 m, {3 p" u* A2 E) N" J# ]假设我们要拟合的函数形式是 y=A*x*x + B*x, 且A>0,B>0 。
: B8 q8 x8 Q! u2 b, O1、在命令行输入数据:
" ~! M9 W# m* S, q
* ?( c: ]! Z/ ~2 m$ R+ Y" i/ A》x=[110.3323 148.7328 178.064 202.8258033 224.7105 244.5711 262.908280.0447+ O4 H! A: H1 s+ Y  r$ N# B
296.204 311.5475]& L( p0 r7 Q5 m8 B# o6 ^" W

9 b$ A8 K- Q: o. y* e; S1 D' u》y=[5 10 15 20 25 30 35 40 45 50]
) I. c+ x0 W  q" z; \
1 T6 c+ |8 P" E2、启动曲线拟合工具箱) t9 f7 @8 ?+ ?" \+ ^, s4 f8 D
》cftool8 L* @6 u/ ~) _6 H
* j" T; y6 b  I1 `
3、进入曲线拟合工具箱界面“Curve Fitting tool”  ^4 }3 d4 r  J3 j2 l
(1)点击“Data”按钮,弹出“Data”窗口;, P2 p- a: q# e, D( R/ K: x5 N3 C' a
(2)利用X data和Y data的下拉菜单读入数据x,y,可修改数据集名“Data setname”,然( m( R7 R! P' N! h+ h! i  q  j  S
后点击“Create data set”按钮,退出“Data”窗口,返回工具箱界面,这时会自动画出数
& n9 g3 K/ ~8 ~3 c9 u据集的曲线图;
7 W# A; C  x$ i# i% u  r(3)点击“Fitting”按钮,弹出“Fitting”窗口;; u( P' u1 F8 L! Q% H* F/ g1 }, q
(4)点击“New fit”按钮,可修改拟合项目名称“Fit name”,通过“Dataset”下拉菜单
- i+ [) }4 t# w6 \# c8 B: C选择数据集,然后通过下拉菜单“Type of fit”选择拟合曲线的类型,工具箱提供的拟合类/ \! x) A7 A# r' X) l
型有:
5 }* B- ]) s2 h! mCustom Equations:用户自定义的函数类型
3 X2 A& z# Q" k! a! S( ZExponential:指数逼近,有2种类型, a*exp(b*x) 、 a*exp(b*x) +c*exp(d*x)
1 h: e* A# I* y# G, |7 vFourier:傅立叶逼近,有7种类型,基础型是 a0 + a1*cos(x*w) +b1*sin(x*w)0 h# @1 i0 C* B6 n( x" w
Gaussian:高斯逼近,有8种类型,基础型是 a1*exp(-((x-b1)/c1)^2)
4 k. k( Y/ ^8 N5 m6 {2 O  T7 r2 uInterpolant:插值逼近,有4种类型,linear、nearest neighbor、cubicspline、shape-
1 z) b2 E0 D, ]$ O! Wpreserving: e+ c/ F2 i; v8 ?6 |3 r! D  x+ T
Polynomial:多形式逼近,有9种类型,linear ~、quadratic ~、cubic ~、4-9th degree~; p/ ?6 B8 F9 T
Power:幂逼近,有2种类型,a*x^b 、a*x^b + c- @* K9 i$ c. G; L
Rational:有理数逼近,分子、分母共有的类型是linear ~、quadratic ~、cubic~、4-5th, z5 p  z1 S( w/ g. i( Z( }
degree ~;此外,分子还包括constant型  O" ]* u2 o- l: b- t2 d
Smoothing Spline:平滑逼近(翻译的不大恰当,不好意思); p  y2 A: s7 z7 V1 U
Sum of Sin Functions:正弦曲线逼近,有8种类型,基础型是 a1*sin(b1*x +c1)
1 {2 C1 O7 s/ m# ]8 CWeibull:只有一种,a*b*x^(b-1)*exp(-a*x^b)
: G9 t: Z7 `5 k% x6 B选择好所需的拟合曲线类型及其子类型,并进行相关设置:
7 C0 L3 e: S: U7 ]) X% v+ O——如果是非自定义的类型,根据实际需要点击“Fit options”按钮,设置拟合算法、修改
7 {; f/ n9 B: m- I  b' m待估计参数的上下限等参数;% E) }1 `2 g, P. v
——如果选CustomEquations,点击“New”按钮,弹出自定义函数等式窗口,有“Linear  y! x( u/ I# W: `
Equations线性等式”和“General Equations构造等式”两种标签。% E0 y' _$ q! X4 A& N  `, g$ f' Q" X
在本例中选Custom Equations,点击“New”按钮,选择“GeneralEquations”标签,输入函3 H4 v* z5 n, R- L: N2 u/ ^8 W
数类型y=a*x*x + b*x,设置参数a、b的上下限,然后点击OK。
. _" Q% u. q; g" |2 t(5)类型设置完成后,点击“Apply”按钮,就可以在Results框中得到拟合结果,如下例:
4 y6 K3 l( k" ?- S! H8 j& zgeneral model:
- A6 T8 u2 s5 x& ?' ?f(x) = a*x*x+b*x/ K7 S2 @/ \9 c6 J8 Z
Coefficients (with 95% confidence bounds):
# U- S8 v5 j' J5 u" M/ A  B6 X3 @0 Ta = 0.009194 (0.009019, 0.00937)
! B$ l9 n8 G4 ?: E0 Fb = 1.78e-011 (fixed at bound)
3 r2 z- T2 Z$ F9 o1 \- A. Z- T6 C- }0 yGoodness of fit:
, f/ ]& N4 R8 m; f. PSSE: 6.1468 S# B# I& a: k+ H
R-square: 0.997
! j- `; p3 P2 x8 g( bAdjusted R-square: 0.997% y! f, D5 i! z. k
RMSE: 0.8263
+ g3 r& R1 u$ J& v同时,也会在工具箱窗口中显示拟合曲线。
( I, `4 U1 U7 [! `这样,就完成一次曲线拟合啦,十分方便快捷。当然,如果你觉得拟合效果不好,还可以在“
3 V3 {" M& A! z( KFitting”窗口点击“New fit”按钮,按照步骤(4)~(5)进行一次新的拟合。
: O% O& `! x7 y8 ~/ f- `4 J不过,需要注意的是,cftool 工具箱只能进行单个变量的曲线拟合,即待拟合的公式中,变
% ]% ~" d2 R8 }2 U/ z# f量只能有一个。对于混合型的曲线,例如 y = a*x + b/x ,工具箱的拟合效果并不好。下一
, x/ l& u0 p; {6 X) U" v篇文章我介绍帮同学做的一个非线性函数的曲线拟合。
- N0 U0 ^7 y8 Q8 H% l7 R0 G; I2 V 1 v9 v) |+ t: X- ^
上边对cftool工具箱做了很详尽的说明,但并没有对各种曲线拟合的性能做点评,在单变量曲线拟合中,如何选取一种最优化的拟合方式是非常重要的,我们在采用CFTOOL拟合后,会有一些性能说明,如:
5 E; `. b& x/ v4 \; F! K* aGoodness of fit:
1 V+ M4 L9 b6 oSSE: 6.146. X/ g5 l. M4 }& [% ?- P
R-square: 0.997
" p. W, v/ T) W7 w8 ^Adjusted R-square: 0.997" G0 n  ?* [3 V( Q3 S! e* G
RMSE: 0.8263
6 K, l" t% P' H. O' e: p - {6 J$ [: w6 h* _$ M. O
官方的解释:& u8 G$ V) T8 d' F
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:
+ j4 q( ^% `+ L& b' H' P2 V 1 P3 c0 N9 f  r
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.% X% `# s' m, v+ t

/ G2 ~* T# f: T" F/ @. N/ }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 m! C" S/ Y5 X

6 ?( L) V' k& p( Q. EAdjusted 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.# o6 q. @) J, _# K0 d% H5 ^

/ \3 P/ N! W, W! E  RRMSE -- The root mean squared error. A value closer to 0 indicatesa better fit.
# U* W$ ?. M1 s  O& m

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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