线性方程组求解算法:共轭梯度法与稀疏矩阵Cholesky分解
1. 共轭梯度法(Conjugate Gradient Method)
共轭梯度法(CG方法)是用于求解线性方程组 $Ax = b$ 的一种方法,其中矩阵 $A \in R^{n×n}$ 需为对称正定矩阵。在无舍入误差的情况下,CG方法最多在 $n$ 步内构建出解 $x^ \in R^n$。考虑舍入误差时,可能需要多于 $n$ 步才能得到精确解 $x^ $ 的良好近似。对于稀疏矩阵,即使存在舍入误差,也能在少于 $n$ 步内得到解的良好近似。在实践中,CG方法常作为预条件共轭梯度法使用,即将CG方法与预条件器相结合。
1.1 顺序CG方法
CG方法利用了线性方程组的解与函数极小化之间的等价性。具体而言,若矩阵 $A$ 对称正定,线性方程组 $Ax = b$($A \in R^{n×n}$,$b \in R^n$)的解 $x^*$ 是函数 $\Phi : M \subset R^n \to R$ 的最小值,其中:
$\Phi(x) = \frac{1}{2}x^T Ax - b^T x$
确定函数 $\Phi$ 最小值的一种简单方法是最速梯度法,该方法使用负梯度。对于给定的点 $x_c \in R^n$,函数在负梯度方向上下降最快。该方法计算以下两个步骤:
- 步骤 (a):计算点 $x_c$ 处的负梯度 $d_c \in R^n$
$d_c = - \text{grad} \Phi(x_c) = - \left( \frac{\partial}{\partial x_1} \Phi(x_c), \ldots