5.2
共轭梯度法及其基本性质5.2.1
预备知识定义
1 设
![]()
性质
1 设有![]()
则
[证明]若有一组数
![]()
则对一切
![]()
注意到
性质2 设向量
[证明]我们用构造法来证实上面的结论.
S0:取
S1:令
……
S
m:令![]()
取
![]()
容易验证:
性质3设
![]()
[证明]由下山算法可知,从
![]()
从而
![]()
性质4设
(1)
(2)
[证明](1)是性质3的直接推论,显然成立.
(2)由于
![]()
由于
![]()
于是
![]()
于是
![]()
对比
证明完毕
性质4是性质3的直接推论.但它给出了一种求(5
.1.1)的算法,这种算法称之为共轭方向法.结合性质2,我们可以得到如下的性质5.性质5设
S1:取
S2:计算
计算
如此进行下去,直到第
n步:S
n:计算计算
显然:
根据性质4可知,不论采用什么方法,只要能够构造
5.2.2
共轭梯度法算法步骤如下:
[预置步]任意
[主步]
(1)如果(2)计算:
(3)计算:
(4)置
定理5
.2.1 由共轭梯度法得到的向量组(1)
(2)
(3)
(4)
通常称之为
Krylov子空间.[证明]用归纳法.当
![]()
![]()
![]()
因此定理的结论成立.现在假设定理的结论对
利用等式
![]()
又由于
![]()
故定理的结论(1)对
利用归纳假定有
![]()
而由(1)所证知,
利用等式
![]()
并利用归纳法假定和(2)所证之结论,就有
![]()
成立;而由
![]()
这样,定理的结论(3)对
由归纳法假定知
![]()
进而
![]()
于是

再注意到(2)和(3)所证的结论表明,向量组
定理证毕
定理
5.2.1表明,向量定理
5.2.2 用共轭梯度法计算得到的近似解
或
其中
证明
注意到:假定共轭梯度法计算到

此外,对计算过程中的任一步
![]()
设
![]()
于是
![]()
而
![]()
再利用定理
5.2.1的(3)就可以推出

于是定理得证.
定理证毕
由定理
5.2.1,我们容易得出
![]()
![]()
由此可得
(5.2.4)
另外,从理论上讲,该迭代法经
从而,我们得到如下实用的共轭梯度算法:
[预置步]任意
[主步](1)计算:
(2)如果
(3)计算:
(4)置
注:在算法[主步]中,引入变量
结合程序设计的特点,共轭梯度法可改为如下实用形式:
算法5·3·1(解对称正定方程组:实用共轭梯度法)
![]()
![]()
while
and
![]()
![]()
if ![]()
else
![]()
end

end
共轭梯度法作为一种实用的迭代法,它主要有下面的优点:
算法中,系数矩阵A的作用仅仅是用来由已知向量
不需要预先估计任何参数就可以计算,这一点不像SOR等;
每次迭代所需的计算,主要是向量之间的运算,便于并行化。
5.2.3
收敛性分析将共轭梯度法作为一种迭代法,它的收敛性怎样呢?这是本节下面主要讨论的问题:
定理5
.2.3 如果证明
注意到![]()
的维数不会超过
定理证毕
定理
5·2·3表明,若线性方程组(5·1·1)的系数矩阵与单位相关一个秩定理
5·2·4 用共轭梯度法求得的
其中
证明
由定理5·2·1可知,对任意的

记

其中
是

是

于是,我们有
![]()
因此,定理得证。
定理证毕
虽然定理
5·2·5所给出的估计是十分粗糙的,而且实际计算时其收敛速度往往要比这个估计快得多,但是它却提示了共轭梯度法的一个重要的性质:只要线性方程组(5·1·1)的系数矩阵是十分良态的(即