第六章解线性方程组的迭代法

Download Report

Transcript 第六章解线性方程组的迭代法

第6章
解线性方程组的迭代法
1
6.1
引
言
考虑线性方程组
Ax  b,
(1.1)
其中 A为非奇异矩阵,当 A为低阶稠密矩阵时,第5章所讨
论的选主元消去法是有效方法.
但对于 A的阶数 n 很大,零元素较多的大型稀疏矩阵
方程组,例如求某些偏微分方程数值解所产生的线性方程
组来说,利用迭代法求解则更为合适.
迭代法通常都可利用 A中有大量零元素的特点.
2
迭代法就是用某种极限过程去逐步逼近线性方程组精
确解的方法,其具有需要计算机的存储单元较少、程序设
计简单、原始系数矩阵在计算过程中始终不变等优点.
由于迭代法是通过逐次迭代来逼近方程组的解的,因此
收敛性和收敛速度是构造迭代法时要注意的问题.
问题:是否可以构造一种适合于一般情况的迭代法呢?
答案是否定的.这是因为不同的系数矩阵具有不同的性态,
一般地每一种迭代法都具有一定的适用范围.
3
如何构造迭代法的计算格式呢?
设方程组为 Ax  b ,将其变形为 x  Bx  f
构造下面迭代格式:
x ( k 1)  Bx( k )  f , (k  0,1,2,)
. 由此
(1.2)
对于给定方程组 Ax  b ,设有惟一解 x * ,则
(1.3)
x*  Bx *  f .
又设 x ( 0 )为任取的初始向量,按上述迭代格式可构造向量序
列 x ( k ) , 其中 k 表迭代次数.
问题:
x
(k )
 是否收敛于
x
*
呢?
4
(k )
分析: 研究 { x }的收敛性.
引进误差向量
ε ( k 1)  x ( k 1)  x*,
由(1.2)减去(1.3)式,得ε ( k 1)  Bε ( k )
(k  0,1,2,),
递推得
ε ( k )  Bε ( k 1)    B k ε ( 0 ) .
要考察 { x (k ) }的收敛性, 就要研究 B 在什么条件下能使
lim ε ( k )  0,
k 
由初始向量 x ( 0 ) 的任意性知,即要研究 B 满足什么条件时有
lim B k  0
k 
(零矩阵).
5
定义1
(1) 对于给定的方程组 x  Bx  f,用公式(1.2)
逐步代入求近似解的方法称为迭代法(或称为一阶定常迭代
法,这里 B与 k 无关).
(2) 如果 lim x ( k ) 存在(记为 x * ),称此迭代法收敛,
k 
显然 x *就是方程组的解,否则称此迭代法发散.
 x1  2 x 2  5
如对方程组 
,易求得其解为: x *  ( 3,4).
 x 2  3 x1  5
 x1 ( k  1 )  2 x 2 ( k )  5
构造迭代格式(1)  ( k  1)
(k )
x

3
x
5
1
 2
显然迭代格式(1)对任何的初始向量,得到的序列都不收敛.
6
构造迭代格式(2)
k
0
1
2
x1( k )
0
-1.700
-2.500
x2( k )
0
-2.500
-3.334
1
5
 ( k 1)
(k )

x2

 x1
3
3

1
5
(k )
 x 2 ( k 1) 
x1

2
2

…
7
8
9
10
-2.778
…
-2.994
-2.998
-2.999
-3.000
-3.750
…
-3.993
-3.997
-3.999
-4.000
3
(k )
{
x
}的收敛性于迭代格式有关.
此例说明:
7
6.2
基本迭代法
设有
Ax  b,
(2.1)
其中,A  (aij )  R nn 为非奇异矩阵.
将 A分裂为
A  M  N,
(2.2)
其中,M为可选择的非奇异矩阵,且使 Mx  d 容易求解,
一般选择为 A的某种近似,称 M为分裂矩阵.
8
于是,求解 Ax  b 转化为求解Mx  Nx  b,即求解
Ax  b  求解x  M 1 Nx  M 1b.
可构造一阶定常迭代法
 x ( 0 ) (初始向量 ),
 ( k 1)
