2023-01-05 灰色系統(tǒng)理論及其應(yīng)用
1. 生成數(shù)
在研究社會(huì)系統(tǒng)、 經(jīng)濟(jì)系統(tǒng)等抽象系統(tǒng)時(shí)糟秘, 往往要遇到隨機(jī)干擾(即“噪聲”)灾炭。
灰色系統(tǒng)理論把一切隨機(jī)量都看作灰色數(shù)蝴韭。
灰色數(shù)
——在指定范圍內(nèi)變化的所有白色數(shù)的全體。
- 處理:利用數(shù)據(jù)處理尋找數(shù)據(jù)間的規(guī)律
- 數(shù)的生成:數(shù)列數(shù)據(jù)處理后產(chǎn)生新數(shù)列橱赠,以此挖掘和尋找數(shù)的規(guī)律性方法
- 方法:累加生成器联、累減生成、加權(quán)累加
累加生成
把數(shù)列 x 各時(shí)刻數(shù)據(jù)依次累加的過程叫做累加過程(AGO)遍烦,累加所得的新數(shù)列俭嘁,叫做累加生成數(shù)列
。
x0 = (x(0)(1), x(0)(2),...,x(0)(n)) 服猪,累加生成數(shù)列記為 x(1) = (x(1) (1),..., x(1)(n)) 供填,且 x(0)與 x(1)滿足:
一般地,經(jīng)濟(jì)數(shù)列等實(shí)際問題的數(shù)列皆是非負(fù)數(shù)列蔓姚,累加生成可使非負(fù)的擺動(dòng)與非動(dòng)的數(shù)列或任意無規(guī)律性的數(shù)列轉(zhuǎn)化為非減的數(shù)列
捕虽。
均值生成
稱 x(0)(k ?1) 與 x(0)(k) 為數(shù)列 x(0) 的一對(duì)(緊)鄰值, x(0)(k ?1) 稱為前值坡脐, x(0)(k) 稱為后值泄私。
z(0)(k) = α x(0)(k) + (1?α)x(0)(k ?1),α ∈[0,1]
為由數(shù)列 x(0) 的鄰值在生成系數(shù)(權(quán)) α 下的鄰值生成數(shù)(或生成值)备闲。
2. 灰色模型GM
Grey Model
: 定義灰導(dǎo)數(shù)與灰微分方程晌端,進(jìn)而用離散數(shù)據(jù)列建立微分方程形式的動(dòng)態(tài)模型(近似、非唯一)
離散隨機(jī)數(shù)→生成→生成數(shù)(較有規(guī)律)→建立微分方程
- 新生成的序列恬砂,看起來像一個(gè)指數(shù)序列
- 可用一個(gè)指數(shù)曲線乃至一條直線的表達(dá)式來逼近
- 構(gòu)造一階常微分方程來求解擬合曲線的函數(shù)表達(dá)式
對(duì)于x(0)的AGO生成數(shù)列x(1)咧纠,定義灰導(dǎo)數(shù)為:dx(1)(k) = x(0)(k) = x(1)(k) ? x(1)(k ?1),
令 z(1)為數(shù)列 x(1) 的緊鄰均值數(shù)列泻骤,即z(1)(k) = 0.5x(1)(k) + 0.5x(1)(k ?1)漆羔,k = 2,3,...,n
GM(1,1)的灰微分方程模型為:
dx(1)(k) + az(1)(k) = b → x(0)(k) + az(1)(k) = b
x(0)(k) 稱為灰導(dǎo)數(shù), a 稱為發(fā)展系數(shù)狱掂, z(1)(k) 稱為白化背景值演痒, b 稱為灰作用量。
??????
預(yù)測(cè)預(yù)報(bào)
由模型 GM(1,1)所得到的指定時(shí)區(qū)內(nèi)的預(yù)測(cè)值趋惨,根據(jù)實(shí)際問題的需要鸟顺,給出相應(yīng)的
預(yù)測(cè)預(yù)報(bào)。
** 災(zāi)變預(yù)測(cè)**
給定原始數(shù)據(jù)列 x(0) 器虾。如果指定某個(gè)定值ζ 讯嫂,并認(rèn)為 x(0)中那些大于ζ 的點(diǎn)為具有異常值的點(diǎn)蹦锋,然后將這些數(shù)據(jù)挑出來另組一數(shù)列,則稱這一數(shù)列為上限災(zāi)變數(shù)列欧芽。例如莉掂,給定數(shù)列 x (0) = (3,0.7,8,5) ,若取ζ = 1渐裸,則其上限災(zāi)變數(shù)列為xζ0 = (3,8,5)
規(guī)定ζ = 320 巫湘,并認(rèn)為 x (0) (i) ≤ ζ 為旱災(zāi)。預(yù)測(cè)下一次旱災(zāi)發(fā)生的時(shí)間昏鹃。
寫出初始數(shù)列 x(0)= (390.6,412,320,559.2, 380.8,542.4,553,310,561,300,632,
540,406.2,313.8,576,587.6,318.5)
下限災(zāi)變數(shù)列為xζ0 = (320,310,300,313.8,318.5),對(duì)應(yīng)時(shí)刻t = (3,8,10,14,17)
將數(shù)列 t 做 1 次累加尚氛,得t(1) = (3,11,21,35,52)
預(yù)測(cè)到第 6 個(gè)及第 7 個(gè)數(shù)據(jù)為t(0)(6) = 22.034 , t(0)(7) = 28.3946
clc,clear
a=[390.6,412,320,559.2, 380.8,542.4,553,310,561,...
300,632,540,406.2,313.8,576,587.6,318.5]';
t0=find(a<=320);n=length(t0);
t1=cumsum(t0); %累加運(yùn)算
B=[-0.5*(t1(1:end-1)+t1(2:end)),ones(n-1,1)];Y=t0(2:end);
r=B\Y
y=dsolve('Dy+a*y=b','y(0)=y0');
y=subs(y,{'a','b','y0'},{r(1),r(2),t1(1)});
yuce1=subs(y,'t',[0:n+1])
%為提高預(yù)測(cè)精度洞渤,先計(jì)算預(yù)測(cè)值阅嘶,再顯示微分方程的解
y=vpa(y,6) %其中的 6 表示顯示 6 位數(shù)字
yuce=diff(yuce1); %作差分運(yùn)算,進(jìn)行數(shù)據(jù)還原
yuce=[t0(1),yuce]
yuce_new=yuce(n+1:end) %求得的兩個(gè)預(yù)測(cè)值
模型是否靠譜载迄,還需要進(jìn)行模型檢測(cè)——?dú)埐顧z驗(yàn)