全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
1543 0
2013-03-02
这下面是一个双变量灰色预测模型的matlab代码,k=1时可以预测出第一年的数据 为啥K=2时就不行了呢  求解答。。。。


>> %输入待预测时刻k及原始序列X0
k=1;
X0=[481.8,166.2;509.3,175.9;532.9,200.1;544.5,258.1;554.2,293.5;576.7,334.8;617.3,376.4;618.2,405.9;623.5,421.3;614.7,390.1;621.0,389.7];
%对原始序列X0累加生成序列X1
[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
%计算数据矩阵L
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)];
%计算Y及参数估计值
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=expm2(A*(k-1))*S'+inv(A)*(expm2(A*(k-1))-eye(size(expm2(A*(k-1)))))*B-(expm2(A*(k-2))*S'+inv(A)*(expm2(A*(k-2))-eye(size(expm2(A*(k-2)))))*B)
else disp('输入错误!k不得小于1')
end
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群