(k )
x

Bx
 f,
k  0,1,2, 

(2.3)
其中
BM
1
1
1

I

M
A,

M
(
M

A
)
N
f  M 1b.
称 B  I  M 1 A 为迭代法的迭代矩阵.
9
选取 M阵,就得到解 Ax  b的各种迭代法.
设 aii  0(i  1,2,, n) , 并将A 写为三部分:
 a11


A



0







a22






ann 
 0

  a21
 

  an1,1
 a
n1

 a12

 a1,n1
0

 a2,n1


0
0


 an1, 2

0
 an 2

 an ,n1
 a1n 

 a2 n 
 D  L  U.
 

 an1,n 
0 






0 
(2.4)
10
6.2.1
雅可比迭代法
由 aii  0(i  1,2,, n) ,选取M为A 的对角元素部分,
即选取 M  D(对角阵), A  D  N,由(2.3)式得到
解 Ax  b 的雅可比(Jacobi)
 x ( 0 ) (初始向量 ),
 ( k 1)
(k )
x

Bx
 f,
k  0,1,2, ,

其中
(2.5)
B  I  D 1 A D 1 ( L  U )  J ,
f  D 1b.
称 J 为解 Ax  b的雅可比迭代法的迭代阵.
11
研究雅可比迭代法(2.5)的分量计算公式.
记
x ( k )  ( x1( k ) , , xi( k ) , , xn( k ) )T ,
由雅可比迭代公式(2.5),
有
Dx( k 1)  ( L  U ) x ( k )  b,
或
aii x
( k 1)
i
i 1
   aij x
j 1
(k )
j

n
(k )
a
x
 ij j  bi
( i  1,2,, n).
j  i 1
于是,解 Ax  b的雅可比迭代法的分量计算公式为
12









x ( 0 )  ( x1( 0 ) ,  , x n( 0 ) )T ,
x i( k 1)


n

(k ) 
  bi   a ij x j  / a ii ,
j 1


j

i


( i  1,2, , n)
(2.6)
(k  0,1, 表示迭代次数).
由(2.6)式可知,雅可比迭代法计算公式简单,每迭代
一次只需计算一次矩阵和向量的乘法且计算过程中原始矩
阵 A始终不变.
13
6.2.2
高斯-塞德尔迭代法
选取分裂矩阵 M为 A 的下三角部分,即选取 M  D  L
(下三角阵),A  M  N , 于是由(2.3)式得到解 Ax  b
的高斯-塞德尔(Gauss-Seidel)
 x ( 0 ) (初始向量),
 ( k 1)
(k )
x

Bx
 f , k  0,1,2, ,

(2.7)
其中B  I  ( D  L) 1 A  ( D  L) 1U  G , f  ( D  L) 1 b.
称 G  ( D  L) 1U 为解 Ax  b的高斯-塞德尔迭代法的迭
代阵.
14
研究高斯-塞德尔迭代法的分量计算公式.
记
x ( k )  ( x1( k ) , , xi( k ) , , xn( k ) )T ,
由(2.7)式有
( D  L) x ( k 1)  Ux( k )  b,
或
Dx( k 1)  Lx ( k 1)  Ux( k )  b,
即
i 1
aii xi( k 1)  bi   aij x (jk 1) 
j 1
n
(k )
a
x
 ij j
( i  1,2, , n).
j  i 1
15
于是解 Ax  b 的高斯-塞德尔迭代法计算公式为
 x ( 0 )  ( x1( 0 ) ,  , x n( 0 ) )T (初始向量),


i 1
n
 ( k 1) 

( k 1)
(k )
 xi
  bi   a ij x j
  a ij x j  / a ii ,

j 1
j  i 1



(2.8)

 i  1, , n; k  0,1,.
或
 x ( 0 )  ( x1( 0 ) ,  , x n( 0 ) ) T ,

 x ( k 1)  x ( k )  x ,
i
i
 i

i 1
n


(
k

1
)
(k )
 x   b 
a ij x j
  a ij x j  / a ii ,

i
i


j 1
ji



(2.9)
 i  1, , n; k  0,1,.
