郑州大学学报(理学版)  2021, Vol. 53 Issue (4): 109-114  DOI: 10.13705/j.issn.1671-6841.2020312

引用本文  

于春肖, 井丁卉, 杨艳芳. 基于不完全正交的WIGMRES(m)算法[J]. 郑州大学学报(理学版), 2021, 53(4): 109-114.
YU Chunxiao, JING Dinghui, YANG Yanfang. WIGMRES (m) Algorithm Based on Incomplete Orthogonality[J]. Journal of Zhengzhou University(Natural Science Edition), 2021, 53(4): 109-114.

基金项目

国家自然科学基金项目(11301459);河北省自然科学基金项目(A2017203100)

作者简介

于春肖(1977—),女,教授,主要从事多级边界元及应用研究,E-mail:chxy@ysu.edu.cn

文章历史

收稿日期:2020-09-27
基于不完全正交的WIGMRES(m)算法
于春肖, 井丁卉, 杨艳芳    
燕山大学 理学院 河北 秦皇岛 066004
摘要:为提高大型线性方程组的求解速度,在WGMRES(m)算法的基础上,利用不完全正交的加权Arnoldi过程,提出了截断型变参数的WIGMRES(m)算法,并验证了该算法的收敛性。最后通过数值算例分析截断指标对计算精度和计算效率的影响,表明WIGMRES(m)算法在保证精度的前提下,大大减少了迭代次数,为实际工程的求解提供了新方法。
关键词WIGMRES(m)算法    不完全正交    截断型    
WIGMRES (m) Algorithm Based on Incomplete Orthogonality
YU Chunxiao, JING Dinghui, YANG Yanfang    
College of Science, Yanshan University, Qinhuangdao 066004, China
Abstract: In order to improve the solving speed of large linear equations, on the basis of WGMRES (m) algorithm, with the incomplete orthogonal weighted Arnoldi process, a truncated variable parameter WIGMRES (m) algorithm was proposed and its convergence was verified. The numerical examples were used to analyze the influence of the truncation index on the calculation accuracy and calculation efficiency. It showed that the WIGMRES (m) algorithm greatly reduced the number of iterations under the premise of ensuring accuracy, and provided a new method for practical engineering solutions.
Key words: WIGMRES(m) algorithm    incomplete orthogonal    truncated    
0 引言

在工程领域中,很多问题最终都可归结为求解大型线性方程组。由Sadd提出的GMRES(m)算法是求解大型线性方程组最有效的方法之一,被广泛应用到工程领域[1-4]。随着GMRES(m)算法的广泛应用,为加快GMRES(m)算法的收敛速度,很多学者对该算法进行优化与改进,一种方法是采用预处理技术[5-7],通过加权技术,即WGMRES(m)算法来加快算法的收敛性。孙蕾等利用残量多项式预处理方法,建立右端多项式预处理GMRES(m)算法[8]; 于春肖等通过深入探讨算法的收敛性与方程组系数矩阵的密切关系[9], 提出一种预条件广义极小残余新算法; 杨圣炜等通过引用加权技术,提出了加权SGMRES算法(WSGMRES算法)[10]; 在此基础上,仲红秀等利用加权策略和分析基底条件数,对块simple GMRES方法进行了改进,提出加权simple GMRES算法[11]; Yu等通过改变m的取值来加快收敛,进而提出VRP-GMRES(m)算法[12-13]; 郝雪景等利用截断技术,基于不完全正交的Arnoldi过程提出截断型变参数广义极小残余算法(VRP-IGMRES(m))[14]。本文利用截断技术[15-16],提出一种不完全正交的WIGMRES(m)算法,并结合数值算例,分析该算法的高效性。

1 WGMRES(m)算法

考虑线性方程组Ax=b,其中,An阶非对称非奇异矩阵。取x0Rn为任一向量,令x=x0+z,则方程组可化为Az=r0,其中r0=b-Ax0。GMRES(m)算法是在Krylov子空间Km=Span{r0, Ar0, …, Am-1r0}中寻求zm且满足rm=r0-AzmAKm,使得‖rm‖=‖r0-Azm‖= $ \mathop {\min }\limits_{z \in {k_m}} $r0-Az‖,并将x=x0+zm作为方程组的近似解。

定义1[17]   设D=diag{d1, d2, …, dn},di>0,i=1, 2, …, n,称di为加权因子。取任意向量α, βRn,则它们的内积可简记为(α, β)D=βT= $ \sum\limits_{i = 1}^n d $iαiβi。相应的加权范数定义为‖αD= $\sqrt {{{\left( {\boldsymbol{\alpha }, \boldsymbol{\alpha }} \right)}_D}} $=αT, ∀αRn

加权Arnoldi过程:

1) 取v1=r0/‖r0D;

2) 对于j=1, 2, …, m,计算$ {\boldsymbol{{\bar v}}}$j+1=Avj- $ \sum\limits_{i = 1}^j \boldsymbol{h} $i, jvi, hi, j=(Avj, vi)D, hj+1, j=‖$ {\boldsymbol{{\bar v}}}$j+1D;

3) 若hj+1, j=0, 则停止, 否则vj+1=$ {\boldsymbol{{\bar v}}}$j+1/hj+1, j

结合GMRES(m)算法和加权Arnoldi过程,WGMRES(m)算法计算步骤如下:

1) 选取x0RnmN+(m < n),给定误差上界;

2) 选取d=(d1, d2, …, dn)T,使得‖d‖=$ \sqrt n $,计算r0=b-Ax0, β=‖r0D, v1=r0/β;

3) 执行加权Arnoldi过程,对于j=1, 2, …, m,计算hj+1, j=‖$ {\boldsymbol{{\bar v}}}$j+1D, 若hj+1, j=0,则转向步骤5),否则计算vj+1=$ {\boldsymbol{{\bar v}}}$j+1/hj+1, j,求解得{vi}i=1mHm;

4) 求解最小二乘问题,$ \mathop {\min }\limits_{y \in {{\boldsymbol{\rm{R}}}^m}} $βe1- Hmy‖, 解得yme1=(1, 0, …, 0)TRm+1,记xm=x0+Vmym;

5) 若‖rm‖=‖r0-Azm‖ < ε,则x=xm,迭代停止,否则x0=xm,转向步骤2)。

2 WIGMRES(m)算法

m很大时,考虑到在构造krylov子空间的基向量和Hessenberg矩阵时要用到长递推公式,导致算法计算量和存储量过大,因此在WGMRES(m)算法的基础上进行改进,提出一种新型截断型算法,即WIGMRES(m)算法,该算法仅对Avj前面的至多q个向量进行正交,vj0, …, vjj0=max{1, j-q-1}正交,其中q < m,令q0=j0=max{1, j-q-1},称q0为WIGMRES(m)算法的截断指标。算法具体步骤如下:

1) 选取x0RnmN+(m < n),给定误差上界;

2) 选取d=(d1, d2, …, dn)T,使‖d‖=n,计算r0=b-Ax0, β=‖r0D, v1=r0/β;

3) 执行不完全正交的加权Arnoldi过程,计算hij=(Avj, vi)Dj=1, 2, …, mi=j0, j1, …, jvj+1=Avj- $\sum\limits_{i = {j_0}}^j \boldsymbol{h} $ijvi,标准化hj+1, j=‖ vj+1Dvj+1=vj+1/hj+1, j,更新Vj+1HjVj+1=(Vj, vj+1),Hj= $\overline{\boldsymbol{H}}_{j}=\left(\begin{array}{cc} \overline{\boldsymbol{H}}_{j-1} & \boldsymbol{h}_{i j} \\ 0 & \boldsymbol{h}_{j+1, j} \end{array}\right)_{(j+1) \times j} $;其中, Hj为(j+1)×j的带状上Hessenberg矩阵,将上述迭代过程写成矩阵形式为

$ \boldsymbol{A} \boldsymbol{V}_{m}=\boldsymbol{V}_{m+1} \overline{\boldsymbol{H}}_{m} 。$ (1)

4) 求解最小二乘问题

$ \left\|\boldsymbol{r}_{m}\right\|=\min _{\boldsymbol{y} \in \bf{R}^{m}}\left\|\boldsymbol{\beta} \boldsymbol{e}_{1}-\overline{\boldsymbol{H}}_{m} \boldsymbol{y}_{m}\right\|,$ (2)

ym,其中e1=(1, 0, …, 0)TRm+1;

5) 构造近似解,xm=x0+Vmym;

6) 计算残余向量的模,‖rm‖=‖b-Axm‖;

7) 重启动判断,若‖rm‖ < ε,则精确解x=xm,迭代停止; 否则,置x0=xmm=m+1,转2)。

3 WIGMRES(m)算法的收敛性

为证明算法WIGMRES(m)的收敛性态,本文将WIGMRES(m)算法和WGMRES(m)算法联系起来,证明WIGMRES(m)的收敛性,为方便讨论,令WIGMRES(m)算法的残余向量的模为rm(WIG), WGMRES(m)算法残余向量的模为rm(WG)。

定理1   假设Vm+1列满秩,则WIGMRES(m)算法和WGMRES(m)算法在Km(r0, A)上的残值范数满足

