您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 其它文档 > 灰色系统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);%计算后验差检验数
本文标题:灰色系统GM(2-1)MATLABmatlab函数
链接地址:https://www.777doc.com/doc-5411887 .html