16
雅可比迭代法不使用变量的最新信息计算 x i( k  1 ) ,
而由高斯-塞德尔迭代公式可知, 计算 x ( k  1 )
i 个分量
x i( k  1 )时,
利用了已经计算出的最新分量 x (jk 1) ( j  1,2,, i  1).
高斯-塞德尔迭代法可看作雅可比迭代法的一种改进.
由(2.8)可知,高斯-塞德尔迭代法每迭代一次只需计算
一次矩阵与向量的乘法.
算法1 (高斯-塞德尔迭代法)
设 Ax  b,其中 A  R nn 为非奇异矩阵且 aii  0
( i  1,2, , n), 本算法用高斯-塞德尔迭代法解 Ax  b,
17
数组 x(n) 开始存放 x ( 0 ) , 后存放 x (k ) , N 0 为最大迭代次数.
1. xi  0.0 (i 1,,n)
2. 对于 k 1,2,, N 0
对于 i 1,,n
i 1

x i   bi   a ij x j 
j 1


a ij x j  / a ii

j  i 1

n
迭代一次,这个算法需要的运算次数至多与矩阵A 的
非零元素的个数一样多.
18
例
 x1  2 x 2  5
设方程组 
, 写出Jacobi迭代法和
 x 2  3 x1  5
Gauss-Seidel迭代法的迭代格式,并求解(计算到k=3,保留2位小数).
解
Jacobi迭代法的迭代格式:
 x ( 0 )  (0,0)T
 ( k 1)
 5  2 x2( k )
 x1
 ( k 1)
 5  3 x1( k )
x2

 k  0,1,2,
 x ( 0 )  (0,0)T
 ( k 1)
(k )
x

5

2
x
1

2
Gauss-Seidel迭代法的迭代格式  ( k 1)
( k 1)
x

5

3
x
2

1

 k  0,1,2, 
19
6.2.3
解大型稀疏线性方程组的逐次超松弛迭代法
选取分裂矩阵 M为带参数的下三角阵
M 
1

( D  L),
其中  0为可选择的松弛因子.
于是,由(2.3)可构造一个迭代法,其迭代矩阵为
L  I   ( D  L) 1 A ( D L) 1 ((1 ) D U ).
从而得到解 Ax  b 的逐次超松弛迭代法(Successive Over
Relaxation Method, 简称SOR
).
20
解 Ax  b 的SOR方法为
 x ( 0 ) (初始向量),
 ( k 1)
(k )
x

L
x
 f , k  0,1,2, ,


(2.10)
其中
L  ( D  L) 1 ((1   ) D  U ),
f   ( D  L) 1 b.
研究解 Ax  b的SOR迭代法的分量计算公式.
记
x ( k )  ( x1( k ) , , xi( k ) , , xn( k ) )T ,
21
由(2.10)式可得
( D  L) x ( k 1)  ((1   ) D  U ) x ( k )  b,
或
Dx( k 1)  Dx( k )   (b  Lx ( k 1)  Ux( k )  Dx( k ) ).
由此,得到解 Ax  b 的SOR方法的计算公式
 x ( 0 )  ( x1( 0 ) ,  , x n( 0 ) ) T ,

i 1
n



( k 1)
(k )
( k 1)
(k )

 xi
 x i    bi   a ij x j
  a ij x j  / a ii ,

j 1
j  i 1



 i  1, , n; k  0,1, , 为松弛因子.
(2.11)
22
或
 x ( 0 )  ( x1( 0 ) ,  , x n( 0 ) ) T ,

 x ( k 1)  x ( k )  x ,
i
i
 i

i 1
n



( k 1)
(k )
  a ij x j  / a ii ,
 x i    bi   a ij x j
j 1
j  i 1




(2.12)
i

1
,

,
n
;
k

0
,
1
,

,

为松弛因子.


关于SOR迭代法 , 有
(1) 显然,当  1时,SOR方法即为高斯-塞德尔迭
代法.
23
(2) SOR方法每迭代一次主要运算量是计算一次矩阵
与向量的乘法.
(3) 当   1 时,称为超松弛法;当   1 时,称为低
松弛法.
(4) 在计算机实现时可用
max xi  max xi( k 1)  xi( k )  
1i  n
1i  n
控制迭代终止,或用 r ( k )

 b  Ax ( k )

  控制迭代
