1. 生成数
在研究社会系统、 经济系统等抽象系统时, 往往要遇到随机干扰(即“噪声”)。
灰色系统理论把一切随机量都看作灰色数。
灰色数
——在指定范围内变化的所有白色数的全体。
- 处理:利用数据处理寻找数据间的规律
- 数的生成:数列数据处理后产生新数列,以此挖掘和寻找数的规律性方法
- 方法:累加生成、累减生成、加权累加
累加生成
把数列 x 各时刻数据依次累加的过程叫做累加过程(AGO),累加所得的新数列,叫做累加生成数列
。
x0 = (x(0)(1), x(0)(2),...,x(0)(n)) ,累加生成数列记为 x(1) = (x(1) (1),..., x(1)(n)) ,且 x(0)与 x(1)满足:
一般地,经济数列等实际问题的数列皆是非负数列,累加生成可使非负的摆动与非动的数列或任意无规律性的数列转化为非减的数列
。
均值生成
称 x(0)(k −1) 与 x(0)(k) 为数列 x(0) 的一对(紧)邻值, x(0)(k −1) 称为前值, x(0)(k) 称为后值。
z(0)(k) = α x(0)(k) + (1−α)x(0)(k −1),α ∈[0,1]
为由数列 x(0) 的邻值在生成系数(权) α 下的邻值生成数(或生成值)。
2. 灰色模型GM
Grey Model
: 定义灰导数与灰微分方程,进而用离散数据列建立微分方程形式的动态模型(近似、非唯一)
离散随机数→生成→生成数(较有规律)→建立微分方程
- 新生成的序列,看起来像一个指数序列
- 可用一个指数曲线乃至一条直线的表达式来逼近
- 构造一阶常微分方程来求解拟合曲线的函数表达式
对于x(0)的AGO生成数列x(1),定义灰导数为:dx(1)(k) = x(0)(k) = x(1)(k) − x(1)(k −1),
令 z(1)为数列 x(1) 的紧邻均值数列,即z(1)(k) = 0.5x(1)(k) + 0.5x(1)(k −1),k = 2,3,...,n
GM(1,1)的灰微分方程模型为:
dx(1)(k) + az(1)(k) = b → x(0)(k) + az(1)(k) = b
x(0)(k) 称为灰导数, a 称为发展系数, z(1)(k) 称为白化背景值, b 称为灰作用量。
😅😅😅
预测预报
由模型 GM(1,1)所得到的指定时区内的预测值,根据实际问题的需要,给出相应的
预测预报。
** 灾变预测**
给定原始数据列 x(0) 。如果指定某个定值ζ ,并认为 x(0)中那些大于ζ 的点为具有异常值的点,然后将这些数据挑出来另组一数列,则称这一数列为上限灾变数列。例如,给定数列 x (0) = (3,0.7,8,5) ,若取ζ = 1,则其上限灾变数列为xζ0 = (3,8,5)
规定ζ = 320 ,并认为 x (0) (i) ≤ ζ 为旱灾。预测下一次旱灾发生的时间。
写出初始数列 x(0)= (390.6,412,320,559.2, 380.8,542.4,553,310,561,300,632,
540,406.2,313.8,576,587.6,318.5)
下限灾变数列为xζ0 = (320,310,300,313.8,318.5),对应时刻t = (3,8,10,14,17)
将数列 t 做 1 次累加,得t(1) = (3,11,21,35,52)
预测到第 6 个及第 7 个数据为t(0)(6) = 22.034 , t(0)(7) = 28.3946
clc,clear
a=[390.6,412,320,559.2, 380.8,542.4,553,310,561,...
300,632,540,406.2,313.8,576,587.6,318.5]';
t0=find(a<=320);n=length(t0);
t1=cumsum(t0); %累加运算
B=[-0.5*(t1(1:end-1)+t1(2:end)),ones(n-1,1)];Y=t0(2:end);
r=B\Y
y=dsolve('Dy+a*y=b','y(0)=y0');
y=subs(y,{'a','b','y0'},{r(1),r(2),t1(1)});
yuce1=subs(y,'t',[0:n+1])
%为提高预测精度,先计算预测值,再显示微分方程的解
y=vpa(y,6) %其中的 6 表示显示 6 位数字
yuce=diff(yuce1); %作差分运算,进行数据还原
yuce=[t0(1),yuce]
yuce_new=yuce(n+1:end) %求得的两个预测值
模型是否靠谱,还需要进行模型检测——残差检验