当前位置:文档之家› 灰色理论基础(自己总结)

灰色理论基础(自己总结)

灰色理论
在灰色理论中,通常用GM (n, m )来表示灰色模型,其中,n 为差分次数,m 为变量的个数。

对于沉降的预测,工程研究人员一般采用GM (1, 1)来进行预测。

等时距GM (1, 1)模型
等时距GM (1, 1)模型是最常用的一种灰色预测模型,也是非等时距GM (1,1)模型的建模基础。

设观测到的原始等时距数据序列为:
{}[0](0)(0)(0)(0)(1),(2),,(),,()X x x x k x n =⋅⋅⋅⋅⋅⋅
其中,(0)()x k 为k t 时刻对应的初始数值,时间步长1i i t t c +-=为常数,1,2,3i n =⋅⋅⋅。

对[0]X 中的数据经过一次累加(1-AGO )运算,得到光滑的生成数列:
{}[1](1)(1)(1)(1)(1),(2),,(),,()X x x x k x n =⋅⋅⋅⋅⋅⋅
其中,(1)(0)1()()k k i i x t x
t ==∑,1,2,3k n =⋅⋅⋅。

[1]X 的均值数据序列[1]Z 可以表示为:{}[1](1)(1)(1)(1)(1),(2),,(),,(1)Z z z z k z n =⋅⋅⋅⋅⋅⋅-
其中,(1)(1)(1)()1/2()(1)z k x k x k ⎡⎤=++⎣⎦。

(1)()x k 的GM (1, 1)模型白化形式的微分方程可表示为:
(1) 其中,a ,b 为待定参数,可以由式(1)离散化后求得,式(1)在区间[,1]k k +离散后的方程为:
(0)(1)(1)()x k az k b ++= (2)
离散的过程:
式(1)在区间[,1]k k +上积分,有:
11
1(1)(1)()()k k k k
k k
dx
t ax t dt bdt ++++=⎰⎰⎰ 1(1)(1)(1)(0)()(1)()(1)
k k
dx
t x k x k x k +=+-=+⎰
所以,式(1)离散后的方程为式(2)。

利用最小二乘法可以从式(2)中求得参数a 和b :
(0)(1)(0)(1)(1)()(1)=-()x k az k b x k az k b Y Ba ++=⇒++⇒= 式中,(1)(0)(1)(0)(1)(0)(1), 1(2)(2), 1(3), Y=, , 1 (1),1()z x a z x B a b z n x n ⎡⎤⎡⎤-⎢⎥⎢⎥-⎡⎤⎢⎥⎢⎥==⎢⎥⎢⎥⎢⎥⋅⋅⋅⋅⋅⋅⎣⎦⎢⎥⎢⎥⎢--⎥⎢⎥⎣⎦⎣⎦
把求得的参数代入式(1)中,可以得到白化方程的解为: (1)1()/at x t c e b a -=+
当t=1时,(1)(1)(0)(1)(1)(1)()=(1)(1)()=((1)/)/a t x t x x x t x b a e b a --=⇒-+
所以GM (1,1)模型的时间相应数据序列为:
k =1,2,3….n 。

还原到初始数据为:
k =1,2,3….n 。

预测精度分析及检验
根据GM (1,1)模型计算得到的预测值是否可靠,必须通过一定的检验手段和评价标准进行验证,常采用关联度分析或后验差检验来保证预测的可靠性,这里主要介绍后一种检验方法。

后验差检验方法是根据残差的均方差2S 和原始数据的均方差1S 的比值来判断的。

原始数据
序列为{}(0)()x k ,预测数据序列为{}
(0)()x k ,其残差为: (0)
(0)()()()k x k x k ε=-
^(0)11
1()n k S x x k n ===∑
^211()n k S k n εε===∑ 后残差比值为21/C S S =
小误差概率为:
对[1]X 可以建立GM (1,1)模型的条件:
光滑比:(0)(1)()()/(1)k x k x k ρ=-
级比:(1)(1)()()/(1)k x k x k σ=-
当[1]3()0.5 ()()(1,1.5]k k k X ρσ><∈,说明原始数据光滑,(说明满足准指数规律),可以对[1]X 可以建立GM (1,1)。

非等时距GM (1,1)模型
当时间步长1i i t t c +-≠(常数)时,原始数据序列为非等时距数据序列,在实际工程中得到的原始数据往往属于这一类型的数据。

因此必须将非等时距数据序列转化为等时距序列,在利用建立等时距GM (1,1)模型的方法建立非等时距GM (1,1)模型。

利用三次样条插值法(cubic spline interpolation method )将非等时距数据序列转化为等时距数据序列,在按照等时距GM (1,1)模型进行预测。

三次样条插值法用Matlab 实现的代码及实例
代码:
pp=csape(x,y,’conds ’,’valconds ’)
x,y 为初始数据序列
conds 为初始边界条件:
1.边界为一阶导数,用complete 表示,其值在valconds 中给出;
2.边界为二阶导数,用second 表示,其值在valconds 中给出,缺省时为[0,0];
3.非扭结条件,用not-a-knot 表示;
4.周期条件,用periodic 表示
一般选用前两种。

实例:
Clear;
x=[1,2,4,5];
y=[1,3,4,2];
pp=csape(x,y,’complete ’,[-1,3]);
xx=1:0.1:5;
yy=ppval(pp,xx);
plot(xx,yy).
等时距GM (1,1)模型用Matlab 实现的程序代码:
y=input(‘请输入原始数据序列’);
n=length(y); %原始数据序列的维数
yy=ones(n,1); %列向量,用来给变量申请内存
yy(1)=y(1);
for i=2:n
yy(i)=yy(i-1)+y(i);
end
%yy为1-AGO累加后生成的数列
%接下来求B向量
B=ones(n-1,2);
For i=1:n-1
B(i,1)=-(yy(i)+yy(i+1))/2; %B矩阵的第一列元素
B(i,2)=1; %B矩阵的第二列元素
end
BT=B’; %B的转置矩阵
%接下来求Y矩阵
For j=1:n-1
YN(j)=y(j+1); %此处所求的YN矩阵为行向量end
YN=YN’;
A=inv(BT*B)*BT*YN; %A为2维列向量
a=A(1);
b=A(2);
t=b/a;
%灰色模型的预测数据
t-test=input(‘请输入需要预测的个数’);
for i=1:n+t-test;
yys(1)=y(1);
yys(i+1)=(y(1)-t)*exp(-a*i)+t;
end
%还原到原始数据
For j=n+t-test:-1:2
ys(j)=yys(j)-yys(j-1);
end
x=1:n;
xn=2:t-test+n;
yn=ys(2:n+t-test);
plot(x,y,’r’,xn,yn,’b’)。

相关主题