终止.
SOR迭代法是高斯-塞德尔迭代法的一种修正.
24
设已知 x ( k )及已计算 x ( k 1)的分量 x (jk 1) ( j 1,2,,i 1).
(1) 首先用高斯-塞德尔迭代法定义辅助量 ~
xi( k 1) ,
i 1

( k 1)
~
xi
  bi   a ij x (jk 1) 
j 1

n
a
j  i 1
ij
x
(k )
j

 / a ii .


(2.13)
(2) 再由 xi( k ) 与 ~
xi( k 1) 加权平均定义 xi( k 1) ,即
~ ( k  1 ) x ( k )   ( x
~ ( k 1)  x ( k ) ).
xi( k 1)  (1   ) xi( k )  x
i
i
i
i
(2.14)
将(2.13)代入(2.14)得到解 Ax  b 的SOR迭代(2.11)式.
25
用SOR
例
4

 1
 1

 1

1
1
4
1
1
4
1
1
1 

1 
1 


 4

x1 
 1

 
x2 
 1

,



x3
1

 
 1
x4 
 

它的精确解为 x*  (1,  1,  1,  1) T .
解
取 x (0)  0
 x1( k  1)
 ( k 1)
 x2
 ( k  1)
 x3
 ( k 1)
 x4
 x1( k )   (1  4 x1( k )  x 2( k )  x 3( k )  x4( k ) ) / 4;
 x2( k )   (1  x1( k 1)  4 x2( k )  x3( k )  x4( k ) ) / 4;
 x3( k )   (1  x1( k 1)  x2( k 1)  4 x3( k )  x4( k ) ) / 4;
 x4( k )   (1  x1( k 1)  x2( k 1)  x3( k 1)  4 x4( k ) ) / 4.
26
取   1.3,第11次迭代结果为
x (11)  (0.99999646,
 1.00000310,
 0.99999953,
 0.99999912) T ,
 (11)
2
 0.46 105.
取其他 值,迭代次数如下表.
27
松弛因子

满足误差
x
(k )
 x *  10
5
2
松弛因子

满足误差
x ( k )  x *  10  5
2
1.0
的迭代次数
22
1.5
的迭代次数
17
1.1
17
1.6
23
1.2
12
1.7
33
1.3
11(最少迭代次数)
1.8
53
1.4
14
1.9
109
从此例看到,松弛因子选择得好,会使SOR迭代法的
收敛大大加速. 本例中   1.3是最佳松弛因子.
28
例
用雅可比迭代法和高斯-塞德尔迭代法解线性方程组:
3 x1  x2  2

 x1  2 x2  1
(0)
(0)
(
取
x

x
 0)
精确至三位有效数字。
1
1
( k  1)

 ( 2  x2( k ) ) / 3
 x1
, k  0,1,2,
解 雅可比迭代格式: ( k 1)
(k )

 (1  x1 ) / 2
 x2
计算结果:
k
0
x1( k )
x2( k )
1
2
3
4
0
0.66667
0.50000
0.61111
0.58333
0
0.50000
0.16667
0.25000
0.19445
k
5
6
7
x1( k )
0.60185
0.59722
0.60031
0.59954
0.60005
x2( k )
0.20833
0.19908
0.20139
0.19985
0.20023
因而 x1*  0.600, x2*  0.200 .
8
9
29
高斯-塞德尔迭代格式
( k 1)

 ( 2  x2( k ) ) / 3
 x1
, k  0,1,2,
 ( k 1)
( k 1)

 (1  x1 ) / 2
 x2
