第四章古典迭代解法

Download Report

Transcript 第四章古典迭代解法

河南师大数学与信息科学学院
线性方程组迭代解法
本章讨论解线性方程组 Ax  b 古典迭代解法。
主要内容包括:
•雅可比(Jacobi)迭代法
•高斯-赛德尔(Gauss-Seidel)迭代法
•超松驰(SOR)迭代法
•收敛性分析
单步线性定常迭代算法
假若线性方程组
Ax  b  x  M x  g
那 么,我 们 很 容 易 建 立 如 下 代
迭算 法
指 定 初 始 向 量
x (0) ,
 (k )
( k 1)
x

Mx
 g , k  1,2,

形 如(4.1)的 迭 代 称 作单步线性定常迭代.
其 中M  R n n叫
做迭代矩阵, g  R n叫 做常数项, x ( 0 )  R n叫 做初始向量.
如 果 由 算 法 产 生 的 向序
量 列 有 极 限,则 称 该 迭 代 法 是 收
敛 的;否 则 就 称 它 是 不 收 敛 或
的 发 散 的.
雅可比(Jacobi)迭代法
考虑线性方程组
Ax  b
令A  D  L  U ,其 中: D  diag(a11 , a22 ,, ann ),
 0

0  a12
 a


0
0
21



 ,U  
L    a31  a32 0










 an1  an 2   an 1, n 0



那么, Ax  b可等价写成
x  Bx  g
其中B  D 1 ( L  U ), g  D 1b.
从 而,我 们 得 到Jacobi迭 代 法:
给 定x ( 0 )  ( x1( 0 ) , x2( 0 ) ,, xn( 0) )T ,
 (k )
( k 1)
x

Bx
 g, k  1,2,

其 中B称 为Jacobi迭 代 矩 阵。
 a13
 a23

 a1n 
  a2 n 

 

0  an 1, n 
0 

雅可比迭代法的分量形式
注 意 到Jacobi迭 代 矩 阵
a12

0


a11

  a21
0
 a22
 a
a32
31
1



B  D (L  U ) 
a33
 a33


 

an, 2
 an,1


 a
an, n
 n, n
a13
a11
a
 23
a22


0





 b1 

a 

 11 

 b2 

 a22 



  , g   b3 

 a33 
a



 n 1, n 



an, n 


b

 n 
0 
 ann 

a1n
a11
a
 2n
a22



an, n 1
an, n
于 是, Jacobi迭 代 法 的 分 量 形 式 为
i 1
 ( k ) 
 xi   bi   ai , j x (jk 1) 

j 1


i  1,2,, n.
k  1,2,.
n
a
j  i 1
i, j
x
( k 1)
j

 ai , i


雅可比迭代程序设计
编制计算程序时,应注意以下几个问题:
1. 算法的实现
根据迭代法的特点
, 设 置 向 量x和y, x作 为 输 入, y作 为 输 出
,这 样
y : D 1[(L  U ) x  b]
2. 算法的终止
预 定 一 个 允 许 误 差 常 量 0, 并 确 定 一 种 向 量 范 数
,当
y x 
终 止 算 法;否 则 继 续 迭 代
.
如 果 考 虑 到 算 法 发 散情
的 形, 还 需 要 增 设 迭 代 次 数 量
变count和 最
大 限 定 值CNT ,当
count  CNT
时迭代继续
,否 则 迭 代 终 止
.
3. 程序设计
点击对象展开程序
高斯-赛德尔(Gauss-Seidel)迭代法
考虑线性方程组
Ax  b
令A  D  L  U ,其 中: D  diag(a11 , a22 ,, ann ),
 0

0  a12
 a


0
0
21



 ,U  
L    a31  a32 0










 an1  an 2   an 1, n 0



 a13
 a23

那么, Ax  b可等价写成
x G x  g
其中G  ( D  L) 1U , g  ( D  L) 1 b.
从 而, 我 们 得 到G  S (Gauss  Seidel)迭 代 法:
给 定x ( 0 )  ( x1( 0 ) , x 2( 0 ) ,  , x n( 0) )T ,
 (k )
( k 1)
x

G
x
 g, k  1,2, 

其 中G称 为G  S (Gauss  Seidel)迭 代 矩 阵。
 a1n 
  a2 n 

 

0  an 1, n 
0 

G-S迭代法的分量形式
( D  L) x ( k )  Ux ( k 1)  b, 所 以
x ( k )  D 1 Lx( k )  D 1Ux ( k 1)  D 1b
于 是, G  S迭 代 法 的 分 量 形 式 为
i 1
n
 ( k ) 

