今天介绍数值计算和优化方法中非常有效的一种数值解法,共轭梯度法。我们知道,在解大型线性方程组的时候,很少会有一步到位的精确解析解,一般都需要通过迭代来进行逼近,而 PCG 就是这样一种迭代逼近算法。
我们先从一种特殊的线性方程组的定义开始,比如我们需要解如下的线性方程组:
Ax=bAx=b
这里的 A(n×n)A(n×n) 是对称,正定矩阵, b(n×1)b(n×1) 同样也是已知的列向量,我们需要通过 AA 和 bb 来求解 x(n×1)x(n×1), 这其实是我们熟知的一些线性系统的表达式。
直接求解
首先,我们来看一种直观的解法,我们定义满足如下关系的向量为关于 矩阵 AA 的共轭向量,
uTAv=0uTAv=0
因为矩阵 AA 是对称正定矩阵,所以矩阵 AA 定义了一个内积空间:
⟨u,v⟩A:=⟨Au,v⟩=⟨u,ATv⟩=⟨u,Av⟩