数学建模社区-数学中国

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

作者: 浅夏110    时间: 2020-5-27 15:01
标题: 灰色系统理论及其应用 (五) :灰色预测
灰色预测是指利用 GM 模型对系统行为特征的发展变化规律进行估计预测,同时 也可以对行为特征的异常情况发生的时刻进行估计计算,以及对在特定时区内发生事件 的未来时间分布情况做出研究等等。这些工作实质上是将“随机过程”当作“灰色过程”, “随机变量”当作“灰变量”,并主要以灰色系统理论中的 GM(1,1)模型来进行处理。 灰色预测在工业、农业、商业等经济领域,以及环境、社会和军事等领域中都有广 泛的应用。特别是依据目前已有的数据对未来的发展趋势做出预测分析。: ]  M8 P) ^4 g2 w' Z1 w' g

" j" l# N. a. s1 灰色预测的方法  i1 ]" C: _4 d9 Y7 J6 t

# j  a" |, |# a0 j
' y4 V. M. ^9 C' N) ]1 O) R$ X% r! P0 h8 Y& y" @

) C+ O0 H, Z! ]1 N8 @- [$ o3 t! H3 }5 C9 S4 o& R. @
2 灰色预测的步骤
- C, ]2 n2 K& j; j% P3 S1.数据的检验与处理, A- X4 y* h- j& x

$ P' |4 E5 _$ m( t) b; k9 z- Q
. `' Z: ^, H9 \+ n7 ~3 F+ z! A$ y( v3 B# Y: C( M4 X
2.建立模型
0 D4 s; D3 ?& R( b2 m/ g; C按 第1 节中的方法建立模型 GM(1,1),则可以得到预测值) z2 K/ ]' d. L. T" B6 \

5 R2 b$ z. B7 ]4 ^& ^! q3 s$ x) ], D' X$ p% F
( B8 h; y0 z4 v0 {- W
3.检验预测值; p2 O% e: Z/ w& G8 Z
* C! O+ I6 \% m
5 U8 X- o3 P# l$ p& |  s) v1 K
6 u1 S: [; v, [( S

" W+ k+ D- b6 G! q4.预测预报) e/ p' B9 g$ b8 D. C& P
由模型 GM(1,1)所得到的指定时区内的预测值,实际问题的需要,给出相应的预测 、预报。3 z6 v2 P3 i0 d* [
& b3 d, X2 B8 b
3 灾变预测) Z8 Y( h0 g9 q1 n
上限灾变数列
4 u6 j" s, ^- b$ Z3 ^# M, T$ F  |' p

5 q6 J6 K6 s) V) z5 l% p- V* O/ O& I
同理,可定义下限灾变数列这个概念。注意,灾变预测不是预测数据本身的大小, 而是预测异常值出现的时间。我们考虑下面这个问题。: u+ L/ S3 g* ~$ R% b% E7 P& q
; P" z+ s& k- Y# \4 A2 Y( O+ w
例 3 某地区年平均降雨量数据如表 5, R$ L; U% p- U4 ^" q. R

2 f/ @% x8 P: y+ y9 W
% t1 ^( r  r+ w5 b. @) A: h1 z8 J: N! i$ `$ N; u' [5 S" q9 [9 A

0 @% @* ^, n( j3 z) e) q$ t6 n5 Q/ E5 c
由于 22.034 与 17 相差 5.034,这表明下一次旱灾将发生在五年以后。
1 h4 m! ^3 K  g, g8 U& H5 x
9 Q4 A& @  l5 S" V2 o  {计算的 MATLAB 程序如下:
0 i& N$ J% _# X7 ]" K( O
; @; B; s: w; p  a% B# Pclc,clear4 |7 r/ c; @, s4 f$ e
a=[390.6,412,320,559.2,
0 \" t/ p9 M- J7 X. ]' M7 ^& _380.8,542.4,553,310,561,300,632,540,406.2,313.8,576,587.6,318.5]';# }! ]& |& g- V/ F) Z/ M
t0=find(a<=320);8 T6 N$ S& a' x& z4 E' T
t1=cumsum(t0);n=length(t1);
- K6 w: ]9 `- P& eB=[-0.5*(t1(1:end-1)+t1(2:end)),ones(n-1,1)];Y=t0(2:end);+ [* z. R: b2 N- a% L/ r: X* w
r=B\Y
$ G" s% z5 R7 T2 ty=dsolve('Dy+a*y=b','y(0)=y0');
/ h% G. {: a  q! @- t$ m1 Y# fy=subs(y,{'a','b','y0'},{r(1),r(2),t1(1)});% m5 N. r. O, n; J4 b2 A: s; C# G
yuce1=subs(y,'t',[0:n+1])) S  X8 a- B# g. k0 f% E/ R7 V
digits(6),y=vpa(y) %为提高预测精度,先计算预测值,再显示微分方程的解) T) _7 M7 e* m! V
yuce= diff(double(yuce1))9 b5 o2 D' O# f& j% y1 E& l; N
% yuce=diff(yuce1);   % yuce= diff(double(yuce1))
) y, q# M' p/ I; P6 z6 [yuce=[t0(1),yuce] * T$ i2 v5 k0 P' C

6 |- {- k0 N, j8 z4 灰色预测计算实例8 w5 K8 f5 G7 Z+ }6 k1 t2 O2 }
例 4 北方某城市 1986~1992 年道路交通噪声平均声级数据见表 6/ r' \/ y/ X- p6 j
, V+ W) Y" K* y$ o+ s9 M2 d
                                             表 6 市近年来交通噪声数据[dB(A)]
5 q: h& K, O( M5 k' f1 M
4 d0 x& G  P( M4 M
2 U) w6 W* U& {. P9 S' X8 r+ P+ w5 b0 n7 [" P4 W

! w# @- b* H! y2 O* G第一步: 级比检验) L+ g0 h4 g" ^4 `5 f0 @+ i

