GM11模型及其Matlab实现.docx

上传人:b****3 文档编号:1942625 上传时间:2022-10-25 格式:DOCX 页数:13 大小:55.58KB
下载 相关 举报
GM11模型及其Matlab实现.docx_第1页
第1页 / 共13页
GM11模型及其Matlab实现.docx_第2页
第2页 / 共13页
GM11模型及其Matlab实现.docx_第3页
第3页 / 共13页
GM11模型及其Matlab实现.docx_第4页
第4页 / 共13页
GM11模型及其Matlab实现.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

GM11模型及其Matlab实现.docx

《GM11模型及其Matlab实现.docx》由会员分享,可在线阅读,更多相关《GM11模型及其Matlab实现.docx(13页珍藏版)》请在冰豆网上搜索。

GM11模型及其Matlab实现.docx

GM11模型及其Matlab实现

灰色系统预测GM(1,1)模型及其Matlab实现

三天三夜72小时:

读懂题目-》查找文献资料-》选择题目-》重查找文献资料-》

精读其中几篇-》查找资料的资料。

在数学建模中常常会遇到数据的预测问题,有些赛题中,预测

占主导地位,例如:

2003年A题SARS的传播问题;

2005年A题长江水质的评价和预测问题;

2006年B题艾滋病疗法的评价及疗效的预测问题;

2007年A题中国人口增长预测问题。

有些问题则是需要在求解的过程中进行预测,如2009年D题“会议筹备”对与会人数的确定等。

参考资料:

《灰色系统理论及其应用第五版》作者:

刘思峰,党耀国等著出版时间:

2010.05校超星数字图书馆可阅读。

灰色模型(GrayModel)有严格的理论基础,最大优点是实用。

用灰色模型预测的结果比较稳定,不仅适用于大数据量的预测,在数据量较少时(>3)预测结果依然较准确。

预备知识

(1)灰色系统

白色系统是指系统内部特征是完全已知的,即人们不仅知道该系统的输入——输出关系,而且知道实现输入——输出关系的结构与过程;黑色系统是指系统内部信息完全未知的,即人们只知道该系统输入——输出关系,但不知道实现输入——输出关系的结构与过程;而灰色系统是介于白色系统和黑色系统之间的一种系统,灰色系统其内部一部分信息已知,另一部分信息未知或不确定。

例如,一个加有电压的电阻,也是一个系统,根据欧姆定律,I=U/R,当电阻的大小知道后,便可由多大电压算出能得到多大电流。

电压与电流之间有明确的关系或函数,这便是白色系统。

因此,这样的系统要求有明确的作用原理,一个有明确作用原理的系统必定是具有确定结构的,必定是有物理原型的。

然而许多社会经济系统都没有物理原型,虽然知道影响系统的某些因素,但很难明确全部因素,更不可能确定因素之间的映射关系。

这种没有确定的映射关系(函数关系)的系统是灰色系统。

(2)灰色预测

灰色预测,是指对系统行为特征值的发展变化进行的预测,对既含有已知信息又含有不确定信息的系统进行的预测,也就是对在一定范围内变化的、与时间序列有关的灰过程进行预测。

尽管灰过程中所显示的现象是随机的、杂乱无章的,但毕竟是有序的、有界的,因此得到的数据集合具备潜在的规律。

灰色预测是利用这种规律建立灰色模型对灰色系统进行预测。

目前使用最广泛的灰色预测模型就是关于数列预测的一个变量、一阶微分的GM(1,1)模型。

它是基于随机的原始时间序列,经按时间累加后所形成的新的时间序列呈现的规律可用一阶线性微分方程的解来逼近。

经证明,经一阶线性微分方程的解逼近所揭示的原始时间序列呈指数变化规律。

因此,当原始时间序列隐含着指数变化规律时,灰色模型GM(1,1)的预测是非常成功的。

