灰色预测GM(1,1)

% 本程序主要用来计算根据灰色理论建立的模型的预测值。
% 应用的数学模型是GM(1,1)。
% 原始数据的处理方法是一次累加法。y=input('请输入数据');%输入数据请用如例所示形式:[48.7 57.17 68.76 92.15]
n=length(y);
yy=ones(n,1);
yy(1)=y(1);
for i=2:n 
yy(i)=yy(i-1)+y(i);
end 
B=ones(n-1,2);
for i=1:(n-1) 
   
B(i,1)=-(yy(i)+yy(i+1))/2;
   
B(i,2)=1;
end
BT=B';
for j=1:n-1
   
YN(j)=y(j+1);
end
YN=YN'; 
A=inv(BT*B)*BT*YN;
a=A(1);
u=A(2); 
t=u/a; 
t_test=input('请输入需要预测个数:');
i=1:t_test+n; 
yys(i+1)=(y(1)-t).*exp(-a.*i)+t;
yys(1)=y(1);
for j=n+t_test:-1:2
   
ys(j)=yys(j)-yys(j-1);
end
x=1:n;
xs=2:n+t_test;
yn=ys(2:n+t_test);
plot(x,y,'^r',xs,yn,'*-b');
det=0;
for i=2:n 
   
det=det+abs(yn(i)-y(i));
end 
det=det/(n-1); 
disp(['百分绝对误差为:',num2str(det),'%']);
disp(['预测值为:',num2str(ys(n+1:n+t_test))]);
 

转载于:https://www.cnblogs.com/loving-wenqure/p/3863969.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值