参考自"Numerical Optimization" chapter 5. by S.Wright
对于如下线性方程组的求解,可以采用迭代方法,例如共轭梯度法(conjugate gradient method)
(1)
而该方程组的解的条件与下式取最小值条件一致
(2)
【注:对(2)式求导有】
一、共轭方向法
在介绍共轭梯度法之前,先介绍共轭方向法及相关概念。
对于n阶对称正定矩阵A,如果有一组非零向量满足
(3)
则称这组向量共轭。 很显然这组向量之间线性独立。A的一组特征向量即为满足这个条件的共轭向量。
给定一组共轭方向和一个起始点,我们可以得到一组点
(4)
(5)
【的推导请参考“Numerical Optimization”的式(3.39)】
我们可以得出下列定理
定理1:对于任意,由(4)、(5)式生成的x序列最多n步收敛到线性方程组(1)的解。
证明:因为p向量序列线性独立,那么它们可以张成n维实空间
那么与的差值可以如下表示
将等式两边同时乘以得到
所以 (6)
再假设是由(4)、(5)式得到的,那么有
将它左右两边同时乘以,可以得到
因此
对比(5),(6)式可以发现。命题得证。【】
二、共轭梯度法
共轭梯度法也是一种共轭方向法,不过在其基础上增加了一些优良性质:计算当前方向只需用到前一方向,对其他方向则无要求;计算出来的当前方向自动与前面所有方向共轭。这一优良性质意味着,不需耗费大量内存存储所有方向,也节省了计算时间。
下面详细叙述共轭梯度法。
每次计算选取当前点处的最速下降方向(与相等)和前一方向来得到当前方向。
(7)
(可以通过对(7)式两端同时乘以来计算出)
一般选取在起始点的最速下降方向。
算法总结如下:
定理2:若条件同定理1,则有
【详细证明参考Theorem5.2的证明】
定理3:如果第k次迭代得到的x不是最优解,则
【详细证明参考Theorem5.3的证明】
将上式和代入到中,有
【推导:
】
将上式和,代入到,有
【推导:
】
于是得到标准形式的共轭梯度法