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
1i n
定义:如果存在矩阵G使:G(I – M)=A,Gg=b.
则称迭代法与方程组Ax=b是相容的。
引理1 迭代法 x ( k 1) Mx ( k ) g 收敛当且仅当
M k 0 (k )
nn
引理4.3.2 设 M C ,则有
nn
1. 对 C 上的任意矩阵范数 ,有
(M) M
2. 对任给的 0 ,存在 C nn上的算子范数 使得
M (M)
注: 引理的详细证明过程,请阅读第四章,第3节.
nn
定理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收敛。