灰色预测模型(数学建模选择模型三:灰色预测模型)

  • A+
所属分类:知识

灰色预测模型
昨日天气尚好,学校在晴天时显得格外美丽。开学季,事情会比较多,慢慢来,一切都是最好的安排!
  模型三:灰色预测模型
一.灰色系统理论简介
二.灰色生成
三.累加生成概念及公式推导
四.灰色预测模型GM(1,1)
五.Matlab中灰色预测模型程序演示
一.灰色系统理论简介

灰色预测模型(Gray Forecast Model)是通过少量的、不完全的信息,建立数学模型并做出预测的一种预测方法。当我们应用运筹学的思想方法解决实际问题,制定发展战略和政策、进行重大问题的决策时,都必须对未来进行科学的预测。预测是根据客观事物的过去和现在的发展规律,借助于科学的方法对其未来的发展趋势和状况进行描述和分析,并形成科学的假设和判断。
灰色系统理论是由华中理工大学邓聚龙教授于1982年提出并加以发展的。是研究解决灰色系统分析、建模、预测、决策和控制的理论。灰色预测是对灰色系统所做的预测。目前常用的一些预测方法(如回归分析等),需要较大的样本,若样本较小,常造成较大误差,使预测目标失效。灰色预测模型所需建模信息少,运算方便,建模精度高,在各种预测领域都有着广泛的应用,是处理小样本预测问题的有效工具。
二.灰色生成

将原始数据列中的数据,按某种要求作数据处理称为生成。客观世界尽管复杂。表述其行为的数据可能是杂乱无章的,然而它必然是有序的,都存在着某种内在规律,只不过这些规律被纷繁复杂的现象所掩盖,人们很难直接从原始数据中找到某种内在的规律。对原始数据的生成就是企图从杂乱无章的现象中去发现内在规律。
常用的灰色系统生成方式:累加生成、累减生成、均值生成、级比生成。下面主要介绍累加生成。
三.累加生成概念及公式推导

1.累加生成概念累加生成,即通过数列间各时刻数据的依个累加以得到新的数据与数列。累加前的数列称原始数列,累加后的数列称为生成数列。累加生成是使灰色过程由灰变白的一种方法,它在灰色系统理论中占有极其重要地位,通过累加生成可以看出灰量积累过程的发展态势,使离乱的原始数据中蕴含的积分特性或规律加以显化。累加生成是对原始数据列中各时刻的数据依次累加,从而生成新的序列的一种手段。
2.累加生成推导过程(了解)
原始数据序列:
于是得到一个新的数据序列:
归纳上面的式子可写为:
称此式子所表示的数据列为原始数据列一次累加生成,简称为一次累加生成。
四.灰色预测模型GM(1,1)
1.推导过程(了解)灰色系统是对离散序列建立的微分方程,GM(1,1)是一阶微分方程模型,其形式为:离散形式和预测公式如下:
由导数定义知:
当△t很小取为1时,则近似的有:
写成离散形式为:
将上面四式整理后得到下面公式:
写成矩阵表达式:
这里,T表示转置,令:

2.预测值的求解

3.GM(1,1)模型的精度检验
模型选定之后,一定要经过检验才能判定其是否合理,只有通过检验的模型才能用来作预测,灰色模型的精度检验一般有三种方法:相对误差大小检验法、关联度检验法和后验差检验法。下面主要介绍后验差检验法。

指标C和p是后验差检验的两个重要指标。指标C越小越好,C越小表示S1大而S2越小。S1大表示原始数据方差大,即原始数据离散程度大。S2小表示残方差小,即残差离散程度小。

C小就表明尽管原始数据很离散,而模型所得计算值与实际值之差并不太离散。

精度检验等级参照表如下:

五.Matlab中灰色预测模型程序演示% 本程序主要用来计算根据灰色理论建立的模型的预测值。% 应用的数学模型是 GM(1,1)。% 原始数据的处理方法是一次累加法。y=input('请输入数据 ');n=length(y);yy=ones(n,1);yy(1)=y(1);for i=2:n yy(i)=yy(i-1)+y(i);endB=ones(n-1,2);for i=1:(n-1) B(i,1)=-(yy(i)+yy(i+1))/2; B(i,2)=1;endBT=B';for j=1:n-1 YN(j)=y(j+1);endYN=YN';A=inv(BT*B)*BT*YN;a=A(1);u=A(2);t=u/a;i=1:n+2;yys(i+1)=(y(1)-t).*exp(-a.*i)+t;yys(1)=y(1);for j=n+2:-1:2 ys(j)=yys(j)-yys(j-1);endx=1:n;xs=2:n+2;yn=ys(2:n+2);plot(x,y,'^r',xs,yn,'*-b');det=0;
sum1=0;sumpe=0;for i=1:n sumpe=sumpe+y(i);endpe=sumpe/n;for i=1:n; sum1=sum1+(y(i)-pe).^2;ends1=sqrt(sum1/n);sumce=0;for i=2:n sumce=sumce+(y(i)-yn(i));endce=sumce/(n-1);sum2=0;for i=2:n; sum2=sum2+(y(i)-yn(i)-ce).^2;ends2=sqrt(sum2/(n-1));c=(s2)/(s1);disp(['后验差比值为:',num2str(c)]);if c<0.35 disp('系统预测精度好')else if c<0.5 disp('系统预测精度合格') else if c<0.65 disp('系统预测精度勉强') else disp('系统预测精度不合格') end endend disp(['下个拟合值为 ',num2str(ys(n+1))]);disp(['再下个拟合值为',num2str(ys(n+2))]);运行结果:

发文不易
你的支持是小正君最大的动力- ??(?????)

灰色预测模型相关文章

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: