A block IDR(s) method for nonsymmetric linear systems with multiple right-hand sides

基于诱导降维(IDR)定理的IDR(s)是一类新的求解大型非对称线性系统的有效算法。本文将IDR(s)推广到求解具有多个右边的大型非对称线性系统。

本文首先给出了IDR定理的一个变体,然后在变体IDR(s)定理的基础上提出了块IDR(s)。

1. Introduction

考虑求解具有多个右侧边的大的稀疏线性系统
A X = B (1) AX = B \tag{1} AX=B(1)

系数矩阵A是n阶非奇异实数矩阵,, X = [ x 1 , x 2 , . . . , x m ] X = [x_1, x_2, . . . , x_m] X=[x1,x2,...,xm] and B = [ b 1 , b 2 , . . . , b m ] ∈ R n × m B = [b_1, b_2, . . . , b_m] ∈ R^{n×m} B=[b1,b2,...,bm]Rn×m(m ≪ n)

本文的其余部分组织如下。在下一节中,我们将回顾块Krylov子空间和IDR(s)。然后,我们将给出IDR定理的一个变体,它是IDR定理的推广和我们的块IDR(s)算法的理论基础,并在第3节中分析块方法。在第4节中,一些数值结果证明了该方法的有效性。最后,我们在第5节中作了一些总结性。

符号 M n × n M_{n×n} Mn×n N n × m N_{n×m} Nn×m表示矩阵。如果一个矩阵的维数从上下文中是明显的,并且没有混淆,我们将去掉索引,用 M M M表示 M n × n M_{n×n} Mn×n M H M^H MH是M的厄米特转置。

‖ M ‖ F 2 = T r ( M H M ) ‖M‖^2_F=Tr(M^{H}M) MF2=Tr(MHM),其中 ‖ ⋅ ‖ F ‖·‖_F F T r ( ⋅ ) Tr(·) Tr()分别表示方阵的F范数和迹。除非另有说明,‖·‖是贯穿整个论文的欧几里得范数。
N ( M ) \mathcal{N} (M) N(M)表示矩阵M的空空间。

2. The block Krylov subspace and IDR(s)

2.1. Block Krylov subspace

X 0 ∈ R n × m X_0∈R^{n×m} X0Rn×m为初始猜测, R 0 = B − A X 0 R_0=B−AX_0 R0=BAX0为对应的块残差矩阵。

Definition 2.1 A A A产生的子空间 K k ( A , R 0 ) \mathcal{K}_k(A,R_0) Kk(AR0)和A应用于 R 0 R_0 R0的升幂

被称为块Krylov子空间。

矩阵Krylov子空间,其定义如下。
Definition 2.2 A A A产生的子空间 K k ( A , R 0 ) \mathbb{K}_k(A,R_0) Kk(AR0)和A应用于 R 0 R_0 R0的升幂

Definition 2.3 正整数 v : = v ( R 0 , A ) v := v(R_0, A) v:=v(R0,A),定义为

对于A,被称为 R 0 R_0 R0的块级。

Corollary 2.4 X ∗ X_∗ X A X = B AX=B AX=B的精确块解

用于寻找近似解的方法 X k ∈ X 0 + K k ( A , R 0 ) X_{k} \in X_{0}+\mathcal{K}_{k}\left(A, R_{0}\right) XkX0+Kk(A,R0) 被称为块方法, 选择 X k ∈ X 0 + K k ( A , R 0 ) X_{k} \in X_{0}+\mathbb{K}_{k}\left(A, R_{0}\right) XkX0+Kk(A,R0) 导致所谓的全局方法. 如果我们选择 γ i = α i I m × m ( i = 0 , 1 , … , k − 1 ) , K k \gamma_{i}=\alpha_{i} I_{m \times m}(i=0,1, \ldots, k-1), \mathbb{K}_{k} γi=αiIm×m(i=0,1,,k1),Kk and K k \mathcal{K}_{k} Kk 可以是同一个子空间。 由此看来,矩阵 Krylov 子空间 K k ( A , R 0 ) \mathbb{K}_{k}\left(A, R_{0}\right) Kk(A,R0) 可以认为是块 Krylov 子空间的子空间 K k ( A , R 0 ) \mathcal{K}_{k}\left(A, R_{0}\right) Kk(A,R0), i.e. K k ( A , R 0 ) ⊂ K k ( A , R 0 ) \mathbb{K}_{k}\left(A, R_{0}\right) \subset \mathcal{K}_{k}\left(A, R_{0}\right) Kk(A,R0)Kk(A,R0).

