資源簡介
采用粒子群算對灰色模型中的參數(shù)進行優(yōu)化,提高模型的預(yù)測精度

代碼片段和文件信息
function?[GM?f]=huise(datap)
N=1;%預(yù)測的年數(shù)
T=length(data);
data=data*p(2);
X0(1)=(3*data(1)+data(2))/4;?%數(shù)據(jù)平滑計算
for?i=2:T-1
???X0(i)=(data(i-1)+2*data(i)+data(i+1))/4;
end
X0(T)=((data(T-1)+3*data(T))/4);
X1=(cumsum(X02))‘;%對平滑后數(shù)據(jù)一次累加
for?i=1:T-1
????B(1i)=-(X0(i+1)+X0(i))/2;
????B(2i)=-((1-p(1))*X1(i+1)+p(1)*X1(i));???%引入p(1)
????B(3i)=1;
end
B=B‘;
for?i=1:T-1
????Y(i1)=(X0(i+1)-X0(i))/2;
end
H=B\Y;%各個系數(shù)
if?(H(1)^2-4*H(2))>=0
?v1=(-H(1)+sqrt(H(1)^2-4*H(2)))/2;
?v2=(-H(1)-sqrt(H(1)^2-4*H(2)))/2;
?c2=(X0(2)+v1*exp(v1)*H(3)/H(2)-v1*X0(1))/(v2-v1);
?c1=X0(1)-(H(3)/H(2))-c2;?
else
??W=sqrt(4*H(2)-H(1)^2)/2;
?v1=-H(1)/2+W;
?v2=-H(1)/2-W;
?a1=X0(1)-H(3)/H(2);
?a2=(X0(2)+a1*H(1)/2)/W;?
end
????%求得方程系數(shù)
if?(H(1)^2-4*H(2))>=0
????for?i=1:T+N
???????G(i+1)=c1*exp(v1*i)+c2*exp(v2*i)+H(3)/H(2);
%???????F(i)=X1(i+1)-G(i+1);
????end
else
????for?i=1:T+N
???????G(i+1)=exp(-H(1)*i/2)*(a1*cos(W*i)+a2*sin(W*i))+H(3)/H(2);
%????????F(i)=X1(i+1)-G(i+1);
????end
end???
yu(1)=G(2)-data(1);
q(1)=data(1)-yu(1);
for?i=2:T+N
???????yu(i)=(G(i+1)-G(i))/p(2);??%預(yù)測值
%????????q(i)=data(i)-yu(i);?%預(yù)測值與原值的殘差
%????????p(i)=q(i)/data(i+1)*100;?%相對誤差
end
data=data/p(2);
GM=minf(yudata);%minf返回值為預(yù)測值K與原值data之間誤差的累計值
f=yu;
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1341??2010-08-10?21:08??huise.m
?????文件????????331??2007-10-04?17:11??hundun.m
?????文件???????1927??2010-08-10?21:08??main.m
?????文件????????150??2010-08-10?21:09??minf.m
?????文件????????176??2010-08-10?21:09??plotljz.m
-----------?---------??----------?-----??----
?????????????????3925????????????????????5
- 上一篇:visual studio 2017 Monokai字體
- 下一篇:磷蝦群算法
評論
共有 條評論