灰色模型算法文档
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
灰色预测算法及相关程序
1 引言 (3)
2算法的基本原理 (3)
2.1 GM(1,1)模型: (3)
2.2生成数 (4)
2.2.1累加生成 (4)
2.2.2累减生成 (5)
3算法的具体实现流程 (6)
3.1 算法流程图 (6)
3.2 实现步骤 (8)
3.3 数据准备与预处理 (10)
4 算法程序实现 (10)
4.1 程序使用说明 (10)
4.2 程序源代码 (11)
4.3 程序运行 (16)
4.3.1程序运行及运行环境说明 (16)
4.3.2 输入数据 (16)
4.3.3 输出数据 (16)
5 参考文献 (16)
灰色预测算法
1 引言
灰色预测(grey prediction)是利用灰色系统理论就灰色系统所作的预测.灰色系统理论认为,尽管系统表象复杂,数据散乱,信息不充分,但作为系统,它必然有整体功能和内在规律,必然是有序的.现有的分析方法大多依据过去的大量数据,按照统计方法分析其规律,这样不仅受数据量的限制,而且准确程度不高.而灰色系统理论把随机量看作是在一定范围内变化的灰色量,对灰色量的处理不是寻求它的统计规律和概率分布,而是对原始数据加以处理,将杂乱无章的原始数据变为规律性较强的生成数据,通过对生成数据建立动态模型,来挖掘系统内部信息并充分利用信息进行分析预测.
目前,灰色系统理论用于预测主要通过GM(m,n)模型,该模型是灰色系统理论的量化体现,可用于以下几个方面的预测:
(1)数列预测:对某个事物发展变化的大小与时间进行预测.
(2)灾变预测:预测灾变发生的时间或者说是异常值出现时区的分布.如人体的血压过高或过低的时间预测.
(3)季节性灾变预测:对发生在每年特定时区的事件和命题作预测.
(4)拓扑预测:即事物整体的预测,亦称波形预测.其特点是对于预先给定的多组数值建立GM(1,1)模型群,根据预测结果构造出整个波形.(5)系统预测:对系统中众多变量间相互协调关系的发展变化所进行的预测.
2算法的基本原理
2.1 GM(1,1)模型:
灰色模型GM(1,1) GM(1,1)的含义为1阶,1个变量的灰色模型,它是在数据生成的基础上建立如下灰微分方程:
)0(
(
)
+)
()1(
k
b
az
k
x=
式中)()0(k x 为原始序列,)0()1(AGOx x =,)1(5.0)(5.0)()1()1()1(-+=k x k x k z .a 称
为发展系数,它反映)1(x 和)0(x 的发展态势;b 称为灰作用量,它的大小反映数据
变化的关系.对序列})(,),3(),2({)1()1()1()1(n z z z z =,因为)()1(k z 为
)()1(k x 与)1()1(-k x 的平均值,故记)1(z 为MEAN )1(x ,即
=)1(z MEAN )1(x
b k az k x =+)()()1()0(的白化型为:
b ax dt dx =+)1()
1(
初始值用
)1()1()0()1(x x =,则其解为: a b e a b x t x t a +⎪⎭⎫ ⎝
⎛-=--)1()0()1()1()( 该式用于预测时称为时间响应函数,表示为
a b e a b x k x k a +⎪⎭⎫ ⎝
⎛-=+-)1()1(ˆ)0()1( 累减还原:
)(ˆ)1(ˆ)1(ˆ)1()1()0(k x k x k x
-+=+ 其中(a,b )可通过最小二乘求解。
2.2生成数
灰色模型是将随机数经生成后变为有序的生成数据,然后建立微分方程,寻找生成数据的规律,再将运算结果还原的一种方法,其基础是数据的生成.常用的生成方式有累加生成和累减生成.
2.2.1累加生成
累加生成是将原始数据通过累加以生成新的数列.记原始数列为)0(x :
)}(,),2(),1({},,2,1|)({)0()0()0()0()0(n x x x n k k x x ===
记)0(x 的生成数列AGO )0(x 为)1(x :
)}(,),2(),1({},,2,1|)({)1()1()1()1()1(n x x x n k k x x ===
其中
n k k x k x k x x x ,,3,2),()1()(),1()1()0()1()1()0()1( =+-==. 称)1(x 为)0(x
的一次累加生成,记为1—AGO . 定义)0(x 的2—AGO 为)2(x
:)2(x =AGO )1(x . 一般定义)0(x 的r 次AGO 为)(r x :)(r x =AGO )1(-r x .
原始数据经累加生成后,其随机性明显减小,而规律性将增加.对于非负的数据序列,累加生成的是一个递增的序列.
2.2.2累减生成
累减生成是累加生成的逆运算,它是通过将原始序列前后两个数据相减生成新的数据序列.累减生成可将累加生成还原为非生成数列,在建模中获得增量信息.即:
IAGO )0()1(x x =
3算法的具体实现流程3.1算法流程图
3.2 实现步骤
(1)数据检验与处理:
具体算法:根据原始序列)0(x 的级比)()0(k σ的大小,判断GM (1,1)建模的可行性.)()0(k σ的定义为:
3,)()1()()0()0()0(≥-=k k x k x k σ
)()0(k σ可揭示数列)0(x 的平滑情况或指数律的符合情况,若)()0(k σ为常数,则
)0(x 具有白指数律(即确切的指数律)
,当然,此时无建立GM (1,1)模型的价值.GM (1,1)建模希望的是)()0(k σ的取值区间长度(覆盖的测度)接近于零而不等于零,其可容区为(0.1353,7.389),即
)389.7,1353.0()()0(∈k σ
参数或级比的可容区是GM (1,1)建模的基本条件,但不是实用条件,要想建立满意有效的GM (1,1)模型,参数或级比应落于界区内.设n 是原始数据的个数,则我们有:
a 的界区:⎪⎭
⎫ ⎝⎛++-∈12,12n n a ; )()0(k σ的界区:⎪⎪⎭⎫ ⎝⎛∈++-1212)0(,)(n n e e k σ,若⎪⎪⎭
⎫ ⎝⎛∈++-1212)0(,)(n n e e k σ,则认为)
0(x 是可作GM (1,1)建模的.
(2)建立模型GM(1,1)
具体算法:利用算法思想的介绍建立模型,则可得累加预测值和预测值: 模型的白化型为:
b ax dt
dx =+)1()
1( 初始值用)1()1()0()1(x x =,则其解为:
a b e a b x t x t a +⎪⎭⎫ ⎝
⎛-=--)1()0()1()1()(