计算结果:
k
0
1
2
3
4
5
x1( k )
0
0.66667
0.61111
0.60185
0.60031
0.60005
x2( k )
0
0.16667
0.19445
0.19908
0.19985
0.19975
因而 x1*  0.600, x2*  0.200 .
有上述结果可看出:高斯-塞德尔迭代法比雅可比迭代法收
30
敛得快。
6.3
6.3.1
迭代法的收敛性
一阶定常迭代法的基本定理
设
Ax  b,
(3.1)
其中 A  (aij )  R nn 为非奇异矩阵,记 x *为(3.1)精确解,
且设有等价的方程组
Ax  b  x  Bx  f .
于是
x*  Bx *  f .
(3.2)
31
设有解 Ax  b 的一阶定常迭代法
x ( k 1)  Bx ( k )  f .
(3.3)
由6.1节可知,研究迭代法(3.3)收敛性问题就是要研究
ε  的收敛问题.
(k )
由于ε ( k )  x ( k )  x *  B( x ( k 1)  x * )
 Bε ( k 1)    B k ε ( 0 )
( k  0,1,2, ).
因此就是研究迭代矩阵 B满足什么条件时,有
lim B k  0
k 
(零矩阵).
32
定义2
设有矩阵序列 Ak  (aij( k ) )  R nn 及 A  (aij )  R nn ,
如果下面 n 2个数列极限存在且有
lim aij( k )  aij
k 
( i , j  1,2,, n),
则称 { Ak } 收敛于 A , 记为 lim Ak  A.
k 
矩阵序列极限概念可以用矩阵算子范数来描述.
定理1 lim Ak  A  lim Ak  A  0,
k 
k 
其中‖·‖为矩阵的任意一种算子范数.
证明 显然有
lim Ak  A  lim Ak  A
k 
k 

 0.
再利用矩阵范数的等价性,可证定理对其他算子范数也对.
33
定理2 lim Ak  A 对任何向量 x  R n都有 lim Ak x  Ax.
k 
k 
证明
必要条件:
由lim Ak  A, 知 lim aij( k )  aij , 从而有lim || Ak  A || 0
k 
k 
k 
因此对于任意的x, 有 || Ak x  Ax |||| Ak  A || || x || 0(k   )
即 lim Ak x  Ax.
k 
充分条件: x  R n , 有 lim Ak x  Ax.
k 
取xi  (0, ,0,1,0, ,0)T , ( i  1,2, , n) ,则 k  时
(k ) T
Ak xi  (a1( ik ) , a2( ki ) , , ani
)  Axi  (a1i , a2 i , , ani )T ,
故k  时,aij( k )  aij (i  1,2,, n; j  1,2,, n)
即k  时,Ak  A,
lim Ak  A.
k 
34
定理3 设 B  (bij )  R nn , 则 lim B k  0 (零矩阵)的
k 
充分必要条件是矩阵 B 的谱半径  ( B )  1.
证明 由矩阵 B的若当标准型,存在非奇异矩阵 P 使
 J1


P 1 BP  



J2




  J,

Jr 

其中若当块
 i


Ji  



1
i





,
1

 i  ni  ni
35
r
且
1
n

n
显然有
B

PJP
,
,
 i
B k  PJ k P 1 ,
i 1
其中
Jk
 J1k






J 2k

于是lim B k  0  lim J ik  0
k 
k 



.

k 
Jr 
(i  1,2,, r ).
k
下面考查 J i 的情况. 引进记号
Et , k
0
 
0
I  }t  k

 R t t
0
(t  ni ).
36
(当k  t ), ( Et ,1 ) k  Et ,k .
显然有,Et , 0  I ,Et ,k  0
由于 J i  i I  Et ,1, 因此
k
J  (i I  Et ,1 )   C 
k
i
k
j 0
 ki







j
k
k j
i
t 1
j k j
( Et ,1 )   C k i Et , j
j
j 0
C1k ki 1
C 2k ki  2

ki
C1k ki 1




C tk1ki  ( t 1) 

t  2 k ( t  2)
Ck i




C1k ki 1 

k
i
 t t
(i 1,2,, r ),
37
其中
k!
k (k 1)(k  j 1)
C 

.
j!(k  j )!
j!
j
k
k r c k  0 (0  c 1, r  0) ,得到
利用极限 lim
k 
lim Ckj k  j  0    1.
k 
J ik  0的充要条件是 i 1 (i 1,2,,r ) , 即
所以 lim
k 
 ( B)  1.