$ \left\|\boldsymbol{r}_{m}(W I G)\right\| \leqslant S\left(\boldsymbol{V}_{m+1}\right)\left\|\boldsymbol{r}_{m}(W G)\right\|,$

其中:Vm+1由不完全正交化过程生成,S(Vm+1)=‖Vm+1‖‖Vm+1+‖,Vm+1+Vm+1的广义逆。如果WIGMRES(m)算法在m步中断,即hm+1, m=0。

证明   由r0=βVm+1e1和式(1)可知,对应于rm(WIG)的残值为rm(WIG)=b-Axm(WIG)=Vm+1(βe1- Hmym),因此

$ \left\|\boldsymbol{r}_{m}(W I G)\right\|=\left\|\boldsymbol{V}_{m+1}\left(\boldsymbol{\beta} \boldsymbol{e}_{1}-\overline{\boldsymbol{H}}_{m} \boldsymbol{y}_{m}\right)\right\|。$ (3)

βVm+1e1=r0,有βe1=Vm+1+r0,用Vm+1H前乘式(1)可得Hm=Vm+1+AVm。因此,式(3)变成‖rm(WIG)‖=‖Vm+1(Vm+1+r0-Vm+1+AVmym)‖。式(2)等价于求解最小二乘问题$ \mathop {\min }\limits_{y \in {{\boldsymbol{\rm{R}}}^m}} $Vm+1+r0-Vm+1+AVmym)‖= $\min _{z_{m} \in K_{m}\left(\boldsymbol{r}_{0}, \boldsymbol{A}\right)} $Vm+1+r0-Vm+1+Azm)‖,因此可得

$ \left\|\boldsymbol{r}_{m}(W I G)\right\| \leqslant\left\|\boldsymbol{V}_{m+1}\right\|\left\|\boldsymbol{V}_{m+1}^{+} \boldsymbol{r}_{0}-\boldsymbol{V}_{m+1}^{+} \boldsymbol{A} \boldsymbol{V}_{m} \boldsymbol{y}_{m}\right\|=\left\|\boldsymbol{V}_{m+1}\right\| \min _{z_{m} \in K_{m}\left(r_{0}, A\right)}\left\|\boldsymbol{V}_{m+1}^{+} \boldsymbol{r}_{0}-\boldsymbol{V}_{m+1}^{+} \boldsymbol{A} \boldsymbol{z}_{m}\right\| \leqslant\\ \left\|\boldsymbol{V}_{m+1}\right\|\left\|\boldsymbol{V}_{m+1}^{+}\right\| \min _{z_{m} \in K_{m}\left(\boldsymbol{r}_{0}, \boldsymbol{A}\right)}\left\|\boldsymbol{r}_{0}-\boldsymbol{A} z_{m}\right\|=S\left(\boldsymbol{V}_{m+1}\right) \underset{z_{m} \in K_{m}\left(r_{0}, A\right)} \min\left\|\boldsymbol{r}_{0}-\boldsymbol{A} \boldsymbol{z}_{m}\right\|=S\left(\boldsymbol{V}_{m+1}\right)\left\|\boldsymbol{r}_{m}(W G)\right\|,$

证毕。

4 数值算例

算例1   考虑一维波动方程

$ \begin{cases}u_{t}=u_{x x}, & 0<x<1, 0<y<0.1, \\ u(0, y)=u(1, y)=0, & 0 \leqslant y \leqslant 0.1 \\ u(x, 0)=f(x)=\sin (\pi x)+\sin (3 \pi x), & 0 \leqslant x \leqslant 1_{\circ}\end{cases} $ (4)

方程(4)的精确解为u(x, y)=sin(πx)e2y+sin(3πx)e-9π2y,如图 1(a)所示。将区域沿x方向和y方向n等分,其中采用隐式差分法求解方程(4),可得方程组

图 1 温度分布 Fig. 1 Temperature distribution
$ u(x, y)=\sin (\pi x) \mathrm{e}^{-\pi^{2} y}+\sin (3 \pi x) \mathrm{e}^{-9 \pi^{2} y}。$

n=20, m=10, q0=9时,用WIGMRES(m)算法求解一维波动方程,计算结果如图 1(b)所示。由图 1知,问题(4)的数值解和精确解是一致的,说明WIGMRES(m)算法的正确性。

n=30, m=15考虑截断指标q0在1~14内取值,得到截断指标对残余范数和计算时间的图像如图 23所示,残余范数随着截断指标的增大波动后趋于平缓,计算时间随着截断指标的增大而缓慢增大,说明截断指标越小, 截断效果越明显。

