灰色预测GM(1,1)模型的Matlab实现
朱登远1,常晓凤2
【摘 要】 介绍了GM(1,1)模型的基本原理和建模步骤,利用Matlab实现了程序化、智能化的灰色预测GM(1,1)模型。通过实例验证了其能够快速、精确地进行计算,可以帮助工程人员对所得数据进行准确性分析和预测。 【期刊名称】河南城建学院学报 【年(卷),期】2013(022)003 【总页数】7
【关键词】 灰色预测;GM(1,1)模型;Matlab;算法;精度检验
灰色系统理论是20世纪80年代由我国邓聚龙教授提出的一种数学方法,可用来解决小样本的信息不完备系统的复杂问题,在岩土工程中得到了广泛关注[1-2]。如果有一个程序能够使工程人员只需输入数据,而不需编写计算公式,就可以得到分析预测结果,将会使灰色系统理论更好地应用在岩土工程中,因此有必要对其进行编程和算法实现,使其程序化、智能化。
在Matlab语言系统中,几乎所有的操作都是以矩阵操作为基础,而在灰色模型预测过程中,需要进行大量的矩阵运算,Matlab在这方面显示了独到之处。将Matlab和灰色模型结合,可以实现系统预测,提高计算的效率[2]。国内外学者结合相关领域做了一些研究并取得了很大进展。张艳萍[3]研究了基于Matlab的灰色系统预测,并结合广东省批发零售业预测进行了GM(1,1)模型的Matlab实现;曹玉珍[4]进行了基于Matlab的GM(1,1)模型在广州市降尘预测中的应用研究;彭利平[5]进行了基于Matlab的GM(1,1)模型在机械工业中的应用研究;李朝阳[6]进行了基于Matlab的GM(1,1)模型的大气污
染物浓度预测;梁智勇[7]用Matlab实现了GM(1,1)模型的供电量预测;陈刚[2]研究了GM(1,1)模型在建筑物沉降预测中的应用及Matlab实现;唐丽芳[8]和周亚非[9]分别结合某高校教师人数预测和住宿餐饮业收入增加值预测研究了GM(1,1)模型的Matlab实现及其应用。虽然这些学者都对GM(1,1)模型进行了研究,并在此基础上给出了对应的Matlab算法,但由于各种原因,算法表达各不相同、不够全面且不规范,其正确性没有得到很好验证,有的算法用Matlab运行出现错误,无法使用。笔者在此基础上研究分析,综合其优点、改正不必要的细节和错误,重新整理编写GM(1,1)模型Matlab算法,以增强Matlab在GM(1,1)模型灰色预测中的实用性和通用性,方便工程人员使用。
1 GM(1,1)模型原理
灰色预测GM(l,l)模型是一个拟微分方程的动态系统[10],其建模的实质是对原始数据先进行一次累加生成,使生成的数据序列呈现一定规律,而后通过建立一阶微分方程模型,求得拟合曲线,用以对系统进行预测。具体过程如下: (1)给定原始序列 (2)1-AGO生成序列 其中x(1)(k)= (3)紧邻均值生成序列 (4)建立灰色微分方程 其中a、u为未知参数,记为 (5)对应的白化方程为 (6)解的离散化形式为
(7)I-AGO还原序列
2 模型精度检验
(1)残差检验。 绝对残差序列 相对残差序列 平均误差 (2)后验差检验。
原始数据的平均值、均方差计算 绝对残差的平均值、均方差计算 后验差比值计算 小误差概率计算 (3)关联度检验。
3 Matlab算法实现 4 应用实例分析
为了检验GM(1,1)模型的Matlab算法正确性与通用性,选用以下两个实例进行验证。
实例1:已知有11个月的某建筑物沉降观测数据,现建立GM(1,1)模型,进行模型精度检验,并对12 月份的沉降量进行预测,实际观测数据如表 2 所示。显然,x0=[4.8,5.2,5.4,5.1,5.9,7.6,7.9,8.0,8.6,8.5,9.1],x=[1,2,3,4,5,6,7,8,9,10,11,12]。
Matlab 运行结果:xx0=[4.800 0,5.176 7,5.536 8,5.921 9,6.333 9,6.774 5,7.245 7,7.749 8,8.288 9,8.865 5,9.482 2,10.141 8],e0=