* P" A# N- J2 O5 B建立交通噪声平均声级数据时间序列如下:
3 v; w( ?, b* F  w7 x* i, H4 [5 |8 @" h+ L4 h2 U% ^

8 \; ^- T' I& y! c3 r4 N3 l) y
& _, G" z, _4 w第二步: GM(1,1)建模
0 ?8 Z( B! c0 f) u& H: N: k7 d+ ?! v  L( X0 n6 T) I
& `9 U' q/ d' e+ n- ~

( ]0 U2 ^& v. w: h" l
! ?1 n7 f0 R: _/ @$ `! t) r
) g2 t1 P" O( z8 w* Y9 v1 m
, b6 d" y2 J% n1 ~1 R. ~$ H) z) S/ z! G# k' w6 W6 X
: x8 y) N% T& s) i9 b6 d: Q6 G

# d- j; Z3 [. }第三步: 模型检验" n% Q7 Y6 ~) n2 g

- R: o* l. y; s模型的各种检验指标值的计算结果见表 7.+ _4 d. c1 g( |/ ^

1 S# b: m+ s" S+ ]: `, E
* e; m3 X$ @0 L* c( V5 ~
5 r, w# S% I  g  ^$ T0 Q
) O1 S% r9 t! o* p% N* v: X9 d
0 B" r$ f- ]7 w0 o2 g- n# K+ |经验证,该模型的精度较高,可进行预测和预报。& ?2 ~0 z8 ^8 n5 v+ N3 [$ |- Z

" O. V5 G+ S: H8 u# r( o7 V) t/ i计算的 MATLAB 程序如下:
. j+ S$ G( X8 z; l& l2 g
) @* v7 ~8 L  Fclc,clear- F. Q6 `; ?* I
x0=[71.1 72.4 72.4 72.1 71.4 72.0 71.6];- W; ?- S- t( Z) {) ^
n=length(x0);5 A, ~0 {' _  T! c7 R  L$ O
lamda=x0(1:n-1)./x0(2:n)" i2 Z2 J  n+ b, \; L9 {
range=minmax(lamda)( p: i5 u! J) b+ D2 _! \
x1=cumsum(x0)2 B6 G, K* F4 U, C* ?! ^
for i=2:n$ j. j9 V6 P$ Z9 l! @. k
    z(i)=0.5*(x1(i)+x1(i-1));
$ p% L! W- r) \/ zend( G% n% d6 _/ q, S9 B. L2 p- e/ D
B=[-z(2:n)',ones(n-1,1)];6 o8 ^8 p: R- H. H
Y=x0(2:n)';
5 }% Q$ Y1 R/ M$ @/ c6 Hu=B\Y
+ e5 [4 {8 ~3 Z1 d% J% Ux=dsolve('Dx+a*x=b','x(0)=x0');1 O: o+ X0 t+ G0 Z  O: F5 W% P. m
x=subs(x,{'a','b','x0'},{u(1),u(2),x1(1)});1 [5 j: P6 L/ s& A% }
yuce1=subs(x,'t',[0:n-1]);% d: }0 H( u3 k) t$ I1 J/ J9 M* N& v
digits(6),y=vpa(x) %为提高预测精度,先计算预测值,再显示微分方程的解1 a* s) `% O" K& F" D! ]' f4 [2 o
yuce=[x0(1),diff(yuce1)]( d7 o2 K* o  M3 W8 T
epsilon=x0-yuce %计算残差* l) x! v! y8 t  W/ h
delta=abs(epsilon./x0) %计算相对误差, J  `! O& M! L4 M) W9 M
rho=1-(1-0.5*u(1))/(1+0.5*u(1))*lamda %计算级比偏差值/ n8 A! s$ S* @
" d( _5 m2 t1 ]1 M/ z9 o
; V9 l3 f! v+ a& X4 b
# H9 Q, B$ a" m% d3 U! v9 t0 R# ^
————————————————
* }: Z8 @' o4 N7 P. F( b版权声明:本文为CSDN博主「wamg潇潇」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
" C; M0 u$ h) E+ E- [+ ?6 r1 N: r5 q原文链接:https://blog.csdn.net/qq_29831163/article/details/89714074
4 M) x5 T. h9 F: q* T9 c
# x: a( \+ e0 O$ _7 @$ B0 K
5 {# {- U/ Y8 R% C( y& p# H1 K




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