資源描述:
《灰色預(yù)測模型的matlab運行代碼(講解)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、灰色預(yù)測模型GM(1,1)的matlab運行代碼例由1990—2001年中國蔬菜產(chǎn)量,建立模型預(yù)測2002年中國蔬菜產(chǎn)量,并對預(yù)測結(jié)果作檢驗。分析建模:給定原始時間1990—2001年資料序列X(k),對X(k)生成1-AGO(累加)序列X(k)及Y。見下表K123456789101112X19519,19578,19637,19695,16602,25723,30379,34473,38485,40514,42400,48337X19519,39097,58734,…………………………………………264605,307005,355342Y-----1957819637…
2、………………………………………405144240048337其中X(k)=;Y=對上述X(k)的GM(1,1),得到將B和Y代入辨識算式,有:得灰色GM(1,1)模型為(1)灰微分方程X(k)-0.1062105Z(k)=13999.9(2)白化方程(3)白化方程的時間響應(yīng)式(4)還原為原始數(shù)據(jù)預(yù)測方程:,即(5)殘差檢驗:殘差error1=e1=,這里殘差有12個。相對殘差error2=e2=,這里相對殘差有12個。(6)后驗差檢驗:C=,其中,S1為絕對誤差序列的標準差。,S2為原始數(shù)據(jù)系列標準差,,C<0.35好;C<0.5合格;C>0.6不合格。利用matlab做
3、求解a,b,B,并作殘差分析>>x0=[19519,19578,19637,19695,16602,25723,30379,34473,38485,40514,42400,48337];>>formatlong;(表示設(shè)計精度)>>n=length(x0);(輸入數(shù)據(jù)長度)>>x1=[];(表示x1是一矩陣)>>x1(1)=x0(1);>>fori=2:n;x1(i)=x1(i-1)+x0(i);end>>fori=1:n-1;B(i,1)=-0.5*(x1(i)+x1(i+1));(矩陣B的第一列)B(i,2)=1;(矩陣B的第二列)Y(i)=x0(i+1);(表示Yn
4、數(shù)據(jù))end>>alpha=(B'*B)^(-1)*B'*Y';>>a=alpha(1,1);>>b=alpha(2,1);>>d=b/a;(計算時間響應(yīng)函數(shù)參數(shù))>>c=x1(1)-d;>>x2(1)=x0(1);>>x(1)=x0(1);>>fori=1:n-1;x2(i+1)=c*exp(-a*i)+d;(這里x2(i+1)相當上面所講的)x(i+1)=x2(i+1)-x2(i);(這里x(i+1)相當原來輸入數(shù)據(jù)的預(yù)測數(shù)據(jù))end>>fori=2:12;x2(i)=c*exp(-a*(i-1))+d;(對上面剛引出的x2(i)進行說明及計算)x(i)=x2(i)-
5、x2(i-1);end>>fori=1:n;error(i)=x(i)-x0(i);(殘差)error1(i)=abs(error(i));(計算殘差,abs表示絕對值)error2(i)=error1(i)/x0(i);(計算相對誤差)end>>C=std(error1)/std(x0);(計算后驗差檢驗數(shù),std表示標準差)>>k=1;(k表示預(yù)測長度,這里每次預(yù)測下一年)a=-0.106210475032772>>bb=1.399996741173038e+04BB=1.0e+05*-0.2930800000000000.000010000000000-0.4891
6、550000000000.000010000000000-0.6858150000000000.000010000000000-0.8673000000000000.000010000000000-1.0789250000000000.000010000000000-1.3594350000000000.000010000000000-1.6836950000000000.000010000000000-2.0484850000000000.000010000000000-2.4434800000000000.000010000000000-2.8580500000000
7、000.000010000000000-3.3117350000000000.000010000000000>>C(求后檢驗數(shù))C=0.163969348419772>>x(原始數(shù)據(jù)的對應(yīng)的預(yù)測數(shù)據(jù),這里也是12個)x=1.0e+04*Columns1through31.9519000000000001.6957693858307821.885790370699694Columns4through62.0971043303046062.3320972683461912.593422554345592Columns7throug