(k )
( k 1)

 x i   bi   a i , j x j   a i , j x j  a i ,i

j 1
j  i 1



i  1,2,  , n.
k  1,2, .
注 意:
由于
(1)G  S迭 代 法 的 分 量 形 式 与
Jacobi迭 代 的 分 量 形 式 非 常 似
相,
区 别 仅 在 于 右 端 迭 代子
式中 的 前 一 个 和 式 中时
及地 使 用 了 输
出 向 量 的 已 计 算 好 的量
分.
(2) Jacobi迭 代 与 分 量 的 顺 序 没 关
有 系,而G  S迭 代 法 与 分 量 的
计算顺序有关
.
(3)尽 管Jacobi迭 代 法 和G  S迭 代 法 的 分 量 形 式 相,似
但迭代矩
阵 区 别 很 大,因 此 它 们 的 收 敛 性 有 很
着大 的 区 别
.
G-S迭代程序设计
编制计算程序时,应注意以下几个问题:
1. 算法的实现
根据迭代法的特点
,只 需 要 设 置 向 量
x ,既 作 为 输 入 又 作 为 输 出
x : D 1 [( L  U ) x  b ]
2. 算法的终止
预 定 一 个 允 许 误 差 常 量 0, 并 确 定 一 种 向 量 范 数
,当
y x 
终 止 算 法;否 则 继 续 迭 代
.
如 果 考 虑 到 算 法 发 散情
的 形, 还 需 要 增 设 迭 代 次 数 量
变count和 最
大 限 定 值CNT ,当
count  CNT
时迭代继续
,否 则 迭 代 终 止
.
3. 程序设计
点击对象展开程序
超松驰(Successive Overrelaxation)迭代法
考虑线性方程组
Ax  b
令A  D  L  U ,其 中: D  diag(a11 , a22 ,, ann ),
 0

0  a12
 a


0
0
21



 ,U  
L    a31  a32 0










 an1  an 2   an 1, n 0



 a13
 a23

 a1n 
  a2 n 

 

0  an 1, n 
0 

那么对于任一正数 , Ax  b可等价写成
x  (1   ) x   (G x  g )
其中G  ( D  L) 1U , g  ( D  L) 1 b.
从 而, 我 们 得 到SOR( Successive Overrelaxation)迭 代 法:
给 定x ( 0)  ( x1( 0) , x 2( 0) , , x n( 0) )T ,
 (k )
( k 1)
1
(k )
( k 1)
x

(
1


)
x


D
(
L
x

Ux
 b) , k  1,2, 

其迭代矩阵为
: L  ( D  L) 1[(1   ) D  U ]
SOR迭代法的分量形式
于 是, G  S迭 代 法 的 分 量 形 式 为
i 1
 ( k )

 x i  (1   ) x i( k 1)    bi   a i , j x (jk ) 

j 1


i  1,2, , n.

k  1,2, .
n
a
j i 1
i, j
x
( k 1)
j

 a i ,i


注 意:
(1) SOR迭 代 法 实 质 上 可 以 看 是
作G  S迭 代 的 一 种 外 推
,即
i 1
n


(
k
)
(
k
)
(
k
)
( k 1) ( k 1)
~

x i   bi   a i , j x j   a i , j x j  a i ,i
j 1
j  i 1


确定一个正数
 , 对x i( k 1)和~
x i( k ) 作 如 下 组 合
x ( k )  (1   ) x ( k 1)  ~
x (k )
i
i
i
(2)当  1时, SOR就 转 化 为 了
G  S迭 代 法.
(3)与G  S迭 代 法 一 样
, SOR迭 代 与 分 量 的 计 算 顺 有
序 关.
(4)由 于 算 法 引 入 了 松 驰 子
因 ,因 此SOR算 法 具 有 相 对 的 可 变,性
不 同 的 松 驰 因 子 可 能导
会致 不 同 的 迭 代 效 果
,甚 至 对 一 特 定 的 方
程 来 说, 应 该 存 在 最 佳 松 驰 因.子
G-S迭代程序设计
编制计算程序时,应注意以下几个问题:
1. 算法的实现
根据迭代法的特点
,只 需 要 设 置 向 量
x ,既 作 为 输 入 又 作 为 输 出
x : D 1 [( L  U ) x  b ]
2. 算法的终止
预 定 一 个 允 许 误 差 常 量 0, 并 确 定 一 种 向 量 范 数
,当
y x 
终 止 算 法;否 则 继 续 迭 代
.
如 果 考 虑 到 算 法 发 散情
的 形, 还 需 要 增 设 迭 代 次 数 量
变count和 最
大 限 定 值CNT ,当
count  CNT
时迭代继续
,否 则 迭 代 终 止
.
3. 程序设计
点击对象展开程序
单步线性定常迭代法的收敛性
线性方程组Ax  b  x  Mx  g单步线性定常迭代算法
指定初始向量x (0) ,
 (k )
