matlab灰色预测mgm,自适应多变量灰色MGM(1,m)预测模型代码问题

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 16:59   932   0

编写的一个多变量灰色MGM(1,m)模型代码如下,求教如何改为自适应MGM(1,m)模型。自适应 M GM ( 1, n) 模型的建模过程可描述为: 在原始时间序列X(0)=( x(0)(1) , x(0)(2) ,…, x(0)( n))中,将最老的信息去掉,置入最新的信息x(0)( n+ 1) ,从而得到新的时间序列X(0)=( x(0)(2) , x(0)(3) ,…, x(0)( n+ 1))。以此类推,逐步建立灰色自适应M GM ( 1, n)模型。

92824391edb57869aba47e60bc745d72.png

QQ截图20141126185534.jpg (98.44 KB, 下载次数: 3)

2017-11-26 18:55 上传

>> clear

>> clc

k=3; %输入待预测的时刻

X0=[32.43 36.97 54.98; 32.26 36.77 54.80; 32.18 36.71 54.70; 32.06 36.57 54.59; 32.06 36.52 54.51; 31.99 36.43 54.44; 31.93 36.35 54.37; 31.82 36.24 54.28; 31.86 36.28 54.28; 31.89 36.27 54.25]; %初始数据序列

[n,m]=size(X0);

for j=1:m c=0;

for i=1:n

c=X0(i,j)+c;

X1(i,j)=c;

end

end

for j=1:m

for i=1:n-1

L(i,j)=(X1(i,j)+X1(i+1,j))/2;

end

end

L=[L,ones(n-1,1)];

for j=1:m

Y(1:n-1,j)=X0(2:n,j);

a(:,j)=inv(L'*L)*L'*Y(1:n-1,j);

end

a=a';

A=a(1:end,1:end-1);

B=a(1:end,end);

S=X1(1,1:end)

if k==1;

Z=S'

elseif k>1

% 计算预测值

Z=(expm(A*(k-1))-expm(A*(k-2)))*(S'+A\B)

else disp('输入错误!')

end

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP