数学建模社区-数学中国

标题: 灰色系统理论及其应用 (五) :灰色预测 [打印本页]

作者: 浅夏110    时间: 2020-5-27 15:01
标题: 灰色系统理论及其应用 (五) :灰色预测
灰色预测是指利用 GM 模型对系统行为特征的发展变化规律进行估计预测,同时 也可以对行为特征的异常情况发生的时刻进行估计计算,以及对在特定时区内发生事件 的未来时间分布情况做出研究等等。这些工作实质上是将“随机过程”当作“灰色过程”, “随机变量”当作“灰变量”,并主要以灰色系统理论中的 GM(1,1)模型来进行处理。 灰色预测在工业、农业、商业等经济领域,以及环境、社会和军事等领域中都有广 泛的应用。特别是依据目前已有的数据对未来的发展趋势做出预测分析。! q8 p+ X8 s9 @1 X
7 U. T# W8 _) W* ?3 V8 r
1 灰色预测的方法5 O; {9 {0 K+ C- Z3 n
0 _. }# o! A) f" Y3 D
! s. g! ~0 |- r( J% t* ]6 M
! B, v: ^* A+ X9 u
- t) q4 H% d3 A% Z

( m2 w8 x+ l, j3 v2 灰色预测的步骤! g& \% Y  w% O9 T% `! c+ L( ^
1.数据的检验与处理
# r3 H* H- X+ b) a
4 b) B' I  g- ^/ H
# Z- d8 e! C4 i- n; z5 T# ?9 I( Y' @9 _: \
2.建立模型
; m6 y7 K6 {! G* K按 第1 节中的方法建立模型 GM(1,1),则可以得到预测值
- Y5 E! T, y) c+ s
9 {& [( T" V2 s3 r1 d% m. N! U' \! Y0 ^2 o: [" P% G

+ o* l0 q+ q! e( i1 K3 e8 _3.检验预测值4 l2 e* l% q" g% d
! V$ L$ N6 F0 ?# Y7 P  M
. b1 t. q- z9 t- k% R% e/ t
; \/ U6 y. ~+ S& U+ `' [6 b2 p5 P
8 m3 M  E2 m+ a# P' x7 T1 [
4.预测预报, k' g7 h  Y4 P2 t9 U
由模型 GM(1,1)所得到的指定时区内的预测值,实际问题的需要,给出相应的预测 、预报。* w2 x0 Q2 X9 r5 Q, A+ v, v3 j
& |+ A5 k1 K; Q$ c' M3 G( F( u
3 灾变预测& e' c. N: t1 n* T( Y3 s# h  t
上限灾变数列
1 T  x' U; O) @+ o* R3 i" r  D+ h! C9 Y

/ x: C, c7 u* _! F% k; L# m2 h/ m1 Q2 v
' K, `& ^; q2 i3 L同理,可定义下限灾变数列这个概念。注意,灾变预测不是预测数据本身的大小, 而是预测异常值出现的时间。我们考虑下面这个问题。: i. U4 W* R  G7 g& t# U/ i
& |" ]- |+ }. T' A; E4 i
例 3 某地区年平均降雨量数据如表 53 ]6 n0 X" M9 c- H) o' Y
( j( r3 f1 p0 a& {) t% {  ?! d

2 m) y4 g4 t8 U; O- g, r& G0 v7 z9 @: F& x  m% T

3 V' p1 I; k+ |  l' T3 P; A9 _5 j" V9 k5 F6 n3 ]' I, s9 l: k
由于 22.034 与 17 相差 5.034,这表明下一次旱灾将发生在五年以后。
2 {- \4 T+ c+ B- Q% B8 M( L+ Z9 _6 U9 K/ \0 Y# }0 N7 ]
计算的 MATLAB 程序如下:* s* m, H/ }- m3 o3 D2 w, e
# W% Z3 y6 A! k5 v( V* Z0 `* D
clc,clear
; m( {0 h1 B" w1 Oa=[390.6,412,320,559.2,
1 n& m0 x# {" M: j4 t9 ]8 J380.8,542.4,553,310,561,300,632,540,406.2,313.8,576,587.6,318.5]';
# `- F' M4 V  A, b# G  A' W: Kt0=find(a<=320);
+ j: K% B  E  i; V5 A( Rt1=cumsum(t0);n=length(t1);3 q5 j# I  @4 o% |8 S4 A! A
B=[-0.5*(t1(1:end-1)+t1(2:end)),ones(n-1,1)];Y=t0(2:end);) Y2 p2 W1 j; _4 H& V
r=B\Y) C, j. A" H# Z! f9 E: c/ q9 F
y=dsolve('Dy+a*y=b','y(0)=y0');
' R5 I. C( j3 \8 a# py=subs(y,{'a','b','y0'},{r(1),r(2),t1(1)});# h) w9 g+ ]& @5 t# p
yuce1=subs(y,'t',[0:n+1])7 q% t8 T2 H8 e
digits(6),y=vpa(y) %为提高预测精度,先计算预测值,再显示微分方程的解
  [# F$ F  D# Z5 p  Jyuce= diff(double(yuce1))
  H' E3 |9 E1 `: H" d& r0 Q% yuce=diff(yuce1);   % yuce= diff(double(yuce1))% H+ L) r4 H0 L
yuce=[t0(1),yuce] # b# t  L# I1 O% l/ G. t
, b# }6 E3 R9 }* z; C  G
4 灰色预测计算实例. _- f& a* R3 `1 N; q8 c: ~6 |! w
例 4 北方某城市 1986~1992 年道路交通噪声平均声级数据见表 6
+ Q, b8 y1 g7 o) p3 Y, i; A) Q
" N2 t. @  W! W6 a2 v+ k7 M$ S                                             表 6 市近年来交通噪声数据[dB(A)]% L; {; U! d4 v

& y2 X9 E+ |4 B. o, u: a- P2 x8 I- k( x

6 b. l* Z+ A- e; }" k% b% k9 |
$ F0 m' l! b! M; g2 q+ Z; l第一步: 级比检验9 A; E: Q1 n! T( h2 I! F0 e. ?

! L0 d( v9 a6 S: u. _建立交通噪声平均声级数据时间序列如下:: k6 L' O+ ]. c6 G. H
$ m2 }- @* M. i3 I+ A: B

; g! e# g) P4 o! D' N* v4 a8 F6 i0 h! x0 {& @
第二步: GM(1,1)建模1 A1 d9 W1 l8 Q: L7 ^
- _# J; t' f/ @$ `
4 }7 w$ m  f1 J- L6 @
% [* o3 B  f; X6 [

; i( v0 W: a9 H4 i* ?6 e% d; `" @3 _8 F+ f

7 T, x' d& H  w
/ J3 n1 o0 k) E" f' }1 c+ }, x  Q+ r& v6 q8 {2 Y5 U8 V' I

& ?( J) {" G2 F9 @0 [1 N5 e第三步: 模型检验& Y6 [% N8 F! _( a5 p9 K
9 l; `; R$ t( F% R, @
模型的各种检验指标值的计算结果见表 7./ {1 {% w2 v& D2 B8 z! X
9 Z2 M" n/ t% m5 h8 b7 N1 W
+ P( p8 V- I2 _

: v5 l5 R9 j, Y' Z+ J
6 [( o; w7 j" U* \5 B# J& E7 m$ i$ f8 g! }. u' c9 L: T
经验证,该模型的精度较高,可进行预测和预报。: R& T2 Y# {. i
1 [: P( K1 F: g) ~2 v
计算的 MATLAB 程序如下:
4 E1 u8 ]& P+ x; R. i9 ?) N  i' A' c" t3 f7 ?% Z
clc,clear4 H& A( |+ ?$ N/ s
x0=[71.1 72.4 72.4 72.1 71.4 72.0 71.6];) m7 M0 u& y& h2 u7 h; M( j
n=length(x0);
' J3 P/ Q( D1 n5 ilamda=x0(1:n-1)./x0(2:n)
! |7 J) n& k, P  Xrange=minmax(lamda)
$ b9 w  ~2 Q2 Z# Q$ j# H0 {1 Qx1=cumsum(x0)
( j  k6 O5 j: mfor i=2:n
% V6 D: H+ t) f  a' Y    z(i)=0.5*(x1(i)+x1(i-1));. B8 D% Z6 N) C1 ]+ E. k
end
2 E' \+ ?/ I( W1 c% lB=[-z(2:n)',ones(n-1,1)];
  ^1 N# t( S$ t2 y4 Y/ TY=x0(2:n)';0 q: }, m: T" D' p& t3 u
u=B\Y. }. Z$ t% t1 A5 x7 N& k! d1 r1 {
x=dsolve('Dx+a*x=b','x(0)=x0');, Z. k7 \; F2 m& h
x=subs(x,{'a','b','x0'},{u(1),u(2),x1(1)});, }) q/ t5 J% ~# k! @  `
yuce1=subs(x,'t',[0:n-1]);
( n4 r$ R+ X  Rdigits(6),y=vpa(x) %为提高预测精度,先计算预测值,再显示微分方程的解5 o: w# Q2 f) V+ U5 Y7 F5 s3 |
yuce=[x0(1),diff(yuce1)]8 F" H' f  `, ?) H" p( a( Y
epsilon=x0-yuce %计算残差
5 S6 Q4 ~, b, K% w' N8 _+ g/ adelta=abs(epsilon./x0) %计算相对误差
1 z0 y6 C2 ]3 T% f$ }rho=1-(1-0.5*u(1))/(1+0.5*u(1))*lamda %计算级比偏差值' C  b4 K3 i6 j* R9 K8 S  ^

7 v* o' V! k& V  ?$ P8 ~0 t- T5 m7 l/ `1 E, V2 S

$ b" Q, U# a1 f/ ^; J. k————————————————
) [& N; p6 b  I2 {9 r4 t7 O版权声明:本文为CSDN博主「wamg潇潇」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
' q: i9 n, H/ ?) p- X原文链接:https://blog.csdn.net/qq_29831163/article/details/89714074! x1 |6 s4 ]8 Y
9 C4 p6 A0 F' V( Q0 N
; Z' k, ~6 h5 c* k4 v" V5 [: c





欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5