下一节:并行性 上一级:常见问题 上一节:结构化矩阵的直接求解器

迭代线性求解器简述
  H. van der Vorst

在特征问题背景下,可能需要求解线性系统,例如在以下情况:

在这些情况下,都需要求解移位矩阵 A-\theta I 的线性系统,有时嵌入在Jacobi-Davidson方法中的投影中。如果这些系统需要精确求解,那么首先考虑直接(稀疏)求解器。通常需要求解多个相同移位矩阵的系统,这有助于分摊在构建稀疏LU分解时产生的大量成本。如果系统不需要精确求解,或者直接求解方法成本过高,那么可以考虑迭代方法。一组流行的迭代方法在《线性系统求解模板》中有所描述[41]。 在简要概述之前,我们提醒读者,与特征问题相关的线性系统通常具有不定矩阵,这是由于涉及的移位。如果移位接近外部特征值,那么在所有情况下这不一定构成障碍,但对于内部移位肯定会有收敛问题。此外,当移位非常接近某个特征值时,例如,如果要确定左或右特征值,那么应该意识到迭代方法在求解几乎奇异系统时存在很大困难。这在感兴趣的情况下尤其如此,其中人们关注(几乎)奇异方向,正如在左和右特征向量的逆迭代中那样。普遍认为,迭代方法需要高效的预处理器才能具有吸引力。这对于移位矩阵尤其如此。不幸的是,构造不定矩阵的有效预处理器是一个棘手的问题。更多内容请参见第11章。

目前最流行的迭代方法属于Krylov子空间方法类别。这些方法从所谓的Krylov子空间构造解的近似。 Krylov子空间 {\mathcal K}^i(A;r_0) 的维度为 i,与线性系统 Ax=b(其中 Ab 可能是预处理后的值,如果包含预处理)相关,对于初始向量 x_0 和残差向量 r_0=b-Ax_0,定义为由向量 {r_0, Ar_0, A^2r_0, \ldots, A^{i-1}r_0} 张成的子空间。

不同的方法可以分类如下:

(a)
如果 A 是对称正定的,那么共轭梯度方法[226]使用二项递归生成 x_i,使得 (x-x_i,A(x-x_i))(即所谓的 A-范数或能量范数)在当前Krylov子空间 {\mathcal K}^i(A;r_0) 中所有向量上最小化。
(b)
如果 A 仅是对称的但非正定的,那么可以考虑Lanczos[286]和MINRES方法[350]。在MINRES中,确定 x_i \in {\mathcal K}^i(A;r_0),使得残差的2-范数 (\Vert b-Ax_i\Vert _2) 最小化,而Lanczos方法导致 x_i,使得 b-Ax_i 垂直于Krylov子空间。
(c)
如果 A 是非对称的,通常不可能用短递归确定 x_i\in K^i(A,r_0) 的最优解。这在[163]中得到了证明。然而,类似于共轭梯度(和MINRES)的短递归可以计算 x_i \in {\mathcal K}^i(A;r_0),使得 b-Ax_i\perp {\mathcal K}^i(A^T;s_0)(通常选择 s_0=r_0)。这导致了双共轭梯度方法[169]。一个聪明的变体是准最小残差(QMR)[179],它具有更平滑的收敛行为,比双共轭梯度更健壮。
(d)
如果 A 是非对称的,那么我们可以计算 x_i\in {\mathcal K}^i(A,r_0),使得残差在欧几里得范数中被最小化。这是通过GMRES方法[389]完成的。这需要在第 i 次迭代步骤中进行 i 次内积运算,以及 i 次向量更新,这意味着除了与 A 相关的运算外,迭代成本随 i 线性增长。
(e)
在双共轭梯度方法中,A^T 的运算可以被 A 本身的运算所替代,通过观察到 \langle x,A^Ty \rangle 等于 \langle Ax,y \rangle,其中 \langle\ldots\rangle 表示内积计算。由于双共轭梯度中 A^T 乘法的作用仅是为了维持残差正交化的对偶空间,用 A 替换此操作符允许我们扩展Krylov子空间,并以与双共轭梯度相同的每次迭代成本找到更好的近似。这导致了所谓的混合方法,如共轭梯度平方[418],Bi-CGSTAB[445],Bi-\mathrm{CGSTAB}(\ell)[409],TFQMR[174],以及QMR的混合[78]。
(f)
对于不定系统,应用正规方程 A^TAx=A^Tb 的共轭梯度方法也可能有效。直接进行可能会导致数值不稳定,因为 A^TA 的条件数是平方的。一个聪明且健壮的实现由最小二乘QR提供[351]。
这些方法中的许多已在[41]中描述,并且有相应的软件可用。有关如何获取软件的指南,请参见本书的主页ETHOME。对于某些方法,模板风格的描述已在[135]中给出。该书还概述了各种预处理方法。



下一节:并行性 上一级:常见问题 上一节:结构化矩阵的直接求解器
Susan Blackford 2000-11-20