灰色系统GM(2-1)MATLABmatlab函数

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

function[x0f,c,error1,error2]=GM21(X0,k,X00)%建⽴立函数[X,c,error1,error2]=example9_3_2_3(X0,k)%X00为假设的X0的第0个数值%其中X0为输⼊入序列,k为预测⻓长度,%X为预测输出序列,c为后验差检验数,error1为残差,error2为相对误差formatlong;n=length(X0);X1=[];a1x0=[];X1(1)=X0(1);a1x0(1)=X0(1);fori=2:nX1(i)=X1(i-1)+X0(i);%计算累加⽣生成序列a1x0(i)=X0(i)-X0(i-1);endfori=1:n-1B(i,1)=-X0(i+1);B(i,2)=-0.5*(X1(i)+X1(i+1));%计算B,YnB(i,3)=1;Y(i)=a1x0(i+1);endalpha=(B'*B)^(-1)*B'*Y';%做最⼩小⼆二乘估计a1=alpha(1,1);a2=alpha(2,1);b=alpha(3,1);%计算时间响应函数参数X2(1)=X0(1);X(1)=X0(1);symsx(t)x=dsolve(diff(x,2)+a1*diff(x,1)-a2*x==b);x1=sym(subs(x,t,'0')==X0(1));x2=sym(subs(diff(x),t,'0')==X00);[c1,c2]=solve(x1,x2);xf0=sym(subs(x,'C2',c1));xf1=sym(subs(xf0,'C3',c2));%得出时间响应式x1f=[];x1f(1)=subs(xf1,t,0);x0f(1)=x1f(1);fori=1:nx1f(i+1)=subs(xf1,t,i);%计算预测序列x0f(i+1)=x1f(i+1)-x1f(i);endfori=(n+1):(n+k)%计算预测序列x1f(i)=subs(xf1,t,i-1);x0f(i)=x1f(i)-x1f(i-1);endx0f%预测序列fori=1:nerror(i)=x0f(i)-X0(i);error1(i)=abs(error(i));%计算残差error2(i)=error1(i)/X0(i);%计算相对误差endc=std(error1)/std(X0);%计算后验差检验数

1 / 2
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功