目前,灰色模型GM(1,1)己广泛应用于工程技术、社会、经济、农业、生态、环境等各种系统的预测中。

1灰色预测基础知识

灰色系统理论认为:

系统的行为现象尽管是朦胧的,数据是复杂的,但它毕竟是有序的,是有整体功能的。

在建立灰色预测模型之前,需先对原始时间序列进行数据处理,经过数据预处理后的数据序列称为生成列。

对原始数据进行预处理,不是寻求它的统计规律和概率分布,而是将杂乱无章的原始数据列通过一定的方法处理,变成有规律的时间序列数据,即以数找数的规律,再建立动态模型。

灰色系统常用的数据处理方式有累加和累减两种,通常用累加方法。

灰色预测通过鉴别系统因素之间发展趋势的相异程度,并对原始数据进行生成处理来寻找系统变动的规律,生成有较强规律性的数据序列,然后建立相应的微分方程模型,从而预测事物的未来发展趋势。

灰色预测的数据是通过生成数据的模型所得到的预测值的逆处理结

果。

灰色预测是以灰色模型为基础的,在诸多的灰色模型中,以灰色系统中单序列一阶线性微分方程模型GM(1,1)模型最为常用。

下面简要地介绍GM(1,1)模型。

设有原始数据列x(0)=(x(0)

(1),x(0)

(2),…,x(0)(n)),n为数据个数。

如果根据x(0)数据列建立GM(1,1)来实现预测功能,则基本步骤如下:

(1)原始数据累加以便弱化随机序列的波动性和随机性,得到新数据序列:

x

(1)={x

(1)

(1),x

(1)

(2),…,x

(1)(n)}

其中,x

(1)(t)中各数据表示对应前几项数据的累加。

x

(1)(t)=,t=1,2,…,n

(2)对x

(1)(t)建立下述一阶线性微分方程:

即GM(1,1)模型。

其中,a,u为待定系数,分别称为发展系数和灰色作用量,a的有效区间是(-2,2),并记a,u构成的矩阵为灰参数=。

只要求出参数a,u,就能求出x

(1)(t),进而求出x(0)的未来预测值。

(3)对累加生成数据做均值生成B与常数项向量Yn,即

B=

Yn=

(4)用最小二乘法求解灰参数,则

=(BTB)-1BTYn

(5)将灰参数代入,并对进行求解,得

(1)(t+1)=(X(0)

(1)-)+

由于是通过最小二乘法求出的近似值,所以

(1)(t+1)是一个近似表达式,为了与原序列x

(1)(t+1)区分开来,故记为

(1)(t+1)。

式中t为时间序列,可取年、季或月。

(6)对函数表达式

(1)(t+1)及

(1)(t)进行离散,并将二者做差以便还原x(0)原序列,得到近似数据序列(0)(t+1)如下:

(0)(t+1)=

(1)(t+1)-

(1)(t)

(7)对建立的灰色模型进行检验,步骤如下:

计算x(0)(t)与(0)(t)之间的残差e(0)(t)和相对误差q(0)(t):

e(0)(t)=x(0)(t)-(0)(t)

q(0)(t)=e(0)(t)/x(0)(t)

等等。

(8)利用模型进行预测:

(0)={(0)

(1),(0)

(2),…,(0)(n),(0)(n+1),…,(0)(n+m)}

原数列的模拟未来数列的预测

应用举例

取某高校2000年~2005年的某专业招生数据建模,见表1。

表1某高校专业招生数据表

招生人数

2000

132

2001

92

2002

118

2003

130

2004

187

2005

207

以表1中的数据构造原始数据列X(0),即

X(0)={X(0)

(1),X(0)

(2),X(0)(3),X(0)(4),X(0)(5),X(0)(6)}

={132,92,118,130,187,207}

对X(0)进行一次累加(1—AGO),生成数列:

X

(1)(k)=X(0)(i)即

X