对于块求解器,让 Z = [ z 1 , z 2 , … , z m ] ∈ K k Z=\left[z_{1}, z_{2}, \ldots, z_{m}\right] \in \mathcal{K}_{k} Z=[z1,z2,,zm]Kk, where z i ∈ R n ( i = 1 , … , m ) z_{i} \in \mathbb{R}^{n}(i=1, \ldots, m) ziRn(i=1,,m). F从(2)的定义来看,有 γ j ′ s ∈ R m × m ( j = 0 , … , k − 1 ) \gamma_{j}{ }^{\prime} s \in \mathbb{R}^{m \times m}(j=0, \ldots, k-1) γjsRm×m(j=0,,k1) 满足
Z = ∑ j = 0 k − 1 A j R 0 γ j Z=\sum_{j=0}^{k-1} A^{j} R_{0} \gamma_{j} Z=j=0k1AjR0γj
这意味着
z i = ∑ l = 1 m ∑ j = 0 k − 1 γ j ( l , i ) A j R 0 ( : , l ) ∈ B k ( A , R 0 ) z_{i}=\sum_{l=1}^{m} \sum_{j=0}^{k-1} \gamma_{j}(l, i) A^{j} R_{0}(:, l) \in \mathscr{B}_{k}\left(A, R_{0}\right) zi=l=1mj=0k1γj(l,i)AjR0(:,l)Bk(A,R0)
where B k ( A , R 0 ) : = K k ( A , R 0 ( : , 1 ) ) + ⋯ + K k ( A , R 0 ( : , m ) ) \mathscr{B}_{k}\left(A, R_{0}\right):=\mathcal{K}_{k}\left(A, R_{0}(:, 1)\right)+\cdots+\mathcal{K}_{k}\left(A, R_{0}(:, m)\right) Bk(A,R0):=Kk(A,R0(:,1))++Kk(A,R0(:,m)).
所以 X k = X 0 + Z ∈ K k X_{k}=X_{0}+Z \in \mathcal{K}_{k} Xk=X0+ZKk 的列对应于 m m m 单右手线性系统的近似解。但是,与标准 Krylov 求解器不同,块 Krylov 求解器在每个右侧的搜索空间要大得多,即,近似解 X k ( : , l ) = X 0 ( : , l ) + B k ( A , R 0 ) X_{k}(:, l)=X_{0}(:, l)+\mathcal{B}_{k}\left(A, R_{0}\right) Xk(:,l)=X0(:,l)+Bk(A,R0) are updated instead of X k ( : , l ) = X 0 ( : , l ) + K k ( A , R 0 ( : , l ) ) X_{k}(:, l)=X_{0}(:, l)+\mathcal{K}_{k}\left(A, R_{0}(:, l)\right) Xk(:,l)=X0(:,l)+Kk(A,R0(:,l)). 这是使用块方法的主要原因。

2.2. IDR(s)

Theorem 2.5 (IDR). A ∈ C n × n , v 0 ∈ C n A \in \mathbb{C}^{n \times n}, v_{0} \in \mathbb{C}^{n} ACn×n,v0Cn, and g 0 = K v ( A , v 0 ) g_{0}=\mathcal{K}_{v}\left(A, v_{0}\right) g0=Kv(A,v0). 设 S ⊂ C n S \subset \mathbb{C}^{n} SCn 并定义递归子空间 g j g_{j} gj
g j = ( I − ω j A ) ( g j − 1 ∩ S ) , ( ω j ≠ 0 ) ∈ C , j = 1 , 2 , … g_{j}=\left(I-\omega_{j} A\right)\left(g_{j-1} \cap S\right), \quad\left(\omega_{j} \neq 0\right) \in \mathbb{C}, j=1,2, \ldots gj=(IωjA)(gj1S),(ωj=0)C,j=1,2,
如果 g 0 ∩ S g_{0} \cap S g0S 不包含 A A A,的任何特征向量,则保持如下:
(a) g j ⊂ g j − 1 , ∀ j > 0 g_{j} \subset g_{j-1}, \forall j>0 gjgj1,j>0.
(b) g j = { 0 } \mathcal{g}_{j}=\{0\} gj={0} for some j ≤ n j \leq n jn.

从该定理中,我们知道级数嵌套子空间的维数随着序列子空间 g j g_{j} gj的缩小而减小。如果所有的剩余 r i s r_is ris都可以在嵌套的子空间 g j g_{j} gj中构造,我们可以在有限步长中得到近似解。在IDR(s)方法[23]的一般情况下,最多需要 n + n / s n+n/s n+n/s个矩阵向量积。

s+2项IDR(s)算法可以作为IDR定理的推导如下。
在这里插入图片描述
要初始化 r 1 , … , r s r_1,…,r_s r1,,rs,可以使用任何相当迭代的方法,例如,BiCGStab

然后,从方程(3)(4),近似解 x i + 1 x_{i+1} xi+1可以更新为

为了确定 s s s个变量 γ j \gamma_j γj,可以选择空间 S S S为某些 n × s n×s n×s矩阵的左空空间, P = [ p 1 , . . . , p s ] P = [p_1, . . . , p_s] P=[p1,...,ps], i.e., S = N ( P H ) S = N (P^H ) S=N(PH),这可以随机生成,因为空间 S ∩ g 0 S∩g_0 Sg0包含A的一些特征向量(s)的概率为零[23]。然后可以从方程中求解 γ j \gamma_j γj
P H v i = 0. P^H v_i = 0. PHvi=0.

在形成整个算法之前,还需要计算一个参数 ω j + 1 ω_{j+1} ωj+1,[23]建议通过每 s + 1 s+1 s+1步最小化残差 r i + 1 r_{i+1} ri+1的范数来选择 ω ω ω
在这里插入图片描述

3. The block IDR(s)

在本节中,我们考虑具有多个右侧的非对称线性系统。为了提出IDR(s)的块版本,我们首先给出了IDR定理的一个变体,它是在第3.1节中对IDR定理的一个扩展。为了从变体IDR定理中给出一个可执行的过程,我们分别在第3.2节和第3.3节中讨论了实现细节,并阐述了所提出的算法。然后,在第3.4节中,我们比较了IDR(s)和块IDR(s)之间的计算成本和内存需求,并分析了通过矩阵向量运算计算的收敛性。最后,在第3.5节中给出了一个块IDR(s)算法的预处理版本。

3.1. A variant of the IDR theorem

从块初始残差r0和系数矩阵A中,可以生成块Krylov子空间。基于块Krylov子空间,可以自然地得到IDR定理的一个变体。在本节中,我们首先给出了变体IDR定理,这是我们所提出的方法的理论基础。

3.2. Implementation details

因为块IDR(s)是IDR(s)的自然扩展,所以s+2项块IDR(s)方法可以推导出类似于等式。(3)-(5)作为变体IDR定理的翻译。

3.5. Preconditioning

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值