预处理Krylov子空间方法详解
在求解线性系统时,Krylov子空间方法是一类非常重要的算法,如共轭梯度法(CG)、最小残差法(MINRES)、广义最小残差法(GMRES)和双共轭梯度稳定法(BiCGSTAB)等。而预处理技术可以显著提高这些方法的收敛速度,下面我们将详细探讨Krylov子空间方法的预处理过程。
1. 预处理方法概述
在求解偏微分方程的有限元问题时,基于区域分解方法或多重网格方法的预处理器非常流行。例如,我们可以通过区域分解将集合{1, …, n}分解为不相交的集合J1, …, Jp,定义子空间Vj和投影Pj,进而得到块预处理器。具体来说,设Ej是从Vj到Rn的扩展矩阵,AJj,Jj是A的子矩阵,定义算子$\tilde{P} j := E_jA {J_j,J_j}^{-1}E_j^T$,$\tilde{P} := \tilde{P}_1 + \cdots + \tilde{P}_p$,则求解Ax = b等价于求解$\tilde{P}Ax = \tilde{P}b$,$\tilde{P}$就是一个块预处理器的例子。
2. 共轭梯度法(CG)的预处理
当矩阵A是对称正定矩阵时,我们可以使用共轭梯度法求解线性系统Ax = b。根据定理,CG方法的收敛速度取决于矩阵的条件数,因此我们需要选择一个对称正定的预处理器P = SST来降低条件数,从而提高收敛速度。具体步骤如下:
- 变换系统 :将原问题Ax = b转化为$S^TASx = S^Tb$,记$\hat{A} = S^TAS$,$\hat{b} = S^Tb$,原问题的解$x^ = S\hat{x}^