图 2 截断指标对残余范数的影响 Fig. 2 Effect of truncation index on residual norm

图 3 截断指标对计算时间的影响 Fig. 3 The impact of truncation indicators on calculation time

算例2   考虑二维泊松方程

$ \begin{cases}-\left(\frac{\partial^{2} u}{\partial x^{2}}+\frac{\partial^{2} u}{\partial y^{2}}\right)=2 \pi^{2} \sin \pi x \sin \pi y, & (x, y) \in {\mathit{\Omega}} \\ u(x, y)=\sin \pi x \sin \pi y, & (x, y) \in \partial {\mathit{\Omega}}\end{cases} $ (5)

其中:Ω={(x, y)0 < x, y < 1},ΩΩ的边界。

方程(5)的精确解为u(x, y)=sin πxsin πy,如图 4(a)所示。将区域沿x方向和y方向n等分,其中采用五点差分法求解方程(5),可得方程组

图 4 温度分布 Fig. 4 Temperature distribution
$ \boldsymbol{A} \boldsymbol{x}=\boldsymbol{b}, \boldsymbol{A} \in \mathbf{R}^{(n-1)^{2} \times(n-1)^{2}}, \boldsymbol{x}, \boldsymbol{b} \in \mathbf{R}^{(n-1)^{2}}。$

n=100, m=10截断指标q0=9时,用WIGMRES(m)求解二维泊松方程的数值解如图 4(b)所示,根据图 4可知,数值解与精确解一致,因此说明算法WIGMRES(m)的正确性。

n=50, q0=5时,且m在4~14内取值,当重启动参数取不同的值时,GMRES(m)算法、WGMRES(m)算法和WIGMRES(m)算法的数值结果如表 12所示,当参数m发生变化时,GMRES(m)算法的迭代次数最多,WGMRES(m)算法次之,WIGMRES(m)算法最少且WIGMRES(m)算法的计算精度最高,由此证明WIGMRES(m)算法在保证精度的情况下计算效率大大提高。

表 1 m取不同值时三种算法的迭代次数比较 Tab. 1 Comparison of the number of iterations of the three algorithms with different values of m

表 2 m取不同的值时三种算法的计算精度比较 Tab. 2 Comparison of the calculation accuracy of the three algorithms with different values of m

n=40, q0=5,且m在6~18内取值,执行WIGMRES(m)和WGMRES(m)两种算法,当重启动参数m取不同值,得到两种算法的迭代时间和迭代次数变化(图 56)。根据图 56可知,新算法WIGMRES(m)更加稳定,且以较高的精度快速收敛。当m=10时,不同网格下的两种算法的计算时间如表 3所示,表格显示随着n的不断增大,相同网格下,WIGMRES(m)算法总比WGMRES(m)算法的计算时间少,由此说明,WIGMRES(m)算法的优越性。

图 5 两种算法迭代次数的比较 Fig. 5 Comparison of the number of iterations of the two algorithms

图 6 两种算法迭代时间的比较 Fig. 6 Comparison of iteration time of two algorithms

表 3 不同网格下两种算法计算时间的比较(m=10) Tab. 3 Comparison of calculation time of two algorithms on different grids (m=10)  
5 结论

本文在WGMRES(m)算法的基础上,通过采用截断技术,提出WIGMRES(m)新算法,并证明该算法的收敛性。通过数值算例证明WIGMRES(m)新算法得出的结果与精确解十分吻合,证明了该算法的有效性。同时当参数m取不同值时三种算法的迭代次数和计算精度的变化情况,以及WIGMRES(m)和WGMRES(m)两种算法对计算效率和计算精度的影响,结果表明新算法在计算效率和计算精度方面均有很大提高。