38
定理4 (迭代法基本定理) 设有方程组
x  Bx  f ,
(3.4)
及一阶定常迭代法
x ( k 1)  Bx ( k )  f .
(3.5)
对任意选的初始向量 x ( 0 ) ,迭代法(3.5)收敛的充要条件是
矩阵 B的谱半径  ( B )  1.
39
推论 设 Ax  b, 其中 A  D  L  U 为非奇异矩阵
且 D非奇异,则
(1) 解方程组的雅可比迭代法收敛的充要条件是  (J )  1 ,
其中 J  D 1 ( L  U ).
(2) 解方程组的高斯-塞德尔迭代法收敛的充要条件是
 (G )  1, 其中 G  ( D  L) 1U .
(3) 解方程组的SOR方法收敛的充要条件是 ( L )  1 ,
其中 L  ( D  L) 1 ((1   ) D  U ).
41
 x1  2 x 2  5
例 考察用J迭代法和G-S迭代法解方程组 
 x 2  3 x1  5
的收敛性.
解 J迭代法和G-S迭代法的迭代矩阵分别为
1
 1 0   0 0   0 2    0 2 
1
 
  
   

BJ  D ( L  U )  
 0 1   3 0   0 0    3 0 
1
BG  S
 1 0   0 0    0 2   1 0  0 2   1 2 
1
  
  
  

  

 ( D  L) U  
 0 1   3 0    0 0    3 1  0 0   0  6 
2
由特征方程det(λ I  BJ )  λ  6  0, 解得特征根 λ 1, 2   6 ,
即  ( B )  1 . 这说明用J迭代法解此方程组不收敛.
由特征方程 det(λ I  BG  S )  (λ  1)(λ  6)  0, 解得特征根
λ 1  1, λ 2  6 即  ( B )  1 .这说明用J迭代法解此方程组不收敛.
42
定理5 (迭代法收敛的充分条件) 设有方程组
x  Bx  f ,
B  R nn ,
及一阶定常迭代法
x ( k 1)  Bx ( k )  f .
如果有 B 的某种算子范数 B  q  1 ,则
(1) 迭代法收敛,即对任取 x ( 0 )
lim x k  x *
k 
且
x*  Bx *  f .
(2)
x *  x ( k )  q k x *  x ( 0) .
(3)
x *x
(k )
q

x ( k )  x ( k 1) .
1 q
43
(4)
x *x
(k )
qk

x (1)  x ( 0 ) .
1 q
证明 (1) 由基本定理4结论(1)是显然的.
( k 1)
 B( x *  x ( k ) )及
(2) 由关系式x *  x
x ( k 1)  x ( k )  B( x ( k )  x ( k 1) ).
有
(a)
x ( k 1)  x ( k )  q x ( k )  x ( k 1) ;
(b)
x *  x ( k 1)  q x *  x ( k ) .
反复利用(b)即得(2).
44
(3) 考查
x ( k 1)  x ( k )  x *  x ( k )  ( x *  x ( k 1) )
 x *  x ( k )  ( x *  x ( k 1) )
 (1  q) x *  x (k ) ,
即
x *  x (k ) 
1
x ( k 1)  x ( k )
1 q
q

x ( k )  x ( k 1) .
1 q
(4) 反复利用(a), 则得到(4).
45
6.3.2
关于解某些特殊方程组迭代法的收敛性
定义3 (对角占优阵) 设 A  (aij ) nn .
(1) 如果 A的元素满足
n
aii   aij
(i  1,2,  , n),
j 1
j i
称 A为严格对角占优阵.
(2) 如果 A 的元素满足
n
aii   aij
(i  1,2, , n),
j 1
j i
且上式至少有一个不等式严格成立,称 A为弱对角占优阵.
46
定义4 (可约与不可约矩阵) 设 A  (aij ) nn (n  2) ,
12 
如果存在置换阵 P 使 P T AP   11
,
(3.6)
 0
A22 

