数学建模社区-数学中国
标题:
灰色系统理论及其应用 (五) :灰色预测
[打印本页]
作者:
浅夏110
时间:
2020-5-27 15:01
标题:
灰色系统理论及其应用 (五) :灰色预测
灰色预测是指利用 GM 模型对系统行为特征的发展变化规律进行估计预测,同时 也可以对行为特征的异常情况发生的时刻进行估计计算,以及对在特定时区内发生事件 的未来时间分布情况做出研究等等。这些工作实质上是将“随机过程”当作“灰色过程”, “随机变量”当作“灰变量”,并主要以灰色系统理论中的 GM(1,1)模型来进行处理。 灰色预测在工业、农业、商业等经济领域,以及环境、社会和军事等领域中都有广 泛的应用。特别是依据目前已有的数据对未来的发展趋势做出预测分析。
% I+ s: c. @: U, }8 p. z
% Q5 ?7 q4 [: r, u+ {
1 灰色预测的方法
/ N2 Y/ Y |/ W. M- Y- ]& w. g+ v
/ x" v. T" d( S" t" V
! o) T9 Q' ~5 r: p7 N
* E; l, C! Z& H2 x% O, Y$ [
$ N# ?9 c' C4 E8 H1 B
d9 M& b5 I- _% l7 v* n% E' _! J
2 灰色预测的步骤
5 k! {) o5 Y" t4 M, M/ m
1.数据的检验与处理
! N/ ?7 c) T1 J* h
" }+ I% a& j" k4 p
% _& ?5 Q6 ]1 {0 i5 C* t! h* d J
( q1 F% x; p$ m! A. L, x. O7 G) D
2.建立模型
. L0 `( _% \, s1 J
按 第1 节中的方法建立模型 GM(1,1),则可以得到预测值
2 L1 f5 s7 N. u2 y" V
. ~: f u6 D; M' w/ T w
1 }$ f) g, t3 ]+ z- I1 g E
% E6 W0 `7 U1 h9 o$ P$ ~. C
3.检验预测值
5 O$ |! P6 n$ Q7 H. A4 {
1 C! U5 { Y B7 A" I# R' L
% v; m* I. |, q0 |- P" J
2 x" D' R9 n$ ]' F. A
4 U* u+ w% Q& w. X# R0 d
4.预测预报
+ _! N1 S& a Z" x
由模型 GM(1,1)所得到的指定时区内的预测值,实际问题的需要,给出相应的预测 、预报。
2 x4 w$ R& c Q5 `* {
6 Q! i7 X/ M( P$ H
3 灾变预测
2 O7 Y" d5 t! B5 [. E$ T
上限灾变数列
- f% q, U) L$ q* C& |
; y! ?/ O& W4 u0 k/ [' K; L
6 E- R' Z# Y) x7 q6 d! s
( n# M) O2 J, K% R$ ]( Z
同理,可定义下限灾变数列这个概念。注意,灾变预测不是预测数据本身的大小, 而是预测异常值出现的时间。我们考虑下面这个问题。
& \3 I* u! D8 P1 L! L/ X
: g3 @: X/ b/ S' n o/ l# F
例 3 某地区年平均降雨量数据如表 5
- f- Z C6 O8 x" c( @) C. s
6 g, n; {- P, y# ?5 \, [
8 t6 s( G x" b i
; {8 U$ k$ y7 t6 G5 B3 f
; W, Z$ M) s7 W) E: i {
& C( w+ i, r; v3 z: D7 o8 V6 O
由于 22.034 与 17 相差 5.034,这表明下一次旱灾将发生在五年以后。
2 \/ O! I' V8 [- Y1 k3 ?
3 ~# l F; F2 z0 l, y9 g8 C" _
计算的 MATLAB 程序如下:
. I; n1 Q+ j S
5 `% K" W+ b( ?4 L- T% O- H- k3 b
clc,clear
% G0 \+ k: v6 k$ @2 X4 U* O* Z
a=[390.6,412,320,559.2,
3 F7 @: u: l$ p( ^/ f9 d4 u+ p* Q0 a
380.8,542.4,553,310,561,300,632,540,406.2,313.8,576,587.6,318.5]';
& j- N! D6 k' D1 T+ P
t0=find(a<=320);
# {2 F# j1 g6 B2 j* h
t1=cumsum(t0);n=length(t1);
7 y9 x) \% {5 |* K: X6 `
B=[-0.5*(t1(1:end-1)+t1(2:end)),ones(n-1,1)];Y=t0(2:end);
& u6 s3 s: i0 I8 }; Q* o/ h
r=B\Y
: N8 I$ V5 a; v
y=dsolve('Dy+a*y=b','y(0)=y0');
, H5 |! {- x0 @9 d3 [$ I
y=subs(y,{'a','b','y0'},{r(1),r(2),t1(1)});
7 b4 Q. v; R+ b
yuce1=subs(y,'t',[0:n+1])
4 l* V" ?! H A5 T6 Z* |) I" e4 q
digits(6),y=vpa(y) %为提高预测精度,先计算预测值,再显示微分方程的解
/ f+ q2 ]0 I6 U, k& h
yuce= diff(double(yuce1))
! Q4 Y G' j; Q: o+ R4 p- n& \
% yuce=diff(yuce1); % yuce= diff(double(yuce1))
: ]* a/ G H& U0 }5 t
yuce=[t0(1),yuce]
7 w6 K) a: L7 e
2 P( W& x1 p2 \, x x# f
4 灰色预测计算实例
, S. H7 u* `) V" |2 P
例 4 北方某城市 1986~1992 年道路交通噪声平均声级数据见表 6
1 [% t5 _% `+ Y* h' v! d
5 T/ `& `( i1 T+ t! Z$ u8 W9 U
表 6 市近年来交通噪声数据[dB(A)]
, D9 v; Z$ |2 G# j6 D* X
% o/ a1 T% p; _5 _) w8 Q
/ Z/ E+ n1 G m1 J
. U8 e; u I: Z" p* n
" T( }" P7 P ~/ \
第一步: 级比检验
1 }, ~& u% \3 }6 f8 [
. z- Y! R4 I1 G: O( s# Y2 Q
建立交通噪声平均声级数据时间序列如下:
1 c4 _9 b8 o" D) p
5 ~$ J" a' J. C
& z9 V8 Y ^8 ^( W$ ?9 f/ f
5 t! r* n# Y0 i, r
第二步: GM(1,1)建模
2 S1 ~' g9 |! R# c) t
; P6 K; ?# z' e3 a2 d
/ Z8 Y7 R- D! r: l5 s
9 s9 ?; F5 N7 Q5 |( U( z4 L, ?2 Q: m3 @
5 v$ s. d; o. X% J' ]* a, H& P
4 o) S8 x q" k4 n) @
7 r9 b+ t# f- D" a! m
7 _9 U1 f4 j, z) m
' Y# m5 @( c8 N. ~- w0 x9 M, z
" {( l! e' {( m* d3 Z/ y P
第三步: 模型检验
: `8 \6 L% P% |( T: }
' k+ m3 P; J% \- u7 L
模型的各种检验指标值的计算结果见表 7.
, C& R5 r# L+ W9 ]/ r
* [/ X" ?8 X! \" q+ R; R: {
1 a* B7 z. a" \+ K, A8 v6 Y9 m
: x; P( w3 @6 B% A9 A* ~# t
* D' U" Y6 E" [. C' C' r' {! b0 ]
4 }6 {1 X$ m# X2 U0 F, L
经验证,该模型的精度较高,可进行预测和预报。
1 C- z1 M, w$ F, ]3 }/ ?
$ J. c, E/ r* c4 ]* w4 ?! m
计算的 MATLAB 程序如下:
$ u8 B) ]; k$ p
- A% r; U# s) T/ h* i' H1 ?6 }
clc,clear
, J, Q: E0 ^0 t( A4 d5 P$ l2 x
x0=[71.1 72.4 72.4 72.1 71.4 72.0 71.6];
/ d# W9 |- z c/ M) ?
n=length(x0);
3 X) c9 z5 j D: Q) b- O+ Y! x* k
lamda=x0(1:n-1)./x0(2:n)
; J% n, c" W' L! q8 ^
range=minmax(lamda)
0 b( N5 x9 K* E" Z% z
x1=cumsum(x0)
7 v' \9 L" Q& m# t c1 W* H
for i=2:n
3 o% J- Z1 g! d- P! q2 s6 ~2 u
z(i)=0.5*(x1(i)+x1(i-1));
6 |$ T& z5 g( O# P+ K- s) u! G9 \/ k
end
( [0 B: {+ J4 k
B=[-z(2:n)',ones(n-1,1)];
T2 b4 J8 b5 J8 \
Y=x0(2:n)';
5 F$ h9 K2 }) _8 ]
u=B\Y
! S4 x, c& ?6 c7 F
x=dsolve('Dx+a*x=b','x(0)=x0');
$ f! G, ]! }8 p5 c5 h+ b' w, n
x=subs(x,{'a','b','x0'},{u(1),u(2),x1(1)});
% u9 q) w) a- |9 b9 ^; K1 z
yuce1=subs(x,'t',[0:n-1]);
: Y6 D2 p z/ ]3 L: p( G$ s
digits(6),y=vpa(x) %为提高预测精度,先计算预测值,再显示微分方程的解
5 j9 o* p7 [3 k+ c+ m
yuce=[x0(1),diff(yuce1)]
7 G; |) S7 r/ P+ O
epsilon=x0-yuce %计算残差
6 F' F6 A) h* N( @ v
delta=abs(epsilon./x0) %计算相对误差
' L. B7 }' V O, w, C
rho=1-(1-0.5*u(1))/(1+0.5*u(1))*lamda %计算级比偏差值
% o: f3 q$ s" |/ ]
6 r1 ]9 G; W' v. v; B# n
, D% B- b4 \8 n4 A s( I/ {5 {
4 Y! _) }' s. W {6 C
————————————————
# ^: o$ P& r9 @! q2 f- Z
版权声明:本文为CSDN博主「wamg潇潇」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
3 I0 c( R: ^) b# m6 D, t1 Y
原文链接:https://blog.csdn.net/qq_29831163/article/details/89714074
. ]6 g4 e) q: m2 Y9 ]
$ ^& b6 q6 _3 o. p$ H; R
3 N1 \- o" ~3 n. f+ x
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5