您的当前位置:首页正文

GM(1,1)预测

来源:画鸵萌宠网


GM预测

模型的建立

设原始数列为x0(x0(1),x0(2),,x0(n)),把这些数列依次累加:

kx(k)(1)xi1(0)(i),k1,2,,n;r1

其中,x(1)(k)称为x0的1次累加生成数列。

定义x(1)的灰导数为

d(k)x(0)(k)x(1)(k)x(1)(k1)

令z(r)为x(r)的均值数列,即

z(1)(k)0.5x(1)0.5x(1)(k1)

本模型于是定义灰微分方程模型GM(1,1)为

x(0)(k)az(1)(k)b

上式中,称x(0)(k)为灰导数,a为发展系数,z(1)(k)为白化背景值,b为灰作用量。

3,,n代入GM(1,n)模型,得: 将时刻k2,x(0)(2)az(1)(2)bx(0)(3)az(1)(3)b

x(0)(n)az(1)(n)b令

z(1)(2)1(1)z(2)1YN(x(0)(2),x(0)(3),,x(0)(n))T,u(a,b)T,B

z(1)(2)1其中,称YN为数据向量,u为参数向量,B为数据矩阵,则GM(1,n)模型可以表示为矩阵YNBu。

参数向量u可用最小二乘法求取,如果BTB奇异,则u(BTB)1BTYN 3,,n视为连续变量t,对于GM灰微分方程,将灰导数x(0)(k)的时刻k2,dx(1)(t)(1)(0)(1)则x视为时间x(t),于是x(k)对应于导数量级,白化背景值z(1)(k)dt(t)。于是建立白微分方程: 对应于导数x(1)dx(1)(t)ax(1)(t)b dt解为:

x(1)(t)(x(0)(t1)于是得到预测值表达式:

ba(0)b)e aax(1)(k1)(x(0)(k)即:

bakb)e,k1,2,,n-1 aax(0)(k1)(x(1)(k1)x(1)(k),k1,2,,n-1

预测下一个数据时,令k+1=n-1有:

bx(0)(n1)(x(0)(n))(e-an-e-a(n1))

a程序1为较通用的程序,单个数据预测(模型和程序在原有基础上进行了微调) 程序1:GM(1,1)预测 运行环境:Matlab2011a clear han1=[ ]; %数据,建议十行以上的数据 han1(end,:)=[]; m=size(han1,2); x0=mean(han1,2); %平均每行的数据 x1=cumsum(x0); %累加x0 alpha=0.5; n=length(x0); %x0中元素个数 z1=alpha*x1(2:n)+(1-alpha)*x1(1:n-1)%x1的邻值生成数列 Y=x0(2:n); B=[-z1,ones(n-1,1)]; ab=B\\Y %a,b的值 c=ab(2)/ab(1) xhat=(x0(1)-c)*(exp(-ab(1)*n)-exp(-ab(1)*(n-1)))%预测值方程 数据预测: 结果: 预测下一个数据时,将11.4063加入han1矩阵即可

因篇幅问题不能全部显示,请点此查看更多更全内容

Top