優化算法 | 灰色預測模型算法GM(1,1)流程分析

灰色預測模型(Gray Forecast Model)是通過少量的、不完全的信息,建立數學模型並做出預測的一種預測方法

灰色預測模型適用於小樣本,含有不確定性因素的系統

首先,假如給定一組數據

X1={x11,x12,x13…x1n},你需要預測x1(n+1)的值是多少

這裏可以使用灰度預測模型也就是GM(1,1)來進行預測

首先生成累加序列X2,

x21=x11,

x22=x11+x12

….

x2(n)=x11+x12+x13+…x1(n)

於是得到了一個新的序列X2

這裏還需要用到一個一次後減的公式,也就是∆x1i=x1(i)-x1(i-1)

現在我們假設累加序列X2符合一階常微分方程(這裏的一階指的是隻有一階導數,常微分指的是係數爲常數)

(dx2i)/(di) + a*x2i = u 公式(1.1)

其中的a和u分別稱爲發展灰數和內生控制灰數

當i=t0,的時候x2(i) = x2(t0)

因此可以得到一個公式

(dx2(t0))/(d(t0)) + a*x2(t0) = u 公式(1.2)

綜合1.1和1.2可以得到公式

x2(i) = [x2(t0) – (u/a)]*e^(-a*(i-t0)) +u/a//我也不知道是怎麼推導出來的

對導數部分(dx2(t0))/(d(t0))進行對等間隔取樣,並且將t0設置爲1,公式會變成

x2(k+1) = [x2(1) – (u/a)] *e^(-a*k) + u/a公式1.3//這裏的k=i-t0

 

接下來將x2(2),x2(3)…x2(n)帶入公式1.1,用差分代替微分,又因爲等間隔取樣,

∆t = (t+1)-t,故得到∆x2(2)/∆t = ∆x2(2) =x2(2)-x2(1) = x1(2)

類似的有∆x2(3)/∆t = ∆x2(3) = x2(2)-x2(1) = x1(2)

於是將以上公式帶入公式1.2有

x1(2) = [-x2(2),1]([a,u]T)  //這裏的T爲矩陣轉置

x1(3) = [-x2(3),1]([a,u]T)

x1(4) = [-x2(4),1]([a,u]T)

。。。

x1(n) = [-x2(n),1]([a,u]T)

 

由於∆x2(i)/∆i涉及到累加列兩個項的值,因此x2(i)最好也變成兩個項的值,因此矩陣變爲

x1(2) = [-1/2*(x2(2)+x2(1)),1]([a,u]T) //這裏的T爲矩陣轉置

x1(3) = [-1/2*(x2(3)+x2(2)),1]([a,u]T)

x1(4) = [-1/2*(x2(4)+x2(3)),1]([a,u]T)

。。。

x1(n) = [-1/2*(x2(n)+x2(n-1)),1]([a,u]T)

這個矩陣的矩陣形式表示爲y=BU,其中U = ([a,u]T)

以上式子用最小二乘法估計a和u爲以下

 

將計算出來的a和u帶入公式1.3就能夠得到x2(n+1)的估計值,使用x2(n+1)的估計值就能夠得到x1(n+1)的預測值

發佈了234 篇原創文章 · 獲贊 19 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章