灰色理论基础(自己总结)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
灰色理论
在灰色理论中,通常用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); %列向量,用来给变量申请内存