您好,欢迎访问三七文档
当前位置:首页 > 金融/证券 > 股票报告 > 灰色系统新陈代谢模型源码(matlab)
functiong(x);%定义函数gm(x)forj=1:10clc;%清屏,以使计算结果独立显示formatlong;%设置计算精度iflength(x(:,1))==1%对输入矩阵进行判断,如不是一维列矩阵,进行转置变换x=x';end;n=length(x);%取输入数据的样本量z=0;fori=1:n%计算累加值,并将值赋与矩阵bez=z+x(i,:);be(i,:)=z;endfori=2:n%对原始数列平行移位y(i-1,:)=x(i,:);endfori=1:n-1%计算数据矩阵B的第一列数据c(i,:)=-0.5*(be(i,:)+be(i+1,:));endforj=1:n-1%计算数据矩阵B的第二列数据e(j,:)=1;endfori=1:n-1%构造数据矩阵BB(i,1)=c(i,:);B(i,2)=e(i,:);endalpha=inv(B.'*B)*B.'*y;%计算参数α、μ矩阵fori=1:n+1%计算数据估计值的累加数列,如改n+1为n+m可预测后m-1个值ago(i,:)=(x(1,:)-alpha(2,:)/alpha(1,:))*exp(-alpha(1,:)*(i-1))+alpha(2,:)/alpha(1,:);endvar(1,:)=ago(1,:)fori=1:n%如改n为n+m-1,可预测后m-1个值var(i+1,:)=ago(i+1,:)-ago(i,:);%估计值的累加数列的还原,并计算出下一预测值endfori=1:nerror(i,:)=var(i,:)-x(i,:);%计算残差endc=std(error)/std(x);%调用统计工具箱的标准差函数计算后验差的比值cago%显示输出预测值的累加数列alpha%显示输出参数α、μ数列var%显示输出预测值error%显示输出误差c%显示后验差的比值cvar=fix(var);fori=2:11x(i-1)=var(i);endend
本文标题:灰色系统新陈代谢模型源码(matlab)
链接地址:https://www.777doc.com/doc-6076911 .html