( k 1)
x

Mx
 g , k  1, 2,

如果由算法产生的向量序列 x

(n) 
n 0
有极限, 则称该迭
代法是收敛的; 否则就称它是不收敛的或发散的.
注意: 迭代阵M不唯一,影响收敛性。
| i ( M ) |
定义:矩阵M的谱半径为: ( M )  max
1i  n
定义:如果存在矩阵G使:G(I – M)=A,Gg=b.
则称迭代法与方程组Ax=b是相容的。
引理1 迭代法 x ( k 1)  Mx ( k )  g 收敛当且仅当
M k  0 (k  )
nn
引理4.3.2 设 M  C ,则有
nn
1. 对 C 上的任意矩阵范数  ,有
(M)  M
2. 对任给的   0 ,存在 C nn上的算子范数  使得
M  (M)  
注: 引理的详细证明过程,请阅读第四章,第3节.
nn
定理1 M  R
, M  0(k  )当且仅当(M) 1.
k
定理2 单步线性定常迭代法收敛当且仅当 (M) 1.
例 1 当方程组的系数矩阵为
1 2  2 
A  1 1 1 
2 2 1 
可以验证:Jacobi迭代收敛,而Gauss-Seidel迭代不收敛。
例 2 当方程组的系数矩阵为
2  1 1 
A  1 1
1 
1 1  2
可以验证:Jacobi迭代不收敛,而Gauss-Seidel迭代收敛。
例3 对于方程组
3 x1  2 x2  1

5 x1  3 x2  2
Jacobi迭代公式为
( k 1)
1
2 (k )
0

x


 1
3
3 x2 ,迭代矩阵为B 
 5
 ( k 1) 2 5 ( k )
 3
 3  3 x1

 x2
 23 
,  ( B) 

0
10
3
1
Gauss-Seidel迭代公式为
( k 1)
1
2 (k )

x


 1
3
3 x2
 ( k 1) 2 5 ( k,迭代矩阵为
1)
x


x

3
3 1
 2
0  23 
10
G
,

(
G
)

9 1
10 
0 9 
显然,两种迭代都不收敛。
若将方程的顺序调整,即
5 x1  3 x2  2

3 x1  2 x2  1
Jacobi迭代公式为
( k 1)
3 (k )
2
0

x


 1
5
5 x2 ,迭代矩阵为B 
 3
 ( k 1) 1 3 ( k )
 2
x


x

 2
2
2 1
 53 
3 10
,

(
B
)


10  1
0
Gauss-Seidel迭代公式为
( k 1)
3 (k )
2

x


 1
5
5 x2
 ( k 1) 1 3 ( k,迭代矩阵为
1)
x


x

 2
2
2 1
0  53 
9
G
,

(
G
)

10  1
9 
0 10 
显然,两种迭代都收敛。
定理3 若迭代矩阵M的范数 M  q  1 且 I  1,则
单步线性定常迭代的第k次迭代向量 x
(k )
与准确解 x *
的误差有估计式
x (k )
k
q
 x* 
x (1)  x ( 0) ,
1 q
定理4 若迭代矩阵M的范数 M  q  1 且 I  1,则
单步线性定常迭代的第k次迭代向量 x
(k )
与准确解 x
的误差有估计式
x
(k )
q
( k 1)
(k )
x 
x
x ,
1 q
*
*
定理5
若系数矩阵A对称,对角线元素
aii  0(i  1,2,...,n)
则Jacobi迭代收敛的充分必要条件是A和2D-A都正定。
定理6
若系数矩阵A正定,则G-S迭代收敛。
定理7 若矩阵A是严格对角占优的或不可约对角
占优的,则A非奇异。
定理8 若A是严格对角占优的或不可约对角占优
的,则Jacobi迭代和G-S迭代收敛。
超松驰迭代收敛性
定理9 SOR收敛的充分和必要条件是  ( L )  1.
定理10 SOR收敛的必要条件是
0    2.
定理11 若系数矩阵A是严格对角占优的或不可约对
角占优的,且松驰因子 0
   1,则SOR收敛。