灰色预测

灰色预测法

  灰色预测法是一种对含有不确定因素的系统进行预测的方法。灰色预测是对既含有已知信息又含有不确定信息的系统进行预则,就是对在一定范围内  变化的、与时间有关的灰色过程进行预测。

  灰色预测通过鉴别系统因素之间发展趋势的相异程度,即进行关联分析,并对 原始数据进行生成处理来寻找系统变动

    的规律,生成有较强规律性的数据序列,然后建立相应的微分方程模型,从而 预测事物未来发展趋势的状况。

灰色预测法用等时距观测到的反映预测对象特征的一系列数量值构造灰色预测模   型,预测未来某一时刻的特征量,或达到某一 特征量的时间。

灰色生成数列

       灰色系统理论认为,尽管客观表象复杂,但总是有整体功能的,因此必然蕴含某种内在规律。关键在于如何选择适当的方式去挖掘和利用它。灰色系统是通过对原始数据的整理来寻求其变化规律的,这是一种就数据寻求数据的现实规律的途径,即为灰色序列的生成。一切灰色序列都能通过某种生成弱化其随机性,显现其规律性。数据生成的常用方式有累加生成累减生成加权累加生成。

 

 

 

灰色模型GM(1,1) 

灰色系统理论是基于关联空间、光滑离散函数等概念定义灰导数与灰微分方程,进而用离散数据列建立微分方程形式的动态模型,即灰色模型是利用离散随机数经过生成变为随机性被显著削弱而且较有规律的生成数,建立起的微分方程形式的模型,这样便于对其变化过程进行研究和描述。

                                                              G表示grey(灰色),M表示model(模型)

 检验预测值两种方法

灰色预测计算实例 

 

 

 

 

 

 

Matlab的灰色预测程序:
y=input('请输入数据');
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))]);


请输入数据[29.8 30.11 41.05 70.12 77.79 77.79 104.82 65.22 82.7 100.79]

输入需要预测的个数4
百分绝对误差为:14.5128%
预测值为:110.5718      120.8171      132.0116      144.2434

 

 

 

 

  • 34
    点赞
  • 112
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值