GM(1-1)模型及其Matlab实现.docx
灰色系统预料GM(1,1)模型及其Matlab实现三天三夜72小时:读懂题目-查找文献资料-选择题目-重查找文献资料-精读其中几篇-查找资料的资料。在数学建模中经常会遇到数据的预料问题,有些赛题中,预料占主导地位,例如:2003年A题SARS的传播问题;2005年A题长江水质的评价和预料问题:2006年B题艾滋病疗法的评价及疗效的预料问题:2007年A题中国人口增长预料问题。有些问题则是须要在求解的过程中进行预料,如2009年D题“会议筹备”对与会人数的确定等。参考资料:灰色系统理论及其应用第五版作者:刘思峰,党耀国等著出版时间:2010.05校超星数字图书馆可阅读。灰色模型(GrayModel)有严格的理论基础,最大优点走好用。用灰色模型预料的结果比较稳定,不仅适用于大数据量的预料,,在数据量较少时(>3)预料结果依旧较精确。预备学问(1)灰色系统白色系统是指系统内部特征是完全已知的,即人们不仅知道该系统的输入一一输出关系,而且知道实现输入一一输出关系的结构与过程:黑色系统是指系统内部信息完全未知的,即人们只知道该系统输入输出关系,但不知道实现输入一一输出关系的结构与过程:而灰色系统是介于白色系统和黑色系统之间的一种系统,灰色系统其内部一部分信息已知,另一部分信息未知或不确定。例如,一个加有电压的电阻,也是一个系统,依据欧姆定律,I=UR,当电阻的大小知道后,便可由多大电压算出能得到多大电流。电压与电流之间有明确的关系或函数,这便是白色系统。因此,这样的系统要求有明确的作用原理,一个有明确作用原理的系统必定是具有确定结构的,必定是有物理原型的。然而很多社会经济系统都没有物理原型,虽然知道影响系统的某些因素,但很难明确全部因素,更不行能确定因素之间的映射关系。这种没有.确定的映射关系(函数关系)的系统是灰色系统。(2)灰色预料灰色预料,是指对系统行为特征值的发展改变进行的预料,对既含有已知信息乂含有不确定信息的系统进行的预料,也就是对在肯定范围内改变的、与时间序列有关的灰过程进行预料。尽管灰过程中所显示的现象是随机的、杂乱无章的,但终归是有序的、有界的,因此得到的数据集合具备潜在的规律。灰色预料是利用这种规律建立灰色模型对灰色系统进行预料。目前运用最广泛的灰色预料模型就是关于数列预料的一个变量、一阶微分的GM(1,1)模型。它是基于随机的原始时间序列,经按时间累加后所形成的新的时间序列呈现的规律可用一阶线性微分方程的解来靠近。经证明,经一阶线性微分方程的解靠近所揭示的原始时间序列呈防陷攵及觌律。因此,当原始时间序列隐含着指数改变规律时,灰色模型GV(1,D的预料是特别胜利的。目前,灰色模型GM(1,1)己广泛应用于工程技术、社会、经济、农业、生态、环境等各种系统的预料中。1灰色预料基础学问灰色系统理论认为:系统的行为现象尽管是朦胧的,数据是困难的,但它终归是有序的,是有整体功能的。在建立灰色预料模型之前,需先对原始时间序列进行数据处理,经过数据预处理后的数据序列称为牛.成列。对原始数据进行预处理,不是寻求它的统计规律和概率分布,而是将杂乱无章的原始数据列通过肯定的方法处理,变成有规律的时间序列数据,即以数找数的规律,再建立动态模型。灰色系统常用的数据处理方式有累加和累减两种,通常用累加方法。灰色预料通过鉴别系统因素之间发展趋势的相异程度,并时原始数据进行生成处理来找寻系统变动的规律,生成有较强规律性的数据序列,然后建立相应的微分方程模型,从而预料事物的将来发展趋势。灰色预料的数据是通过生成数据的模型所得到的预料值的逆处理结果。灰色预料是以灰色模型为基础的,在诸多的灰色模型中,以灰色系统中单序列一阶线性微分方程模型GM(1,D模型最为常用。卜.面简要地介绍GM(1,D模型。设有原始数据列*=(X(l),x,s(2),xul>(n),n为数据个数。假如依据XM数据列建立GM(1,1)来实现预料功能,则基本步骤如卜.:(D原始数据累加以便弱化随机序列的波动性和随机性,得到新数据序列:X10=x,x22),x(n)其中,x“)(l)中各数据表示对应前几项数据的累加。X"(t)=次xn(k),t=l,2,nk>l对x2t)建立下述一阶线性微分方程:即GM(IJ)模型。其中,a,u为待定系数,分别称为发展系数和灰色作用试,a的有效区间是(-2,2),并记a,u构成的矩阵为灰参数a=')。只要求出参数a,u,就能求出x""t),进而求出X的将来预料值。(3)对累加生成数据做均值生成B与常数项向量Yn,即-(Xo,(l)÷Xo,(2)12-l(X">(2)+Xt(3)IB=2-(Xuj(n-1)+X*,(n)12JM、0,(3)Yn=/(初(4)用最小二乘法求解灰参数;,则a=(B1B)1B1Ynf(>r(11(5)将灰参数a代入为一+ax<n=u,并对W-+ax"»=U进行求解,得dtdtXo'(t+1)=(X,0>(l)-)c-,+-aa由于;是通过最小二乘法求出的近似值,所以M"(t+1)是一个近似表达式,为了与原序列*”)(1+1)区分开来,故记为父”+1)。式中t为时间序列,可取年、季或月。(6)对函数表达式文(t+l)及"”(1)进行离散,并将二者做差以便还原X原序列,得到近似数据序列X'0,(t+l)如下:xto,(t+l)=x(t+l)-x(t)(7)对建立的灰色模型进行检验,步骤如下:计算x(t)与/S(t)之间的残差e,w(t)和相对误差q(t):e,w(t)=xf(t)-w(t)qw)(t)=ew)(t)/x<o>(t)等等。(8)利用模型进行预料:x,=x10,(l),x,(2),xw(n),x7n+l),x(n+m)原数列的模拟将来数列的预料应用举例取某高校2000年2005年的某专业招生数据建模,见表U表1某高校专业招生数据发年招生人数20001322001922002118200313020041872005207以表1中的数据构造原始数据列X叱即X<O>=X'O>(1),X,0l(2),X(3),X'0)(4),X'(5),X(o>(6)=132,92,118,130,187,207)对X(O)进行一次累加(I-AG0),生成数列:YX(IO=GX即Xm=X,(l),X(2),X(3),X,Xoj(5),XU)=132,224,342,472,659,866)和数据阵B、数据列Yn-1781-2831-407I-565.51Yn=(92,118,130,187,207)1B=1-762.51经计算可得a=a,u1-0.205=56.7878184j进一步得到灰色预料模型GM(1,1)为UUq(k)=(X一)e3+7=(132+277.0137483)/JnsaF-277.0137483=409.0137483产i-277.0137483预料值及预料精度见表2。表2某高校专业招生预料值及预料精度太年GM(IJ)模电计算侬IAGO谈拟合相对次空(%)2000132132132132002001225.060S79622493921-12002339.295UI834211411843.382003479.52123472140130IO-7.692004651.65196591721582005»62.9466129866211207-4-1.9320061122.316167259252-7-2.78由表2知预料精度较高。2006年某专业招生人数预料值为259人。由于人数为整数,所以结果取整数部分。GM(1.I)也是种长期预料模型,在没有大的市场波动及政策性改变的前提下,该预料值应是可信的。众所周知,影响招生人数的因素很多且难以预料。因此,在采纳灰色系统理论进行定量预料时,假如存在对预料对象影响较大的因素,就要在定性分析的基础上,找寻原始数据信息的突变点的量化值,然后再对预料值进行必要的修正,使预料值更接近实际状况,提高预料值的可信度,为科学决策供应牢嵬的数据。另外,若作长期预料,要考虑对上限值的约束条件。2灰色预料的MAT1.AB程序2.1典型程序结构灰色预料中有很多关于矩阵的运算,这可是MAT1.AB的特长,所以用MAT1.AB是实现灰色预料过程的首选。用MT1.B编写灰色预料程序时,可以完全依据预料模型的求解步骤,即(1)对原始数据进行累加。(2)构造累加矩阵B与常数向量Yn。(3)求解灰参数。(4)将参数带入预料模型进行数据预料。下面以某公司收入预料问题为例介绍灰色预料的MAT1.AB实现过程。已知某公司19992008年的利润为(单位:元/年):89677,99215,109655,120333,135823,159878,182321,209407,246619,300670,现在要预料该公司将来几年的利涧状况。详细的MAT1.AB程序如下:clearsymsau;c=au'%灰参数cA=89677,99215,109655,120333,135823,159878,182321,209407,246619,300670;%原始数据Ago=Cumsuni(八);舟原始数据一次累加n=length();%原始数据个数fori=l:(n-l)C(D=(Ago(i)+Ago(i+l)2;%生成累加矩阵end%计算待定参数的值Yn=A;Yn(1)=;Yn=Yn>E=-C;ones(1,n-l);c=inv(E*E,)*E*Yn:c=c,;a=c(l);u=c(2);%预料后续数据F=;F(I)=A;fori=2:(n+10)F(i)=(A(l)-ua)exp(a*(i-l)+ua:endG=G(l)=A(l):fori=2:(n+10)G(i)=F(i)-F(i-l);先得到预料出来的数据endt1=1999:2008;t2=1999:2018;Gplot(tl,o,t2,G)%原始数据与预料数据的比较运行该程序,得到的预料数据如下:G=1.0e+006*Columnslthrough140.08970.08930.10340.11960.13850.16020.18540.21460.24830.28730.33250.38470.44520.5152Co1umnsl5through20O.5962O.6899O.7984O.92391.06911.2371该程序还显示了预料数据与原始数据的比较图。2.2灰色预料程序说明(1)先熟识程序中各条吩咐的功能,以加深对灰色预料理论的理解。(2)在实际运用时,可以干脆套用该段程序,把原数据和时间序列数据替换就可以了。(3)模型的误差检验可以敏捷处理,图中给出的是预料数据与原始数据的比较图,同样也可以对预料数据进行其他方式的精度检验。3灰色预料应用实例3.1 实例一:长江水质的预料(CUMCM2005A)长江的水质问题是一个困难的线性系统,但是由于数据样本少,须要预料的时间长,干脆应用神经网络很难取得志向的效果。考虑到污水排放量的改变规律是一个不确定的系统,且题中给出污水排放量数据样本比较少,还要求做出长达10年的预料,因此采纳灰色预料方法来预料将来的污水排放量。对原题附件4中的数据进行整理可以得到10年的长江污水量排放数据,如下表所列。19952004年长江污水排放量年份19951996199719981999200020012002200320(M污水量,亿吨174179183189207234220.5256270285以前述的程序段为基础,将上表的数据代入,并更新时间轴数据,即得到新程序。clearsymsau;c=au'斗灰参数cA=174179183189207234220.5256270285;%原始数据go=cumsum():/原始数据一次累加n=lcnglh(八);%原始数据个数fori=l:(n-l)C(i)=(go(i)+go(i+i)2;%生成累加矩阵end%计算待定参数的值Yn=AjYn(1)=;Yn=Yn1;E=E-Cjones(1,nT);c=inv(E*E,)*E*Yn;c=c,;a=c(l);u=c(2);%预料后续数据F=jF(l)=A(l);fori=2:(n+10)F(i)=(A(l)-ua)cxp(a*(i-l)+ua;endG二口;G(1)=A(1);fori=2:(n+10)G(i)=F(i)-F(i-l);%得到预料出来的数据endtl=1995:2004;12=1995:2014;G,a,u%输出预料值、发展系数和灰色作用量plot(tl,o,t2,G)%原始数据与预料数据的比较5501995-2014预料长江排放的污水量3.2 实例二:预料与会代表人数(CUMCM2009D)1.问题描述该题要求为会议筹备组制订一个预订宾馆客房、租借会议室、租用客车的合理方案。为了解决这个问题,须要先预料与会代表的人数。预料的依据是代表回执数量及往届的与会人员数据。已知本届会议的回执状况表及以往几届会议代表IUl执和与会状况表。要解决的问题是:依据这些数据预料本届与会代表人数。本届会议代表的回执中有关住房要求的信息单位:人要求合住1合住2合住3独住1独住2独住3男154104321076841女784817592819说明:表头第一行中的数字1、2.3分别指每天每间120160元、161'200元、201300元三.种不同价格的房间,合住是指要求两人合住一间.独住是指可支配单人间或一人单独住一个双人间。以往几届会议代表回执和与会状况单位:人届次第一届其次届第三届第四届发来回执的代表数盘315356408711发来回执但未与会的代表数量89115121213未发回执而与会的代表数量5769751042.问题的求解依据上上表的数据,可知本届发来回执的数量为755.依据上表的数据,可以知道发来回执但未与会的代表数和未发回执但与会的代表与发来回执数量间的关系。定义1:未知与会率=未发回执但与会的代表的数量/发来回执的代表数量定义2:缺席率=发来回执但未与会的代表数/发来回执的代表数量依据以上定义,可以得到往届的缺席率和未知与会率,如下表所列。往届的缺席率和未知与会率届次第一届其次届第三届第四届缺席率0.2825400.3230340.2965690.299578未知与会率0.1809520.1938200.1838240.146273从表中可以看出,缺席率始终保持在0.3左右,而未知与会率却改变较快。为此,认为第五届的缺席率仍为0.3。这样,缺席的人数为755人X0.3=226.5人。为了保守起见,对226.5人进行向下取整,即缺席的人数为226人。未知与会率改变相对猛烈,不适合应用比例方法确定,同时由于数据有限,所以应用灰色预料方法比较合适。从实际问题的角度,认为以未知与会率为探讨对象较为合适。将往届的未知与会率数据代入前述程序,并对输入数据和预料数据做相应修改,可很快得到本届的未知与会率为0.1331,所以木届未发回执但与会的代表数量为755人X0.1331=100.4905人。同样保守考虑,向上取整为101人。这样就可以预料本届与会代表的数量为755人+101人-226人=630人。