【4】刘大江.灰色—马尔柯夫预测模型在房地产价格预测中的应用.唐山学院学
报,2004,(17).
附录:
以下是我们在应用模型解决问题时利用matlab编写的程序 蛛网模型所引用的程序
蛛网模型
function [x0,y0]=zhuwangmoxing(c1,r1,c2,r2,c3,k) a1=[c1 1;c2 1]; b1=[r1,r2]'; a2=[r1 1;r2 1]; b2=[c2,c3]';a=a1\\b1; b=a2\\b2; x0(1)=39; for n=1:30
y0(n)=a(1)*x0(n)+a(2); x0(n+1)=b(1)*y0(n)+b(2); x(n)=x0(n); y(n)=x0(n+1); end
plot(x,y0,'-g',y,y0,'-b') hold on for n=1:k for j=1:30
t1=x0(n)+(j-1)*(x0(n+1)-x0(n))/30; t2=x0(n)+j*(x0(n+1)-x0(n))/30; if t2 - 26 - t1=t2; t2=t; else end t=t1:0.01:t2; plot(t,y0(n),'.r') t1=y0(n)+(j-1)*(y0(n+1)-y0(n))/30; t2=y0(n)+j*(y0(n+1)-y0(n))/30; if t2 t=t1:0.01:t2; plot(x(n+1),t,'.r') end end 灰色—马尔柯夫模型所引用的程序 clc %清屏,以使结果独立显示 format long; %设置计算精度 if length(x(:,1))==1 %对输入矩阵进行判断,如不是一维列矩阵,进行转置变换 x=x'; end n=length(x); %取输入数据的样本量 z=0; for i=1:n %计算累加值,并将值赋予矩阵be z=z+x(i,:); be(i,:)=z; - 27 - end for i=2:n %对原始数列平行移位 y(i-1,:)=x(i,:); end for i=1:n-1 %计算数据矩阵B的第一列数据 c(i,:)=-0.5*(be(i,:)+be(i+1,:)); end for j=1:n-1 %计算数据矩阵B的第二列数据 e(j,:)=1; end for i=1:n-1 %构造数据矩阵B B(i,1)=c(i,:); B(i,2)=e(i,:); end alpha=inv(B'*B)*B'*y; %计算参数 矩阵 for i=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,:); end var(1,:)=ago(1,:) for i=1:n %如改n为n+m-1,可预测后m-1个值 var(i+1,:)=ago(i+1,:)-ago(i,:); %估计值的累加数列的还原,并计算出下一预测值 end for i=1:n error(i,:)=var(i,:)-x(i,:); %计算残差 end c=std(error)/std(x) %调用统计工具箱的标准差函数计算后验差的比值c - 28 -