(1)={X

(1)

(1),X

(1)

(2),X

(1)(3),X

(1)(4),X

(1)(5),X

(1)(6)}

   ={132,224,342,472,659,866}

和数据阵B、数据列Yn

B=,Yn=(92,118,130,187,207)T

经计算可得

=[a,u]T

进一步得到灰色预测模型GM(1,1)为

(1)(k)=(X(0)

(1)-)+

=(132+277.0137483)-277.0137483

=409.0137483-277.0137483

预测值及预测精度见表2。

表2某高校专业招生预测值及预测精度表

GM(1,1)模型

计算值

1—AGO

拟合相对

误差(%)

2000

132

132

132

132

0

0

2001

225.0608796

224

93

92

1

-1

2002

339.2954418

342

114

118

4

3.38

2003

479.52123

472

140

130

-10

-7.69

2004

651.6519

659

172

187

15

8

2005

862.9466129

866

211

207

-4

-1.93

2006

1122.316167

259

252

-7

-2.78

 

由表2知预测精度较高。

2006年某专业招生人数预测值为259人。

由于人数为整数,所以结果取整数部分。

GM(1,1)也是一种长期预测模型,在没有大的市场波动及政策性变化的前提下,该预测值应是可信的。

众所周知,影响招生人数的因素很多且难以预测。

因此,在采用灰色系统理论进行定量预测时,如果存在对预测对象影响较大的因素,就要在定性分析的基础上,寻找原始数据信息的突变点的量化值,然后再对预测值进行必要的修正,使预测值更接近实际情况,提高预测值的可信度,为科学决策提供可靠的数据。

另外,若作长期预测,要考虑对上限值的约束条件。

2灰色预测的MATLAB程序

2.1典型程序结构

灰色预测中有很多关于矩阵的运算,这可是MATLAB的特长,所以用MATLAB是实现灰色预测过程的首选。

用MATLAB编写灰色预测程序时,可以完全按照预测模型的求解步骤,即

(1)对原始数据进行累加。

(2)构造累加矩阵B与常数向量Yn。

(3)求解灰参数。

(4)将参数带入预测模型进行数据预测。

下面以某公司收入预测问题为例介绍灰色预测的MATLAB实现过程。

已知某公司1999—2008年的利润为(单位:

元/年):

[89677,99215,109655,120333,135823,159878,182321,209407,246619,300670],现在要预测该公司未来几年的利润情况。

具体的MATLAB程序如下:

clear

symsau;

c=[au]';%灰参数c

A=[89677,99215,109655,120333,135823,159878,182321,209407,246619,300670];%原始数据

Ago=cumsum(A);%原始数据一次累加

n=length(A);%原始数据个数

fori=1:

(n-1)

C(i)=(Ago(i)+Ago(i+1))/2;%生成累加矩阵

end

%计算待定参数的值

Yn=A;Yn

(1)=[];

Yn=Yn';

E=[-C;ones(1,n-1)];

c=inv(E*E')*E*Yn;

c=c';

a=c

(1);u=c

(2);

%预测后续数据

F=[];F

(1)=A

(1);

fori=2:

(n+10)

F(i)=(A

(1)-u/a)/exp(a*(i-1))+u/a;

end

G=[];G

(1)=A

(1);

fori=2:

(n+10)

G(i)=F(i)-F(i-1);%得到预测出来的数据

end

t1=1999:

2008;

t2=1999:

2018;

G

plot(t1,A,'o',t2,G)%原始数据与预测数据的比较

运行该程序,得到的预测数据如下:

G=

1.0e+006*Columns1through14

0.08970.08930.10340.11960.13850.16020.1854

0.21460.24830.28730.33250.38470.44520.5152

Columns15through20

0.59620.68990.79840.92391.06911.2371

该程序还显示了预测数据与原始数据的比较图。

2.2灰色预测程序说明

(1)先熟悉程序中各条命令的功能,以加深对灰色预测理论的理解。

(2)在实际使用时,可以直接套

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1