王志欣,关晋瑞
(太原师范学院 数学与统计学院,山西 晋中 030619)
考虑非对称代数Riccati方程
XCX-AX-XD+B=O,
(1-1)
国内外很多学者提出了许多求解非对称代数Riccati方程的数值解法[5-16],如不动点迭代法、牛顿迭代法、交替线性化隐式迭代法、保结构加倍算法等.牛顿迭代法和保结构加倍算法是收敛较快的两个算法,在一般情形下具有二次收敛率,但是牛顿迭代法运算量较大,而保结构加倍算法运算量较小,因此保结构加倍算法是求解非对称代数Riccati方程的一类较好的算法.交替线性化隐式迭代法虽在一般情形下具有线性收敛率,但是在迭代过程中运算量小,因此交替线性化隐式迭代法是线性收敛方法中较好的一类算法.不动点迭代法形式简单,在一般情形下也具有线性收敛率,但是在每步迭代中一般需要求解一个Sylvester矩阵方程,运算量比较大,并且它的收敛速度相比于其它算法也较慢,因此不动点迭代法存在很大的改进空间.
本文针对一类常用的不动点迭代法提出了一种改进,其基本思想是通过内外迭代求解以减少运算量.由于不动点迭代法在每步求解Sylvester方程时运算量较大,因此本文提出在每步求解Sylvester方程时使用Smith算法,进而形成一类不精确的迭代算法.这类不精确算法不仅减少了运算量,而且缩短了计算时间.
本节中,我们介绍一些要用到的符号、术语以及基本概念.
在本文中Rm×n表示所有m×n阶实矩阵,Cm×n表示所有m×n阶复矩阵,O,o,0分别表示零矩阵,零向量,数零,A⊗B表示矩阵的Kronecker乘积,vec(A)表示矩阵A的拉直向量,其中vec(·)称为拉直算子.
若m×n阶实矩阵A=(aij)m×n满足aij≥0(1≤i≤m,1≤j≤n),则称A为非负矩阵,记为A≥O.若有两个m×n阶实矩阵A=(aij)m×n,B=(bij)m×n满足aij≥bij(1≤i≤m,1≤j≤n),则记为A≥B.若n维实矩阵A的非对角元素都小于等于0,则称A为Z-矩阵.Z-矩阵都可以写成A=sI-B(s≥0)的形式,其中B是非负矩阵.如果s≥ρ(B),其中ρ(B)为B的谱半径,则称A为M-矩阵.若有s>ρ(B),则称A是非奇异的M-矩阵;
若有s=ρ(B),则称A是奇异的M-矩阵.
下面是M-矩阵的一些重要结论.
引理2.1[17]设A=(aij)∈Rn×n是Z-矩阵,则下列条件等价:
①A是非奇异的M-矩阵;
②A-1≥O;
③存在正向量x>o,使得Ax>o.
引理2.2[17]设A是非奇异的M-矩阵,B为Z-矩阵.如果A≤B,则B也是非奇异的M-矩阵.特别地,对任意的正实数α,B=αI+A也是非奇异的M-矩阵.
引理2.3[13]若A是一个非奇异的M-矩阵,选择一个合适的α且满足α>0,定义T(α)=(αI-A)(αI+A)-1,则有
ρ(T(α))<1,∀α>0.
关于非对称代数Riccati方程(1-1)的解,我们有如下结论.
引理2.4[6]若K是非奇异的M-矩阵或不可约奇异的M-矩阵,则方程(1-1)存在唯一的最小非负解X.
下面我们简要介绍求解Sylvester方程的Smith算法[18].考虑Sylvester方程
MX+XN=Q,
(2-1)
这里M∈Rm×m,N∈Rn×n,Q∈Rm×n.选择合适的α>0,可以把(2-1)变为
(αI+M)X(αI+N)-(αI-M)X(αI-N)=2αQ,
上式分别左右乘(αI+M)-1,(αI+N)-1,进而可变成
X-UXV=W,
(2-2)
其中:
U=(αI+M)-1(αI-M),V=(αI-N)(αI+N)-1,
W=2α(αI+M)-1Q(αI+N)-1.
通过计算可得
是Sylvester方程(2-1)的精确解,并且当ρ(U)<1和ρ(V)<1时,这时解是收敛的.Smith提出一种加倍迭代方法:
Xk+1=Xk+U2kXkV2k,X0=W,k=0,1,2,….
(2-3)
进一步(2-3)可以归纳为
在Sylvester方程(2-1)中这个迭代序列{Xk}二次收敛于X*.
本节,我们提出一类不精确迭代法以求解方程(1-1),并给出此方法的收敛性分析.
文献[6]中提出了一类求解方程(1-1)的不动点迭代法,利用分裂
A=A1-A2,D=D1-D2,
其中:A1,D1为非奇异的M-矩阵,A2,D2为非负矩阵,可以将方程(1-1)写为
A1X+XD1=XCX+XD2+A2X+B,
按照上式迭代求解,便得到如下迭代形式
A1Xk+1+Xk+1D1=XkCXk+XkD2+A2Xk+B,
(3-1)
其中可以选择的几种分裂为
FP1:A1=diag(A),D1=diag(D);
FP2:A1=tril(A),D1=tril(D);
FP3:A1=A,D1=D.
下面我们仅考虑第三种分裂FP3,因此(3-1)变成
AXk+1+Xk+1D=XkCXk+B,
(3-2)
该方法在一般情形下具有线性收敛率,在临界情况下具有次线性收敛率.由于在每步迭代中都需要求解一个Sylvester方程,这会导致运算量比较大,因此我们考虑在每步迭代求解Sylvester方程时使用Smith算法以降低运算量,进而减少计算时间.
记Qk=XkCXk+B,并选取合适的α>0,我们可以把(3-2)首先变换成
(αI+A)Xk+1(αI+D)-(αI-A)Xk+1(αI-D)=2αQk,k=0,1,2,…,
同样地,上式分别左右乘(αI+A)-1,(αI+D)-1,变成
Xk+1-UXk+1V=Wk,k=0,1,2,…,
其中:
U=(αI+A)-1(αI-A),
V=(αI-D)(αI+D)-1,
Wk=2α(αI+A)-1Qk(αI+D)-1,
因此如果ρ(U)<1以及ρ(V)<1,我们就可以应用双层迭代求解(3-2),这样就得到了一个不精确的不动点迭代法,其中相应的外层Xk+1是通过内层迭代序列Xk,l得到的,
Xk,0=Wk,Xk,l+1=Xk,l+U2lXk,lV2l,l=0,1,2,….
(3-3)
算法的完整形式如下:
算法3.1 一类不精确迭代法(IFP)
step 1.输入矩阵A,B,C,D,令X0=O,并选取参数εout和ηinn分别为外层不动点迭代法和内层Smith算法的终止条件;
step 2.令k=0,ρ=1;
step 3.计算ρk=‖XkCXk-AXk-XkD+B‖/ρ;
step 4.如果k=0,则令ρ=ρ0;
step 5.如果ρk≤εout,则令X=Xk并且停止;
U=(αI+A)-1(αI-A),V=(αI-D)(αI+D)-1,
Qk=XkCXk+B,Wk=2α(αI+A)-1Qk(αI+D)-1,
step 7.Simth算法
step 7.1 令Xk,0=Wk,εinn=ηinnρk;
step 7.2 计算r0=‖UXk,0V‖;
step 7.3 如果r0<εinn,则令Xk+1=Xk,0并返回;
step 7.4 令l=0;
step 7.5 计算Xk,l+1=Xk,l+UXk,lV;
step 7.6 计算rl+1=‖Xk,l+1-UXk,l+1V-Wk‖/r0;
step 7.7 如果rl+1<εinn,则令Xk+1=Xk,l+1并返回;
step 7.8计算U=U2,V=V2;
step 7.9 令l=l+1,并转至步骤7.5;
step 8.令k=k+1并转至步骤3.
与基本的不动点迭代法相比,这种不精确的不动点迭代法在每步求解Sylvester方程时U,V都是不变的,因此运算量和存储量都会减少.除此之外,我们还注意到,可以改变每一次外部迭代相对应的内部迭代步数,就可以调整其收敛速度,因此,我们提出了有限步不精确的不动点迭代法.
算法3.2 有限步不精确的不动点迭代法(LIFP)
给定一个初始值X0≥O,对于k直到Xk收敛,执行算法3.1,并将步骤7替换为使用k步加倍迭代法来寻找Xk+1,其中Xk+1满足
‖AXk+1+Xk+1D-XkCXk-B‖≤ηinn‖R(Xk)‖.
我们首先证明由算法3.1生成的序列是有界的.
证明使用数学归纳法证明.
由引理2.3知ρ(U)<1,ρ(V)<1,因此可以运行不精确的不动点迭代法.
下证对任意的k≥0,Xk≤X.
当k=0时,X0=O≤X显然成立.
假设结论对小于等于k成立,下面考虑k+1的情形.在k+1次迭代中
因此有
用拉直算子vec(·)作用于方程两端可得
易知A与D都是非奇异的M-矩阵,则(I⊗A+D⊗I)也是非奇异的M-矩阵,所以有
由不精确的不动点迭代法,我们可以得到
从而结论对k+1也成立.由归纳法,任意的k≥0,结论都成立.
其次我们证明由算法3.2生成的序列单调递增并收敛.
O≤Xk≤Xk+1≤X,k=0,1,2,….
证明由算法3.2知
其中U,V是固定的,易用归纳法证得O≤Xk≤Xk+1,k=0,1,2,….又由引理3.1可以得到Xk≤X,k=0,1,2,…,因此由算法3.2得到的序列单调递增有上界.
定理3.3 假设同定理3.2,则由算法3.2生成的矩阵序列{Xk}单调递增收敛于X.
本节中我们使用几个例子来说明该算法的可行性与有效性,并分别从迭代步数(IT)、计算时间(CPU)以及相对误差(RES)三方面对FP3,LIFP来进行比较,其相对误差为
在我们的实验中,所有算法都是在具有2GCPU和16G内存的个人计算机上进行,并且迭代过程满足RES<10-6时运算终止.
例4.1[14]考虑方程(1-1),其中
这里K是不可约奇异的M-矩阵且μ≠0.我们分别取n=50,100,500.从表1中可以看出,LIFP算法的收敛时间比FP3的收敛时间小的多.
表1 例4.1的实验结果
例4.2[9]考虑方程(1-1),其中
A=D=Tridiag(-I,T,-I)∈Rn×n
是块三对角矩阵,
是三对角矩阵,并且
B=SD+AS-SCS
使得
是方程(1-1)的最小非负解,这里
并且n=m2.通过选择不同的m来展示数值实验的有效性,实验结果见表4.2.由表可见,这两种方法都可以求得满足方程精度的解.虽然LIFP的迭代步数比FP3的迭代步数多,但是LIFP的收敛时间要比FP3少.
表2 例4.2的实验结果
通过上述两个例子,我们可以清楚地看到LIFP算法的运算时间远小于FP3,因此本文的改进是很有效的.
本文研究了非对称代数Riccati方程的数值解法,提出了一类不精确迭代法以求解方程.该方法在外层迭代中使用不动点迭代法,而在内层迭代求解Sylvester方程时采用了Smith提出的加倍迭代方法,通过内外迭代降低了运算量和存储量,进而减少了计算时间.理论分析和数值实验证实本文的改进是可行的,而且也是较为有效的.
猜你喜欢迭代法运算量步数迭代法求解一类函数方程的再研究中等数学(2022年8期)2022-10-24楚国的探索之旅奇妙博物馆(2021年4期)2021-05-04H-矩阵线性方程组的一类预条件并行多分裂SOR迭代法应用数学(2020年4期)2020-12-28用平面几何知识解平面解析几何题中学生理科应试(2019年3期)2019-07-08微信运动步数识人指南小演奏家(2018年9期)2018-12-06减少运算量的途径湖南教育·C版(2018年3期)2018-06-05国人运动偏爱健走党的生活(黑龙江)(2017年10期)2017-11-09让抛物线动起来吧,为运算量“瘦身”福建中学数学(2016年7期)2016-12-03预条件SOR迭代法的收敛性及其应用湖南城市学院学报(自然科学版)(2016年4期)2016-02-27求解PageRank问题的多步幂法修正的内外迭代法应用数学与计算数学学报(2014年4期)2014-09-26