第六章解线性方程组的迭代法
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 nn 为非奇异矩阵.
将 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)
其中
BM
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
an1,1
a
n1
a12
a1,n1
0
a2,n1
0
0
an1, 2
0
an 2
an ,n1
a1n
a2 n
D L U.
an1,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
ji
(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 nn 为非奇异矩阵且 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 )
1i n
1i 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 105.
取其他 值,迭代次数如下表.
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 nn 为非奇异矩阵,记 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 nn 及 A (aij ) R nn ,
如果下面 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 nn , 则 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 tk1ki ( 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 nn ,
及一阶定常迭代法
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 ) nn .
(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 ) nn (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 ) nn为严格对角
占优矩阵或 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 ) ( Lo 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表示最大
1i 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
i1
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 nn为大型稀疏矩阵且将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.
i1
对 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