其中 A11为 r 阶方阵, A22为 n  r 阶方阵 (1  r  n) ,则称
A为可约矩阵.
否则,如果不存在这样置换阵 P 使(3.6)式成立,则
称 A为不可约矩阵.
A为可约矩阵意即 A 可经过若干行列重排化为(3.6)或
A
A
Ax  b可化为两个低阶方程组求解.
事实上,由 Ax  b 可化为 P T AP ( P T x )  P T b,
 A11 A12  y1   d 1 
    
于是,求解 Ax  b化为求解 
 0 A22  y2   d 2 
 A11 y1  A12 y2  d1 ,
即求解下面两个低阶的方程组 
A22 y2  d 2 .

47
例
 b1

 a2
A




设有矩阵
c1
b2
c2



an 1
bn 1
an


 4


,
 1
 B
1
cn 1 

 0


bn 
1
1
4
0
0
4
1
1
0 

 1
.

1

4 
(ai ,bi ,ci 都不为零 )
则 A, B 都是不可约矩阵.
显然,如果 A 所有元素都非零,则 A为不可约阵.
48
定理6 (对角占优定理)
如果 A  ( aij ) nn为严格对角
占优矩阵或 A为不可约弱对角占优矩阵,则 A为非奇异矩阵.
定理7 设 Ax  b, 如果:
(1) A为严格对角占优阵,则解 Ax  b 的雅可比迭
代法,高斯-塞德尔迭代法均收敛.
(2) A为弱对角占优阵,且 A为不可约矩阵,则解
雅可比迭代法,高斯-塞德尔迭代法均收敛.
Ax  b,
定理8 (SOR方法收敛的必要条
设解方程组 Ax  b
件)
则 0    2.
的SOR迭代法收敛,
定理9
设 Ax  b ,如果
(1) A 为对称正定矩阵,A  D  L  U ;
(2)
0    2.
则解 Ax  b的SOR迭代法收敛.
49
定理10
设 Ax  b ,如果
(1) A 为严格对角占优矩阵(或A 为弱对角占优不可约
矩阵);
(2)
0    1.
则解 Ax  b 的SOR迭代法收敛.
下面讨论迭代法的收敛速度.
结论1: 如果  ( B)  1 则  (B ) 越小,迭代法收敛越快.
50
结论2:设 B 为对称矩阵,则使初始误差缩小10-s 所需的
s ln 10
(3.10)
迭代次数k应满足 k 
.
 ln  ( B )
k (0)
(k )
(k )
证明: 由于误差向量 ε  x  x *  B ε , 故
k
ε ( k )  B  ε ( 0) .
由定理20知
取2-范数,可得
ε (k )
 B 2  ε ( 0)
k
2
2
B 2   ( B) , 所以
ε (k )
 B 2  ε ( 0)
k
2
  ( B)  ε (0) .
k
2
2
欲使  ( B ) k  10  s . 取对数,得到所需最少迭代次数k应满足
s ln 10
k
.
 ln  ( B )
这说明,所需迭代次数与 R   ln  ( B) 成反比.
 ( B)  1 越小,R   ln  ( B) 越大,由(3.10)式所需
迭代次数越少,即迭代法收敛越快.
51
定义5
称 R( B)   ln  ( B) 为迭代法(3.9)的渐近收敛
速度,简称迭代法收敛速度.
对于SOR迭代法希望选择松弛因子 使迭代过程(2.10)
收敛较快,在理论上即确定 opt 使
min  ( L )   ( Lo p t ).
0  2
对某些特殊类型的矩阵,已建立了SOR方法最佳松弛因
子理论.
例如,对所谓具有“性质A
” 等条件的线性方程组
建立了最佳松弛因子公式
52
opt 
2
1  1  (  ( J ))
2
,
其中  (J ) 为解Ax  b 的雅可比迭代法的迭代矩阵的谱半径.
在实际应用中,对于某些椭圆型微分方程(模型问题),
可以给出 opt 的计算方法,
但一般来说,计算 opt 是有困难的,可用试算的办法
来确定一个适当的 .
算法2 (SOR迭代法) 设 Ax  b ,其中 A为对称正定
矩阵或为严格对角占优阵或为弱对角占优不可约矩阵等,
53
本算法用SOR迭代法求解 Ax  b, 数组 x(n)存放 x ( 0 )
及 x (k ), 用 p0 max xi  eps控制迭代终止, 用 N 0表示最大
1i  n
迭代次数.
1. k  0
2. xi  0.0 (i 1,2,,n)
3. k k 1
4. p0  0.0
5. 对于i 1,2,, n
i1
n
j 1
j i
(1)p  xi   (bi  aij x j  aij x j ) / aii
54
(2) 如果 p  p0 则p0  p
(3) xi  xi  p
6. 输出p0
7. 如果p0  eps, 则输出 k , , x,
停机
8. 如果k  N 0 则转3
9. 输出N0及有关信息
(k )
r
也可用

 eps来控制迭代终止,其中r ( k )  b  Ax ( k ) .