参考文献
[1]
SAAD Y, SCHULTZ M H. GMRES: a generalized minimal residual algorithm for solving nonsymmetric linear systems[J]. SIAM journal on scientific and statistical computing, 1986, 7(3): 856-869. DOI:10.1137/0907058 (0)
[2]
王人鹏, 沈祖炎, 钱若军. 应用Krylov子空间方法求解边界元方程组[J]. 同济大学学报(自然科学版), 1997, 25(2): 212-217.
WANG R P, SHEN Z Y, QIAN R J. Solutions of BEM equations with Krylov subspace method[J]. Journal of tongji university (natural science edition), 1997, 25(2): 212-217. (0)
[3]
于春肖, 申光宪. 规划-迭代型弹塑性摩擦接触多极边界元法[J]. 计算力学学报, 2008, 25(1): 65-71.
YU C X, SHEN G X. Program-iteration pattern fast multipole BEM for elasto-plastic contact with friction[J]. Chinese journal of computational mechanics, 2008, 25(1): 65-71. (0)
[4]
WANG H T, YAO Z H. A new fast multipole boundary element method for large scale analysis of mechanical properties in 3d particle-reinforced composites[J]. CMES computer modeling in engineering & sciences, 2005, 7(1): 85-95. (0)
[5]
陈泽军, 肖宏. 预条件GMRES(m)法迭代求解大规模边界元弹性问题[J]. 固体力学学报, 2006, 27(S1): 50-55.
CHEN Z J, XIAO H. Iterative solution of large-scale BEM elasticity problems using the preconditioned GMRES(m) technique[J]. Acta mechanica solida sinica, 2006, 27(S1): 50-55. (0)
[6]
BAGLAMA J, CALVETTI D, GOLUB G H, et al. Adaptively preconditioned GMRES algorithms[J]. SIAM journal on scientific computing, 1998, 20(1): 243-269. DOI:10.1137/S1064827596305258 (0)
[7]
段文洋, 刁峰, 陈纪康. 预条件GMRES(m)算法在大型浮体水动力边界元分析中的应用[J]. 哈尔滨工程大学学报, 2013, 34(11): 1363-1368.
DUAN W Y, DIAO F, CHEN J K. Application of preconditioned and restarted GMRES to the boundary element analysis of large floating structures[J]. Journal of Harbin engineering university, 2013, 34(11): 1363-1368. (0)
[8]
孙蕾, 管勇. 右端多项式预处理GMRES算法[J]. 科学技术与工程, 2009, 9(14): 4119-4121.
SUN L, GUAN Y. Right polynomial preconditioned GMRES[J]. Science technology and engineering, 2009, 9(14): 4119-4121. DOI:10.3969/j.issn.1671-1815.2009.14.039 (0)
[9]
于春肖, 穆运峰. 预条件广义极小残余新算法[J]. 数学理论与应用, 2005, 25(2): 38-42.
YU C X, MU Y F. Preconditioning generalized minimal residual algorithm[J]. Mathematical theory and application, 2005, 25(2): 38-42. (0)
[10]
杨圣炜, 卢琳璋. 一种加权的simpler GMRES算法[J]. 厦门大学学报(自然科学版), 2008, 47(4): 484-488.
YANG S W, LU L Z. A weighted simpler GMRES[J]. Journal of Xiamen university (natural science), 2008, 47(4): 484-488. DOI:10.3321/j.issn:0438-0479.2008.04.006 (0)
[11]
仲红秀, 吴鑫斌. 一种加权块simpler GMRES算法及应用[J]. 重庆师范大学学报(自然科学版), 2019, 36(3): 78-84.
ZHONG H X, WU X B. A weighted block simpler GMRES algorithm and its applications[J]. Journal of Chongqing normal university (natural science), 2019, 36(3): 78-84. (0)
[12]
YU C X, REN C H, BAI X T. VRP-GMRES(m) iteration algorithm for fast multipole boundary element method[J]. Mathematical and computational applications, 2016, 21(4): 49. DOI:10.3390/mca21040049 (0)
[13]
YU C X, BAI X T, ZHANG D. GMRES(m) algorithm with variable restart parameter[J]. ICIC express letters part B, 2015, 6(7): 1747-1753. (0)
[14]
郝雪景, 于春肖, 任翠环. 基于不完全正交的VRP-IGMRES(m)算法[J]. 河北大学学报(自然科学版), 2018, 38(5): 460-465.
HAO X J, YU C X, REN C H. VRP-IGMRES(m) algorithm based on incomplete orthogonalization[J]. Journal of Hebei university (natural science edition), 2018, 38(5): 460-465. DOI:10.3969/j.issn.1000-1565.2018.05.003 (0)
[15]
JIA Z X. On IOM(q): the incomplete orthogonalization method for large unsymmetric linear systems[J]. Numerical linear algebra with applications, 1996, 3(6): 491-512. DOI:10.1002/(SICI)1099-1506(199611/12)3:6<491::AID-NLA87>3.0.CO;2-9 (0)
[16]
贾仲孝. 解非对称线性方程组的不完全广义最小残量法[J]. 中国科学(A辑), 1998, 28(8): 694-702.
JIA Z X. Incomplete generalized minimum residual method for solving asymmetric linear equations[J]. Chinese science: series A, 1998, 28(8): 694-702. (0)
[17]
ESSAI A. Weighted FOM and GMRES for solving nonsymmetric linear systems[J]. Numerical algorithms, 1998, 18(3/4): 277-292. DOI:10.1023/A:1019177600806 (0)