第五章 共轭梯度法
大家已经看到,在使用SOR方法求解线性方程组时,需要确定松驰因子,只有系数矩阵具有较好的性质时,才有可能找到最佳松驰因子,而且计算时还需要求得对应的Jacobi矩阵B的谱半径,这常常是非常困难的。
这一章,我们介绍一种不需要确定任何参数的求解对称正定线性方程组的方法——共轭梯度法(或简称CG法)。它是50年代初期由Hestenes和Stiefel首先提出的,近20年来有关的研究得到了前所未有的发展,目前有关的方法和理论已经相当成熟,并且已经成为求解大型稀疏线性方程组最受欢迎的一类方法。
共轭梯度法可由多种途径引入,这里我们将采用较为直观的最优化问题来引入。为此,我们先来介绍最速下降法。
5.1 最速下降法
考虑线性方程组
(5.1.1)
的求解问题。其中是给定的阶对称正定矩阵,是给定的维向量,是待求的维向量。为此,我们定义二次泛函
(5.1.2)
定理5.1.1 设对称正定,求解方程组等价于求二次泛函的极小点。
证明 直接计算可得
令,则有
若在某点处达到极小,则必有,从而有,即是方程组的解。
反之,若是方程组的解,即 于是对任一向量有
注意到A的正定性,则,因此,即是泛函的极小点。
定理证毕
这样,求解线性方程组的问题就转化为求二次泛函的极小点的问题。求二次函数的极小值问题,通常的做法就好象盲人下山那样,先任意给定一个初始向量,确定一个下山的方向,沿着经过点而方向为的直线找一个点
使得对所有实数有
也就是说,在这条直线上,使达到极小。然后从出发,再确定一个下山的方向,沿直线再找一个使得在点达到极小,即
如此等等。于是得到一串
和 ,
我们称为搜索方向,为步长。一般情况下是,先在点找下山方向,再在直线上确定步长使
,
最后求出. 对不同的确定搜索方向和步长的方法,就给出各种不同的算法。
我们先考虑如何确定步长。设从出发,已经选定了下山方向为。我们现在的任务是,在直线上确定使得在上达到极小。为此,令
其中 由初等微分学的理论知,由方程
所确定的即为所求的步长,即
. (5.1.3)
步长确定以后,即可算法
.
那么是否小于呢?因为
因此,只要,就有
再考虑如何确定下山方向,我们知道增加最快的方向是梯度方向,因此,负梯度方向应该是减小最快的方向,于是最简单而直观的做法是选取为负梯度方向,即这样便得到了如下算法:
算法5.1.1 (解对称正定方程组:最速下降法)
对于最速下降法有如下的收敛性定理。
定理5.1.2 设的特征值为,则由上述算产生的序列满足
,
其中
为了证明这一定理,我们先证一个引理。
引理5.1.1设的特征值为,是的一个实系数多项式,则
证明 设是的对应于的特征向量所构成的的一组标准正交基,则对应任意的的有,从而有
于是
引理证毕
定理5.1.2的证明 由满足
,
并注意到
(5.1.4)
由(5.1.4)得
于是有
(5.1.5)
对任意的成立。记,应用引理5.1.1,从(5.1.5)可得
(5.1.6)
对一切成立,再利用Chebyshev极小极大特征定理知,使取极小的充分必要条件是在区间上至少含有2个轮流为正负的偏差点。由于的线性性知,的交错点组恰好含有两个点,而且为和. 即
,于是得到,从而
. (5.1.7)
将(5.1.7)代入(5.1.6)即得
.
定理证明
定理5.1.2表明,从任一初始向量出发,由最速下降法产生的点列总是收敛到方程组(5.1.1)的解,其收敛的快慢由的大小来决定。
虽然最速下降法简单易用,又可以充分利用的稀疏性,但由于当时收敛速度变得非常之慢,因此很少用于实际计算。然而它提示了一种重要的思想,开辟了一条全新的求解线性方程组的途径。例如把上述方法稍加改进,就可得到著名的共轭梯度法。