Skip to main content

One post tagged with "math"

View All Tags

求解 Ax=b —— 共轭梯度法(上)

· 9 min read

为了进行线性方程组 Ax=bAx=b 的数值求解,这里介绍一种数值求解方法 —— 共轭梯度法(Conjugate gradient method),简称 CG。 共轭梯度法适用于矩阵 AA 是对称正定的情况,如果不考虑计算机处理浮点数的误差,该方法能够给出线性方程组的精确解。

共轭梯度法的条件

为了求解线性方程组(或者说线性系统) Ax=bAx=b,其中 AA 是一个 n×nn\times n 的矩阵,即 ARn×nA \in R^{n \times n}bRnb \in R^nxRnx \in R^n。 此外,还要求矩阵 AA 是对称正定(symmetric position definite,SPD)的,这样才能保证最后共轭梯度法的迭代会收敛到所要求的解。 所谓对称,是指 AT=AA^T = A,即矩阵 AA 的转置等于其本身。 所谓正定,是指 x0\forall x \neq 0,都有 xTAx>0x^TAx>0
可以总结,为了使用共轭梯度法,对矩阵 AA 有如下对约束条件:

  1. 矩阵AA必须是对称矩阵;
  2. 矩阵AA必须是正定矩阵;
  3. 矩阵AA必须是n×nn\times n 的方阵(其中这条已经隐含在条件1和2里面了,因为矩阵的对称和正定都要求矩阵是方阵);