数学建模社区-数学中国
标题:
灰色系统理论及其应用 (五) :灰色预测
[打印本页]
作者:
浅夏110
时间:
2020-5-27 15:01
标题:
灰色系统理论及其应用 (五) :灰色预测
灰色预测是指利用 GM 模型对系统行为特征的发展变化规律进行估计预测,同时 也可以对行为特征的异常情况发生的时刻进行估计计算,以及对在特定时区内发生事件 的未来时间分布情况做出研究等等。这些工作实质上是将“随机过程”当作“灰色过程”, “随机变量”当作“灰变量”,并主要以灰色系统理论中的 GM(1,1)模型来进行处理。 灰色预测在工业、农业、商业等经济领域,以及环境、社会和军事等领域中都有广 泛的应用。特别是依据目前已有的数据对未来的发展趋势做出预测分析。
: ] M8 P) ^4 g2 w' Z1 w' g
" j" l# N. a. s
1 灰色预测的方法
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 @- [$ o
3 t! H3 }5 C9 S4 o& R. @
2 灰色预测的步骤
- C, ]2 n2 K& j; j% P3 S
1.数据的检验与处理
, 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! q
4.预测预报
) 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# P
clc,clear
4 |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& e
B=[-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 t
y=dsolve('Dy+a*y=b','y(0)=y0');
/ h% G. {: a q! @- t$ m1 Y# f
y=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 z
4 灰色预测计算实例
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& {. P
9 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 w
7 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 F
clc,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) \/ z
end
( 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 H
u=B\Y
+ e5 [4 {8 ~3 Z1 d% J% U
x=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