logo资料库

灰色预测程序(里面有算法解释和完整程序内容).doc

第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
资料共5页,全文预览结束
表 1:2005—2008 年巢湖市年负荷量 年份 年最大负荷 (万千瓦) 2005 2006 2007 2008 2009 28.8956 34.7893 37.8492 42.1131 45.9033 巢湖市年负荷量保持了一定规律性的同时,其不确定性也带来了 负荷变化的随机性。灰色系统 GM(1,1)预测指对获取信息量较少、 数据资料年限较短、波动不大且逐年呈上升趋势的问题进行预测的有 效方法。但由于 MG(1,1)模型的解为指数型曲线,一般呈单调递增, 进行超长期预测,往往偏高,因而对波动性大的数据拟合较差,预测 精度较低。 马尔柯夫预测是根据状态之间的转移概率来预测系统未来变化 的,它反映了各状态之间转移的内在规律和各种随机因素的影响程 度。因此,马尔柯夫预测随机波动性较大的问题较为适宜,正好可以 弥补 GM(1, 1)模型的局限性,而 GM (1, 1)又可揭示预测问题时 间序列发展变化的总趋势,用来弥补马尔柯夫预测的局限性,达到取 长补短。两者结合形成的灰色 GM (1, 1)马尔柯夫预测方法,可大大 提高预测的精度。 就负荷预测变化来看,既存在时间序列变化的规律性,也存在众 多因素干扰导致的随机性。利用灰色 GM(1,l)—马尔柯夫预测模型 对房价进行预测,能有效契合房价的变化趋势。 首先建立灰色 GM(1,l)。 设 n} 0X ( )(k)|k=1,2, , 为非负原始时间序列数据,进行一次累加
生成得: X (1) ( ) k  k  i 1  (0) x ( ), i k  1,2, n  确定数据矩阵 B,Q 1 1 1           (1) (1)  x (1) (2)] x (1) (2)  x (1) (3)]  ( n 1)   x (1) ( ) n (1)  1 [ x 2 1 [  2 B             x 1 [ 2 (0) (2) (3) (0)  (0) ( ) n        Q         x x x 计算参数(最小二乘法) A  a     u    ( T B B 1 ) B  T Q X (1) ( k 1)   ( X (0) (1)  u a  ak ) e  u a 确定 GM(1,l)模型 令 ( )Y k X (0)(k+1)则 X (0) ( k 1)   X (1) ( k 1 X k   ( )) ( ) (k) Y  0 式中 a 为发展系数,其大小反映了数据序列 0X( )的增长速度;u 为内生变量;Y(k) 为预测值。 接着以预测值 Y(k)为基准,在其上下两侧作 m 条与之平行的曲线 Yi(k)二 Y(k)+Ai (Ai 为常数,m、Ai 视具体情况而定),每相邻两条曲线之间的区域为一个状态, 0X( ) 将芜湖市市房地产现状分析及未来走势预测符合马氏链的非平稳随机序列{ (k+1)}划分 m 个状态,一记为 1E 2E ,…, mE 。 最后确定马尔柯夫状态转移概率矩阵。数据序列由状态 Ei 经过 w 步转移状 态 Ej 的概率称作 w 步状态转移概率,即
) P w ij (  ( ) m w ij m ( ) i i , j  1,2,3  m 式中 ( ijm w 为状态 Ei 经过 w 步转移到状态 Ej 的原始数据样本数,Mi 为状 ) 态 Ei ) ) w 的原始数据样本数。则状态转移概率矩阵为: p p (w) 12 1 p p 22 2 m    p p  ( p 11  ( p  21      p     ( 1 m P m m w w w ) w ) w ) 2 ( ( ) ( ( w ) ( w ) ( w ) mn        在利用状态转移概率矩阵分析实际问题时,一般只需考虑一步转移概率矩阵 (1)p 假定预测对象处于 Ei 状态,考察转移概率矩阵 (1)p 中第 i 行,若 max( p ( ij ) (1) ) 则系统未来时刻最有可能从状态 Ei 转向状态 E,。 根据己确定的系统未来时刻状态状态,预测结果最可能为: p ( ), 1 ij ' ( Y k  ) Y( ) k  1 2 ( A i 上  下 i A ) 建立灰色 GM(1,1)模型 计算 X(1)的紧邻均值生成序列得到计算结果如下: 1 1  1            B               1 2 1 2 1 2          Y N          X X X (1) (1) X X (1)  X (1) ( 2 ) (3) ( 2 )  X (1)        (1) X ( n 1)   X (1) ( n )    ( 0 ) ( 2 ) ( 0 ) ( 3 )  ( 0 ) ( n )         。 对参数列 ˆ a  T , a b    进行最小二乘估计,得 ˆ a  ( T T B B B Y ) 1  。
即 a=-0.0699,u=2404.1。 (1) dX dt (1)  aX   将 a,u 的值代入 ,确立 GM(1,1)模型的微分方程为: (1) dX dt  0.1033 X (1)  34314.7 则可得时间响应式为: 48671 k 1   ,  ,2,3,4,5 (1) ˆ X ( ) k  (0)    X ( 1) a k    (1) / u a e    / u a  48671e 0.0681 k 1   ( ) 三、灰色程序 function gm1(x) X0=[11.8256 23.7233 32.2392 12.1231 25.1233]; X1=cumsum(X0); N=size(X0); n=2:5; s=n-1; Z1(n-1)=(X1(n)+X1(n-1))/2 ; % Z1=Z1(s); b=[1 1 1 1 ]; B=cat(2,-Z1',b') ; Y1(n-1)=X0(n)'; Y1=Y1(s); Y=Y1'; % a1=inv(B'*B)*B'*Y ; a=a1(1); b=a1(2); k=1:5; X1y(k+1)=(X0(1)-b/a)*exp(-a*k)+b/a; X1y(1)=X1(1) ; % X0y(k+1)=X1y(k+1)-X1y(k); X0y(1)=X1y(1) ; % plot(2005:2010,X0y,'r'); hold on; grid on; plot(2005:2009,X0); hold on; plot(2005:2009,X0,'*'); pause
a b k=1:18; m(k)=(X0(1)-b/a)*exp(-a*(k-1))+b/a; m; for k=1:18 if k>1 y(k)=m(k)-m(k-1); y(k)=m(k); else end end y
分享到:
收藏