编辑: huangshuowei01 | 2019-07-10 |
1 灰色预测模型 1.1 GM(1,1)模型 GM(1,1)模型是一阶单变量的微分方程模型, 其建立的基本思路如下:若原始序列 x(0) = {x(0) (1),x(0) (2),…,x(0) (n)} 满足 x(1) (k) = ∑ k i =
1 x(0) (i) 式中: x(1) = {x(1) (1),x(1) (2),…,x(1) (n)} (1) 则称 x(1) (k) 为x(0) 的一次累加生成,记为 1?AGO. 在式(1)的基础上建立白化微分方程: dx(1) dt + ax(1) = u 式中 a 和u为待辨识参数,记参数列为 α ^ 且α^=[a,u]′ 根据最小二乘法求解 α ^ ,得: α ^ = (ΦT Φ) -1 ΦT Y 式中: Φ = - z(1) (2)
1 - z(1) (3)
1 ? ? - z(1) (n)
1 é ? ê ê ê ê ê ù ? ú ú ú ú ú Y = x(0) (2) x(0) (3) ? x(0) (n) é ? ê ê ê ê ê ù ? ú ú ú ú ú Z(1) (k) =
1 2 (x(1) (k) + x(1) (k - 1)) 由此可得 GM(1,1)的离散响应方程为 x ^ (1) (k + 1) = [x(0) (1) - u a ]e-ak + u a 对x^(1) (k + 1) 作一次累减还原得到预测模型 x ^ (0) (k + 1) = (x(0) (1) - u a )(1 - ea )e-ak 1.2 精度检验 模型建立后需要进行精度检验,主要包括:残差 检验、后验差检验以及关联度检验,相应的计算程序 均由 M 语言编写,精度等级参照如表
1 所示. 表1模型精度检验等级参照表 模型精度 等级 相对 误差 α 关联度 ε 均方差 比值 C0 小概率 误差值 P0 一级(优) 0.01 0.90 0.35 0.95 二级(良) 0.05 0.80 0.50 0.80 三级(合格) 0.10 0.70 0.65 0.70 四级(不合格) 0.20 0.60 0.80 0.60 1.3 GM(1,1)改进模型 文中引用最常用的几种改进模型,包括残差 GM(1,1)预测模型、残差均值 GM(1,1)预测模型以 及加常数优化的 GM(1,1)预测模型. 1.3.1 残差 GM(1,1)模型 建立残差模型的步骤如下:首先定义残差为 ε(0) (k) = x(1) (k) - x ^ (1) (k) k = i,i + 1,…,n 令k=i,i + 1,…,n ,得到残差序列: ε(0) (k) = (ε(0) (i),ε(0) (i + 1),…,ε(0) (n)) 为便于表示,令n′ = n - i + 1: ε(0) (k) = (ε(0) (1′),ε(0) (2′),…,ε(0) (n′)) 对ε(0) (k) 建立 GM(1,1)模型可以得到: ε ^ (1) (k + 1′a′)[ε(0) (1′) - u′ a′ ]e-a′k 将上述残差的 GM(1,1)模型加入原模型中得: x ^ (1) (k + 1) = [x(0) (1) - u a ]e-ak + u a + δ(k - i)( - a′)[ε(0) (1′) - u′ a′ ]e-a′k 式中: δ(k - i) = 1,k ≥ i 0,k <
i { 1.3.2 残差均值 GM(1,1)模型 如果按原始数据 x0(i) 建立的 GM(1,1) 模型, 经检验不合格,则对原模型进行修正的最简单的方 法,就是对模型预测值 x ^ (0) (k) 都加上残差平均值 ε - ,即修正后的预测值为 x ^ (0) (k) + ε - ,此新模型为残 差均值修正模型. 1.3.3 序列变换 GM(1,1)模型 针对波动数据预测精度受限的问题,在原始序 列中每一个数据均加上同一常数 b,以此来弱化数 据波动带来的影响. 通过研究不同 b 值下衡量指标 的变化关系,找出最优 b 值. 其中,衡量指标设定 为:建模平均相对精度 P0 、残差方差 σ 、关联度 ε 、 绝对平均误差 E - 、后验误差 C. 其中: E - = x(0) (k) - x ^ (0) (k)
2 人机交互实现 本平台通过 MATLAB 的图形用户界面( GUI) 的设计环境来实现人机交互界面设计,设计主要包 括GUI 界面设计和回调函数的设计,分别对应生成. fig 和.m 文件. 仿真优化平台界面设计如图
1 所示. ・
1 4 ・ 第3期冯洲鹏,等:基于 MATLAB GUI 的灰色预测仿真优化平台设计 图1仿真平台界面 GUI 界面设计通过设置菜单和各个控件,并对 其进行位置布置和属性编辑来实现,在设计好 GUI 界面之后,编写菜单和各个控件的回调函数的程序 代码,实现各个控件相应的功能. 其中回调函数均 采用 M 语言设计. 该平台设计有多个功能模块,每 个模块包含多个子程序,结构控制流程如图