




如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
(精品word)灰色预测模型matlab程序精确版 (精品word)灰色预测模型matlab程序精确版 (精品word)灰色预测模型matlab程序精确版 灰色预测模型matlab程序 灰色模型预测是在数据不呈现一定规律下可以采取的一种建模和预测方法,其预测数据与原始数据存在一定的规律相似性 %下面程序是灰色模型GM(1,1)程序二次拟合和等维新陈代谢改进预测程序,matlab6.5,使用本程序请注明,程序存储为gm1。m %x=[5999,5903,5848,5700,7884];gm1(x);测试数据 %二次拟合预测GM(1,1)模型functiongmcal=gm1(x)sizexd2=size(x,2);%求数组长度 k=0;fory1=xk=k+1;ifk〉1x1(k)=x1(k-1)+x(k);%累加生成z1(k-1)=-0.5*(x1(k)+x1(k—1));%z1维数减1,用于计算Byn1(k-1)=x(k);elsex1(k)=x(k);endend%x1,z1,k,yn1 sizez1=size(z1,2);%size(yn1);z2=z1';z3=ones(1,sizez1)'; YN=yn1’;%转置%YN B=[z2z3];au0=inv(B’*B)*B’*YN;au=au0’;%B,au0,au afor=au(1);ufor=au(2);ua=au(2)./au(1);%afor,ufor,ua%输出预测的au和u/a的值 constant1=x(1)—ua;afor1=-afor;x1t1=’x1(t+1)’;estr='exp’;tstr='t’;leftbra=’(’;rightbra=')';%constant1,afor1,x1t1,estr,tstr,leftbra,rightbra strcat(x1t1,'=',num2str(constant1),estr,leftbra,num2str(afor1),tstr,rightbra,'+',leftbra,num2str(ua),rightbra)%输出时间响应方程 %******************************************************%二次拟合 k2=0;fory2=x1k2=k2+1;ifk2>kelseze1(k2)=exp(-(k2-1)*afor);endend%ze1 sizeze1=size(ze1,2);z4=ones(1,sizeze1)’;G=[ze1’z4];X1=x1’;au20=inv(G’*G)*G’*X1;au2=au20';%z4,X1,G,au20 Aval=au2(1);Bval=au2(2);%Aval,Bval%输出预测的A,B的值 strcat(x1t1,'=’,num2str(Aval),estr,leftbra,num2str(afor1),tstr,rightbra,’+’,leftbra,num2str(Bval),rightbra)%输出时间响应方程 nfinal=sizexd2—1+1;%决定预测的步骤数5这个步骤可以通过函数传入 %nfinal=sizexd2—1+1;%预测的步骤数1 fork3=1:nfinalx3fcast(k3)=constant1*exp(afor1*k3)+ua;end%x3fcast%一次拟合累加值 fork31=nfinal:—1:0ifk31>1x31fcast(k31+1)=x3fcast(k31)-x3fcast(k31-1);elseifk31>0x31fcast(k31+1)=x3fcast(k31)-x(1);elsex31fcast(k31+1)=x(1);endendendx31fcast%一次拟合预测值 fork4=1:nfinalx4fcast(k4)=Aval*exp(afor1*k4)+Bval;end%x4fcast fork41=nfinal:—1:0ifk41>1x41fcast(k41+1)=x4fcast(k41)-x4fcast(k41—1);elseifk41〉0x41fcast(k41+1)=x4fcast(k41)—x(1);elsex41fcast(k41+1)=x(1);endendendx41fcast,x%二次拟合预测值 %***精度检验pC************//////////////////////////////////k5=0;fory5=xk5=k5+1;ifk5〉sizexd2elseerr1(k5)=x(k5)—x41fcast(k5);endend%err1%绝对误差 xavg=mean(x);%xavg%x平均值 err1avg=me

17****21
实名认证
内容提供者


最近下载