55
6.4
分块迭代法
56
上述迭代法,从 x ( k )  x ( k 1) 计算时,是逐个计算 opt
的分量 xi( k 1) (i  1,2, , n) ,这种迭代法又称为点迭代
法.
分块迭代法,就是一块或一组未知数同时被改进.
设 Ax  b,其中 A  R nn为大型稀疏矩阵且将A 分
块为三部分 A  D  L  U ,
 A11

 A21
A


A
 q1
A12

A22


Aq 2

A1q 
 A11


A2 q 

,
D


 



Aqq 

A22




,

Aqq 
57
 0

  A21
L


 A
q1


0




,
 U 




0

0


 Aq 2

 A12

0


 A1q 

 A2 q 
,



0 
q
且 Aii (i  1,2,, q ) 为 ni  ni 非奇异矩阵,ni  n.
i1
对 x及 b 同样分块
 x1 


 x2 
x 
,




x 
 q
 b1 
 
 b2 
b   ,

 
b 
 q
n
n
其中,xi  R , bi  R .
i
i
58
(1)
块雅可比迭代法(BJ)
选取分裂阵 M为 A的对角块部分,即选
 M  D (块对角阵)

A  M  N .
于是,得到块雅可比迭代法
x ( k 1)  Bx ( k )  f,
(4.1)
其中迭代矩阵B  I  D 1 A  D 1 ( L  U )  J , f  D 1b.
或
Dx( k 1)  ( L  U ) x ( k )  b.
59
由分块矩阵乘法,得到块雅可比迭代法的具体形式
Aii x
( k 1)
i
q
 bi   Aij x (jk )
(i  1,2,  , q ),
(4.1)
j 1
j i
其中
x(k )
 x1( k ) 
 (k ) 
 x2 

,
  
 x(k ) 
 q 
xi( k )  R ni .
这说明,块雅可比迭代法每迭代一步,从 x ( k )  x ( k 1) ,
需要求解 q 个低阶方程组
60
 Aii xi( k )  gi

(i  1,2, , q ),
(2)
其中gi为(3.12)式右边部分 .
块SOR迭代法(BSOR)
选取分裂矩阵 M为带松弛因子的 A 块下三角部分,
即
1

 M  ( D  L),



A  M  N .
得到块SOR迭代法
x ( k 1)  L x ( k )  f ,
(4.3)
61
其中迭代矩阵
L  I   ( D  L) 1 A
 ( D  L)1 ((1   ) D  U ),
f  ( D  L)1 b,
由分块矩阵乘法得到块SOR迭代法的具体形式
q
i 1

( k 1)
(k )
( k 1)
(k )
A
x

A
x


(
b

A
x

A
x


ii i
i
ij
j
ij
j )
 ii i
j 1
j i

 (i  1,2,  , q; k  0,1, ),


(4.4)

为松弛因子.

62
于是,当 x ( k )
x (jk 1) ( j  1,2,, i  1) 已计算时,解
低阶方程组(3.14)可计算小块 xi( k 1) .
从 x ( k )  x ( k 1) 共需要解 q 个低阶方程组,当 Aii 为三
对角阵或带状矩阵时,可用直接法求解.
定理11 设 Ax  b ,其中 A  D  L  U (分块形式).
(1) 如果 A 为对称正定矩阵,
(2) 0    2.
则解 Ax  b的BSOR迭代法收敛.
63