数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/na18_fall/slide03.pdf · table...

116
数值计算方法 线性方程组的迭代解法 张晓平 2018 10 8 武汉大学数学与统计学院

Upload: others

Post on 20-Jul-2020

23 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

数值计算方法

线性方程组的迭代解法

张晓平

2018 年 10 月 8 日

武汉大学数学与统计学院

Page 2: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

Table of contents

1. Jacobi 迭代与 Gauss-Seidel 迭代

2. Jacobi 与 Gauss-Seidel 迭代的收敛性分析

3. 超松弛迭代法

1

Page 3: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

Jacobi 迭代与 Gauss-Seidel 迭代

Page 4: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

Jacobi 迭代与 Gauss-Seidel 迭代Jacobi 迭代法

Page 5: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

Jacobi 迭代法

设 aii ̸= 0, a11x1 +a12x2 +a13x3 = b1

a21x1 +a22x2 +a23x3 = b2

a31x1 +a32x2 +a33x3 = b3

=⇒

x1 = 1

a11

( −a12x2 −a13x3 +b1)

x2 = 1

a22

(−a21x1 −a23x3 +b2)

x3 = 1

a33

(−a31x1 −a32x2 +b3)

2

Page 6: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

Jacobi 迭代法

设 aii ̸= 0, a11x1 +a12x2 +a13x3 = b1

a21x1 +a22x2 +a23x3 = b2

a31x1 +a32x2 +a33x3 = b3

=⇒

x1 = 1

a11

( −a12x2 −a13x3 +b1)

x2 = 1

a22

(−a21x1 −a23x3 +b2)

x3 = 1

a33

(−a31x1 −a32x2 +b3)

2

Page 7: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

Jacobi 迭代法

设 aii ̸= 0, a11x1 +a12x2 +a13x3 = b1

a21x1 +a22x2 +a23x3 = b2

a31x1 +a32x2 +a33x3 = b3

=⇒

x1 = 1

a11

( −a12x2 −a13x3 +b1)

x2 = 1

a22

(−a21x1 −a23x3 +b2)

x3 = 1

a33

(−a31x1 −a32x2 +b3)

2

Page 8: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

Jacobi 迭代法

取 x(0) =(x(0)

1 , x(0)2 , x(0)

3

)T,代入上式右端得

x(1)1 = 1

a11

( −a12x(0)2 −a13x(0)

3 +b1)

x(1)2 = 1

a22

(−a21x(0)1 −a23x(0)

3 +b2)

x(1)3 = 1

a33

(−a31x(0)1 −a32x(0)

2 +b3)

3

Page 9: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

Jacobi 迭代法

x(k+1)1 = 1

a11

( −a12x(k)2 −a1,3x(k)

3 +b1)

x(k+1)2 = 1

a22

(−a21x(k)1 −a23x(k)

3 +b2)

x(k+1)3 = 1

a33

(−a31x(k)1 −a32x(k)

2 +b3)

4

Page 10: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

Jacobi 迭代法

考察线性方程组

Ax = b (1)

A = D+L+U

5

Page 11: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

Jacobi 迭代法

考察线性方程组

Ax = b (1)

A = D+L+U

D = diag(a11, a22, · · · , ann), aii ̸= 0

L =

0

a21 0...

. . .. . .

an1 · · · an,n−1 0

, U =

0 a12 · · · a1n

0. . .

.... . . an−1,n

0

5

Page 12: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

Jacobi 迭代法

考察线性方程组

Ax = b (1)

A = D+L+U

方程 (1) 可写成x = MJ x+g

其中MJ = −D−1(L+U),

g = −D−1b.

5

Page 13: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

Jacobi 迭代法

定义 : Jacobi 迭代格式

给定初始向量 x(0),可得迭代序列

x(k+1) = MJ x(k) +g , k = 0,1,2, · · · .

其中MJ = −D−1(L+U) → Jacobi 迭代矩阵,

g = −D−1b.

6

Page 14: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

Jacobi 迭代法

任给 x(0)i (i = 1,2, · · · ,n),对 k = 0,1,2, · · ·,

x(k+1)i = 1

aii

(−

i−1∑j=1

aijx(k)j −

n∑j=i+1

aijx(k)j +bi

)

= x(k)i + 1

aii

(bi −

n∑j=1

aijx(k)j

)

i = 1,2, · · · ,n.

7

Page 15: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

Jacobi 迭代与 Gauss-Seidel 迭代Gauss-Seidel 迭代

Page 16: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

Gauss-Seidel 迭代

Jacobi 迭代

x1(k+1) = 1

a11( −a12x(k)

2 −a1,3x(k)3 +b1)

x2(k+1) = 1

a22(−a21x(k)

1 −a23x(k)3 +b2)

x3(k+1) = 1

a33(−a31x(k)

1 −a32x(k)2 +b3)

Gauss-Seidel 迭代

x1(k+1) = 1

a11( −a12x(k)

2 −a13x(k)3 +b1)

x2(k+1) = 1

a22(−a21x(k+1)

1 −a23x(k)3 +b2)

x3(k+1) = 1

a33(−a31x(k+1)

1 −a32x(k+1)2 +b3)

8

Page 17: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

Gauss-Seidel 迭代

Jacobi 迭代

x1(k+1) = 1

a11( −a12x(k)

2 −a1,3x(k)3 +b1)

x2(k+1) = 1

a22(−a21x(k)

1 −a23x(k)3 +b2)

x3(k+1) = 1

a33(−a31x(k)

1 −a32x(k)2 +b3)

Gauss-Seidel 迭代

x1(k+1) = 1

a11( −a12x(k)

2 −a13x(k)3 +b1)

x2(k+1) = 1

a22(−a21x(k+1)

1 −a23x(k)3 +b2)

x3(k+1) = 1

a33(−a31x(k+1)

1 −a32x(k+1)2 +b3)

8

Page 18: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

Gauss-Seidel 迭代

定义 : Gauss-Seidel 迭代

给定初始向量 x(0),可得迭代序列

Dx(k+1) =−Lx(k+1) −Ux(k) +b, k = 0,1,2, · · · .

x(k+1) = MGSx(k) +g , k = 0,1,2, · · · .

其中MGS = −(D+L)−1U ,

g = (D+L)−1b.

9

Page 19: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

Jacobi 与 Gauss-Seidel 迭代的收敛性分析

Page 20: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

Jacobi 与 Gauss-Seidel 迭代的收敛性分析收敛的充分必要条件

Page 21: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛的充分必要条件

定义

对于线性方程组

Ax = b, (2)

给定初值 x(0),迭代格式为

x(k+1) = Mx(k) +g , k = 0,1,2, · · · , (3)

称该迭代格式代为单步线性定常迭代,其中

• M ∈Rn×n →迭代矩阵• g ∈Rn →常数项• x(0) ∈Rn →初始向量

10

Page 22: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛的充分必要条件

若对任意初始向量,由 (3) 产生的迭代序列都有极限,则称该迭代法是收敛的;否则称为发散的。

11

Page 23: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛的充分必要条件

• Jacobi 迭代M =−D−1(L+U), g = D−1b

• Gauss-Seidel 迭代

M =−(D+L)−1U , g = (D+L)−1b

12

Page 24: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛的充分必要条件

若 (3) 收敛,记其极限为 x∗,则两端取极限得

x∗ = Mx∗+g ⇒ (I −M)x∗ = g . (4)

若该式与 (2) 等价,则存在可逆矩阵 G ∈Rn×n 使得

G(I −M) = A, Gg = b. (5)

当上式成立时,称迭代法 (3) 与方程组 (2)相容。

13

Page 25: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛的充分必要条件

e(k) = x(k) −x∗

为 x∗ 在第 k 步的误差向量。

Ax∗ = b同解方程⇐=======⇒ x∗ = Mx∗+g

x(k+1) = Mx(k) +g

知e(k+1) = Me(k), k = 0,1,2, · · · .

⇒ e(k) = Mke(0).

14

Page 26: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛的充分必要条件

e(k) = x(k) −x∗

为 x∗ 在第 k 步的误差向量。由

Ax∗ = b同解方程⇐=======⇒ x∗ = Mx∗+g

x(k+1) = Mx(k) +g

e(k+1) = Me(k), k = 0,1,2, · · · .

⇒ e(k) = Mke(0).

14

Page 27: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛的充分必要条件

e(k) = x(k) −x∗

为 x∗ 在第 k 步的误差向量。由

Ax∗ = b同解方程⇐=======⇒ x∗ = Mx∗+g

x(k+1) = Mx(k) +g

知e(k+1) = Me(k), k = 0,1,2, · · · .

⇒ e(k) = Mke(0).

14

Page 28: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛的充分必要条件

e(k) = x(k) −x∗

为 x∗ 在第 k 步的误差向量。由

Ax∗ = b同解方程⇐=======⇒ x∗ = Mx∗+g

x(k+1) = Mx(k) +g

知e(k+1) = Me(k), k = 0,1,2, · · · .

⇒ e(k) = Mke(0).

14

Page 29: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛的充分必要条件

推论

迭代法 (3) 收敛的充分必要条件是

Mk → 0.

15

Page 30: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛的充分必要条件

定理

Mk → 0 的充分必要条件是 ρ(M) < 1.

定理

迭代法 (3) 收敛的充分必要条件是 ρ(M) < 1.

迭代序列收敛取决于迭代矩阵的谱半径,而与初始向量的选取和常数

项无关。

16

Page 31: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛的充分必要条件

定理

Mk → 0 的充分必要条件是 ρ(M) < 1.

定理

迭代法 (3) 收敛的充分必要条件是 ρ(M) < 1.

迭代序列收敛取决于迭代矩阵的谱半径,而与初始向量的选取和常数

项无关。

16

Page 32: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛的充分必要条件

定理

Mk → 0 的充分必要条件是 ρ(M) < 1.

定理

迭代法 (3) 收敛的充分必要条件是 ρ(M) < 1.

迭代序列收敛取决于迭代矩阵的谱半径,而与初始向量的选取和常数

项无关。

16

Page 33: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛的充分必要条件

解同一方程组时,Jacobi 迭代矩阵与 Gauss-Seidel 迭代矩阵的谱半径不一定相同,且无包含关系。

A1 =

1 2 −2

1 1 1

2 2 1

, A2 =

2 −1 1

1 1 1

1 1 −2

17

Page 34: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛的充分必要条件

对于 A1,

M1,J =

0 −2 2

−1 0 −1

−2 −2 0

, M1,GS =

0 −2 2

0 2 −3

0 0 2

• 因 ρ(M1,J ) = 1.081×10−5,故 Jacobi 迭代收敛;• 因 ρ(M1,GS) = 2,故 Gauss-Seidel 迭代不收敛。

18

Page 35: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛的充分必要条件

对于 A2,

M2,J =

0 1/2 −1/2

−1 0 −1

1/2 1/2 0

, M2,GS =

0 1/2 −1/2

0 −1/2 −1/2

0 0 −1/2

• 因 ρ(M2,J ) = 1.118,故 Jacobi 迭代不收敛;• 因 ρ(M2,GS) = 1/2,故 Gauss-Seidel 迭代不收敛。

19

Page 36: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

Jacobi 与 Gauss-Seidel 迭代的收敛性分析收敛的充分条件及误差估计

Page 37: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛的充分条件及误差估计

• 用谱半径来判断迭代格式是否收敛,显然是不方便的,因为计算谱半径非常困难。

• 我们希望能给出一些比较容易计算的条件。

20

Page 38: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛的充分条件及误差估计

定理 : 回顾

若 ∥A∥ < 1 且 ∥I∥ = 1,则 I −A 非奇异,且

∥(I −A)−1∥ ≤ 1

1−∥A∥ .

21

Page 39: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛的充分条件及误差估计

证明

若 I −A 奇异,则 (I −A)x = 0 有非零解,即存在 x̃ ̸= 0 使得

x̃ = Ax̃

从而

∥x̃∥ = ∥Ax̃∥ ≤ ∥A∥∥x̃∥因 ∥x̃∥ > 0,故 ∥A∥ ≥ 1,这与已知矛盾,从而 I −A 必非奇异。

由 (I −A)(I −A)−1 = I 得

(I −A)−1 = I +A(I −A)−1

⇒ ∥(I −A)−1∥ ≤ ∥I∥+∥A∥∥(I −A)−1∥

⇒ ∥(I −A)−1∥ ≤ 11−∥A∥

22

Page 40: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛的充分条件及误差估计

证明

若 I −A 奇异,则 (I −A)x = 0 有非零解,即存在 x̃ ̸= 0 使得

x̃ = Ax̃

从而

∥x̃∥ = ∥Ax̃∥ ≤ ∥A∥∥x̃∥因 ∥x̃∥ > 0,故 ∥A∥ ≥ 1,这与已知矛盾,从而 I −A 必非奇异。

由 (I −A)(I −A)−1 = I 得

(I −A)−1 = I +A(I −A)−1

⇒ ∥(I −A)−1∥ ≤ ∥I∥+∥A∥∥(I −A)−1∥

⇒ ∥(I −A)−1∥ ≤ 11−∥A∥

22

Page 41: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛的充分条件及误差估计

证明

若 I −A 奇异,则 (I −A)x = 0 有非零解,即存在 x̃ ̸= 0 使得

x̃ = Ax̃

从而

∥x̃∥ = ∥Ax̃∥ ≤ ∥A∥∥x̃∥因 ∥x̃∥ > 0,故 ∥A∥ ≥ 1,这与已知矛盾,从而 I −A 必非奇异。

由 (I −A)(I −A)−1 = I 得

(I −A)−1 = I +A(I −A)−1

⇒ ∥(I −A)−1∥ ≤ ∥I∥+∥A∥∥(I −A)−1∥

⇒ ∥(I −A)−1∥ ≤ 11−∥A∥

22

Page 42: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛的充分条件及误差估计

定理

对于迭代格式

x(k+1) = Mx(k) +g , k = 0,1, · · · .

若 ∥M∥ = q < 1,并假定 ∥I∥ = 1,则

∥x(k) −x∗∥ ≤ qk

1−q∥x(1) −x(0)∥.

从该估计可计算出要得到满足精度要求的近似解需要迭代多少次,但

实际计算时用它控制并不方便。

23

Page 43: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛的充分条件及误差估计

证明

由 e(k) = Mke(0) 可知

∥e(k)∥ = ∥Mke(0)∥ ≤ ∥M∥k∥e(0)∥ = qk∥e(0)∥

因 ∥M∥ < 1,故 (I −M)−1 存在且 x∗ = (I −M)−1g。

于是

e(0) = x(0) −x∗ = x(0) − (I −M)−1g = (I −M)−1((I −M)x(0) −g

)= (I −M)−1

(x(0) − (Mx(0) +g)

)= (I −M)−1(x(0) −x(1))

从而有

∥e(0)∥ ≤ ∥(I −M)−1∥ ∥x(0) −x(1)∥.

注意到当 ∥M∥ = q < 1 时,有

∥(I −M)−1∥ ≤ 1

1−∥M∥ = 1

1−q.

即知定理成立。

24

Page 44: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛的充分条件及误差估计

证明

由 e(k) = Mke(0) 可知

∥e(k)∥ = ∥Mke(0)∥ ≤ ∥M∥k∥e(0)∥ = qk∥e(0)∥

因 ∥M∥ < 1,故 (I −M)−1 存在且 x∗ = (I −M)−1g。于是

e(0) = x(0) −x∗ = x(0) − (I −M)−1g = (I −M)−1((I −M)x(0) −g

)= (I −M)−1

(x(0) − (Mx(0) +g)

)= (I −M)−1(x(0) −x(1))

从而有

∥e(0)∥ ≤ ∥(I −M)−1∥ ∥x(0) −x(1)∥.

注意到当 ∥M∥ = q < 1 时,有

∥(I −M)−1∥ ≤ 1

1−∥M∥ = 1

1−q.

即知定理成立。 24

Page 45: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛的充分条件及误差估计

定理

若 ∥M∥ = q < 1 且 ∥I∥ = 1,则

∥x(k) −x∗∥ ≤ q

1−q∥x(k) −x(k−1)∥.

该定理表明,可从相邻近似值的差来判别迭代法是否应该终止,这对

实际计算是非常好用的。

25

Page 46: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛的充分条件及误差估计

证明

因为

x(k) −x∗ = Mx(k−1) +g − (Mx∗+g) = Mx(k−1) −Mx∗

= Mx(k−1) −M(I −M)−1g = M(I −M)−1(x(k−1) −x(k))

==⇒ ∥x(k) −x∗∥ ≤ q1−q∥x(k) −x(k−1)∥.

即知定理成立。

26

Page 47: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛的充分条件及误差估计

• 用范数判定迭代法是否收敛虽然只是一个充分条件,但用起来比较方便。

• 常用 1 范数和 ∞ 范数来进行判定。• 对 Jacobi 迭代而言,上述判别法基本令人满意,因为 Jacobi 迭代矩阵比较容易得到。

• 对 G-S 迭代而言,因为 G-S 迭代矩阵不那么好计算,故上述判别法不是那么方便。

27

Page 48: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛的充分条件及误差估计

若线性方程组的系数矩阵对称正定,会有一些更有意思的结论。

28

Page 49: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛的充分条件及误差估计

定理

若 A 对称且 ∀i, aii > 0,则

Jacobi 迭代收敛 ⇐⇒ A, 2D−A皆正定

29

Page 50: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛的充分条件及误差估计

证明

因 aii > 0,故 D−1 存在。

• 由

MJ =−D−1(L+U) =−D−1(A−D) = D−1/2(I −D−1/2AD−1/2)D1/2

可知

MJ ∼ I −D−1/2AD−1/2.

• 由 A 对称可知 I −D−1/2AD1/2 也对称,从而其特征值为实数。

于是,MJ 的特征值为实数。

30

Page 51: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛的充分条件及误差估计

证明 (续) :

1、先证充分性。

Jacobi 迭代收敛 ⇐⇒ ρ(MJ ) < 1 ⇐⇒ ρ(I −D−1/2AD−1/2) < 1

=⇒ D−1/2AD−1/2的特征值 ∈ (0,2) =⇒ A正定

2I −D−1/2AD−1/2的特征值 ∈ (0,2)

又 2I −D−1/2AD−1/2 = D−1/2(2D−A)D−1/2,故2D−A 正定。

31

Page 52: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛的充分条件及误差估计

证明 (续) :

2、再证必要性。

D1/2(I −MJ )D−1/2 = D−1/2AD−1/2

A正定

=⇒ λ(I −MJ ) > 0 =⇒ λ(MJ ) < 1.

D1/2(I +MJ )D−1/2 = D−1/2(2D−A)D−1/2

2D−A正定

=⇒ λ(I +MJ ) > 0 =⇒ λ(MJ ) >−1.

联立可得 ρ(MJ ) < 1,从而 Jacobi 迭代收敛。

32

Page 53: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛的充分条件及误差估计

证明 (续) :

2、再证必要性。

D1/2(I −MJ )D−1/2 = D−1/2AD−1/2

A正定

=⇒ λ(I −MJ ) > 0 =⇒ λ(MJ ) < 1.

D1/2(I +MJ )D−1/2 = D−1/2(2D−A)D−1/2

2D−A正定

=⇒ λ(I +MJ ) > 0 =⇒ λ(MJ ) >−1.

联立可得 ρ(MJ ) < 1,从而 Jacobi 迭代收敛。

32

Page 54: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛的充分条件及误差估计

证明 (续) :

2、再证必要性。

D1/2(I −MJ )D−1/2 = D−1/2AD−1/2

A正定

=⇒ λ(I −MJ ) > 0 =⇒ λ(MJ ) < 1.

D1/2(I +MJ )D−1/2 = D−1/2(2D−A)D−1/2

2D−A正定

=⇒ λ(I +MJ ) > 0 =⇒ λ(MJ ) >−1.

联立可得 ρ(MJ ) < 1,从而 Jacobi 迭代收敛。

32

Page 55: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛的充分条件及误差估计

定理

A对称正定 =⇒ Gauss-Seidel 迭代收敛

33

Page 56: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛的充分条件及误差估计

证明

设 λ 与 v 为 MGS =−(D+L)−1U 的特征值与特征向量,故有

−(D+L)−1Uv =λvU=LT

⇐==⇒ − (D+L)−1LT v =λv

=⇒ −λ(D+L)v = LT v =⇒ −λv∗Dv︸ ︷︷ ︸δ

−λv∗Lv︸ ︷︷ ︸α+iβ

= v∗LT v︸ ︷︷ ︸α−iβ

−λδ−λ(α+ iβ) =α− iβ取模====⇒ |λ|2 (

(δ+α)2 +β2)=α2 +β2

=⇒ |λ|2 = α2 +β2

(δ+α)2 +β2 < 1?事实上,

0 < v∗Av = v∗(D+L+LT )v = δ+2α

(δ+α)2 +β2 = δ2 +2αδ+α2 +β2 = δ(δ+2α)+α2 +β2 >α2 +β2.

34

Page 57: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛的充分条件及误差估计

证明

设 λ 与 v 为 MGS =−(D+L)−1U 的特征值与特征向量,故有

−(D+L)−1Uv =λvU=LT

⇐==⇒ − (D+L)−1LT v =λv

=⇒ −λ(D+L)v = LT v =⇒ −λv∗Dv︸ ︷︷ ︸δ

−λv∗Lv︸ ︷︷ ︸α+iβ

= v∗LT v︸ ︷︷ ︸α−iβ

−λδ−λ(α+ iβ) =α− iβ取模====⇒ |λ|2 (

(δ+α)2 +β2)=α2 +β2

=⇒ |λ|2 = α2 +β2

(δ+α)2 +β2 < 1?

事实上,

0 < v∗Av = v∗(D+L+LT )v = δ+2α

(δ+α)2 +β2 = δ2 +2αδ+α2 +β2 = δ(δ+2α)+α2 +β2 >α2 +β2.

34

Page 58: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛的充分条件及误差估计

证明

设 λ 与 v 为 MGS =−(D+L)−1U 的特征值与特征向量,故有

−(D+L)−1Uv =λvU=LT

⇐==⇒ − (D+L)−1LT v =λv

=⇒ −λ(D+L)v = LT v =⇒ −λv∗Dv︸ ︷︷ ︸δ

−λv∗Lv︸ ︷︷ ︸α+iβ

= v∗LT v︸ ︷︷ ︸α−iβ

−λδ−λ(α+ iβ) =α− iβ取模====⇒ |λ|2 (

(δ+α)2 +β2)=α2 +β2

=⇒ |λ|2 = α2 +β2

(δ+α)2 +β2 < 1?事实上,

0 < v∗Av = v∗(D+L+LT )v = δ+2α

(δ+α)2 +β2 = δ2 +2αδ+α2 +β2 = δ(δ+2α)+α2 +β2 >α2 +β2. 34

Page 59: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛的充分条件及误差估计

定义 : 对角占优矩阵

设 A = (aij) ∈Rn×n,对于不等式组

|aii| ≥n∑

j=1, j ̸=i|aij|, ∀i = 1,2, · · · ,n (6)

• 若至少存在一个 i,不等式严格成立,则称 A弱严格对角占

优;

• 若对所有 i,不等式均严格成立,则称 A严格对角占优。

35

Page 60: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛的充分条件及误差估计

定义 : 不可约矩阵

若存在 n 阶置换矩阵 (permutation matrix)P,使得

PAPT =[

A11 0

A12 A22

](7)

其中 A11 ∈Rr×r , A22 ∈R(n−r)×(n−r),则称 A可约 (reducible);反之,若不存在这样的置换矩阵,则称 A不可约 (irreducible).

36

Page 61: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛的充分条件及误差估计

若 A 可约,则 Ax = b 可化为

PAPT Px = Pb

记 Px = y, Pb = f,则有[A11 0

A12 A22

][y1

y2

]=

[f 1

f 2

], y1, f 1 ∈Rr , y2, f 2 ∈Rn−r .

=⇒ A11y1 = f 1

A12y1 +A22y2 = f 2.

这样,就把一个求解 n 阶方程组的问题转化为求解两个低阶方程组的

问题了。

37

Page 62: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛的充分条件及误差估计

定义 : 可约矩阵的等价定义

设 A 为 n ≥ 2 阶矩阵,W = {1,2, · · · ,n}。若存在 W 两个非空的子

集 S 和 T 满足

S ∪T =W , S ∩T =;,

使得

aij = 0, i ∈S , j ∈T ,

则称 A 为可约的;否则称 A 为不可约的。

38

Page 63: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛的充分条件及误差估计

如果一个矩阵不可约,且是弱严格对角占优的,则称该矩阵是不可约

对角占优的。

三对角矩阵

A =

2 −1 0 0

−1 2 −1 0

0 −1 2 −1

0 0 −1 2

是不可约对角占优的。

39

Page 64: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛的充分条件及误差估计

定理

严格对角占优矩阵或不可约对角占优矩阵是非奇异的。

证明

1、先证严格对角占优矩阵非奇异。

若 A 奇异,则 Ax = 0 有非零解 x。不妨设 |xi| = ∥x∥∞ = 1,则

|aii| = |aiixi| =∣∣∣∣∣ ∑j=1,j ̸=i

aijxj

∣∣∣∣∣≤ ∑j=1,j ̸=i

|aij|,

这与 A 严格对角占优矛盾。

40

Page 65: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛的充分条件及误差估计

证明

2、再证不可约对角占优矩阵非奇异。

若 A 奇异,设 x 满足 ∥x∥∞ = 1 使得 Ax = 0。令

S = {i : |xi| = 1}, T = {k : |xk| < 1}

=⇒ S ∪T =W , S ∩T =;,且T非空

事实上,若 T 空,则 |xi| = 1(∀i) 则

|aii| = |aiixi| =∣∣∣∣∣ ∑j=1,j ̸=i

aijxj

∣∣∣∣∣≤ ∑j=1,j ̸=i

|aij|, ∀i

这与 A 弱严格对角占优矛盾。

41

Page 66: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛的充分条件及误差估计

证明 (续) :

A不可约 =⇒ ∃ i ∈S , k ∈T s.t. aik ̸= 0,

=⇒ |aikxk| < |aik|

=⇒ |aii| ≤∑

j∈S ,j ̸=i|aij||xj|+

∑k∈T

|aik||xk|

< ∑j∈S ,j ̸=i

|aij|+∑

k∈T

|aik|

=∑j ̸=i

|aij|

这与 A 弱严格对角占优矛盾。

42

Page 67: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛的充分条件及误差估计

推论

若 A 为对角元皆为正的对称矩阵,且严格对角占优或不可约对角

占优,则 A 正定。

43

Page 68: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛的充分条件及误差估计

证明

设 λ≤ 0,考察矩阵 A−λI。

A−λI只是对角元上增加了一些正数

=⇒ A−λI与A一样,是严格对角占优的或不可约对角占优的

=⇒ A−λI非奇异

注意到 λ≤ 0 的任意性,知 A 的特征值均大于 0,从而 A 正定。

44

Page 69: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛的充分条件及误差估计

定理

若 A严格对角占优或不可约对角占优,则 Jacobi 迭代和 Gauss-Seidel 迭代收敛。

证明

A严格对角占优或不可约对角占优 =⇒ D可逆

45

Page 70: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛的充分条件及误差估计

证明 (续) :

1、先证Jacobi 迭代收敛

若 MJ 的某个特征值 |λ| ≥ 1,考察 λD+L+U

A严格对角占优或不可约对角占优

=⇒ λD+L+U也严格对角占优或不可约对角占优

=⇒ λD+L+U非奇异

λI −MJ =λI +D−1(L+U) = D−1(λD+L+U)

=⇒ det(λI −MJ ) = det(D−1) · det(λD+L+U) ̸= 0

这与 λ 是 MJ 的特征值矛盾,从而 ρ(MJ ) < 1 =⇒ Jacobi 迭代收敛。 46

Page 71: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛的充分条件及误差估计

证明 (续) :

2、再证Gauss-Seidel 迭代收敛

若 MGS 的某个特征值 |λ| ≥ 1,考察 λD−λL−U

A严格对角占优或不可约对角占优

=⇒ λD+λL+U也严格对角占优或不可约对角占优

=⇒ λD+λL+U非奇异

λI −MGS =λI + (D+L)−1U = (D+L)−1(λD+λL+U)

=⇒ det(λI −MGS) = det((D+L)−1) · det(λD+λL+U) ̸= 0

这与 λ是 MGS 的特征值矛盾,从而 ρ(MGS) < 1 =⇒ Gauss-Seidel迭代收敛。 47

Page 72: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

超松弛迭代法

Page 73: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

超松弛迭代法

超松弛迭代法 (SOR)

Page 74: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

超松弛迭代法 (SOR)

超松弛迭代法 (SOR, Successive Over-Relax) 可看做是 G-S 迭代的加速。

Gauss-Seidel 迭代:

x(k+1) =−D−1Lx(k+1) −D−1Ux(k) +D−1b, k = 0,1,2, · · · .

由x(k+1) = x(k) + r(k),

r(k) = −x(k) −D−1Lx(k+1) −D−1Ux(k) +D−1b

= D−1[b−Lx(k+1) − (D+U)x(k)

]可看出,对 Gauss-Seidel 迭代来说,x(k+1) 可看作对 x(k) 加上修正项

r(k)而得到。

48

Page 75: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

超松弛迭代法 (SOR)

超松弛迭代法 (SOR, Successive Over-Relax) 可看做是 G-S 迭代的加速。

Gauss-Seidel 迭代:

x(k+1) =−D−1Lx(k+1) −D−1Ux(k) +D−1b, k = 0,1,2, · · · .

由x(k+1) = x(k) + r(k),

r(k) = −x(k) −D−1Lx(k+1) −D−1Ux(k) +D−1b

= D−1[b−Lx(k+1) − (D+U)x(k)

]可看出,对 Gauss-Seidel 迭代来说,x(k+1) 可看作对 x(k) 加上修正项

r(k)而得到。

48

Page 76: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

超松弛迭代法 (SOR)

超松弛迭代法 (SOR, Successive Over-Relax) 可看做是 G-S 迭代的加速。

Gauss-Seidel 迭代:

x(k+1) =−D−1Lx(k+1) −D−1Ux(k) +D−1b, k = 0,1,2, · · · .

由x(k+1) = x(k) + r(k),

r(k) = −x(k) −D−1Lx(k+1) −D−1Ux(k) +D−1b

= D−1[b−Lx(k+1) − (D+U)x(k)

]可看出,

对 Gauss-Seidel 迭代来说,x(k+1) 可看作对 x(k) 加上修正项

r(k)而得到。

48

Page 77: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

超松弛迭代法 (SOR)

超松弛迭代法 (SOR, Successive Over-Relax) 可看做是 G-S 迭代的加速。

Gauss-Seidel 迭代:

x(k+1) =−D−1Lx(k+1) −D−1Ux(k) +D−1b, k = 0,1,2, · · · .

由x(k+1) = x(k) + r(k),

r(k) = −x(k) −D−1Lx(k+1) −D−1Ux(k) +D−1b

= D−1[b−Lx(k+1) − (D+U)x(k)

]可看出,对 Gauss-Seidel 迭代来说,x(k+1) 可看作对 x(k) 加上修正项

r(k)而得到。

48

Page 78: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

超松弛迭代法 (SOR)

若在r(k)前加一个参数 ω,便得松弛法

x(k+1) = x(k) +ωr(k)

= (1−ω)x(k) +ω(−D−1Lx(k+1) −D−1Ux(k) +D−1b),(8)

其中ω 叫做松弛因子。

• ω> 1 → 超松弛 (SOR)• ω< 1 → 低松弛

• ω= 1 → Gauss-Seidel 迭代

49

Page 79: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

超松弛迭代法 (SOR)

定义 : SOR

(8) 可改写为x(k+1) = Mωx(k) +ω(D+ωL)−1b

其中

Mω = (D+ωL)−1[(1−ω)D−ωU]

为松弛法的迭代矩阵。

50

Page 80: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

超松弛迭代法 (SOR)

• 超松弛迭代法是解大型方程组,特别是大型稀疏矩阵方程组的有效方法之一。

• 具有计算公式简单、程序设计容易、占用计算机内存单元较少等优点。

• 只要松弛因子 ω 选择得好,其收敛速度就会加快。

51

Page 81: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

超松弛迭代法 (SOR)

分别用 Jacobi、Gauss-Seidel 和 SOR 求解

5 1 −1 −2

2 8 1 3

1 −2 −4 −1

−1 3 2 7

x1

x2

x3

x4

=

−2

−6

6

12

• 终止条件:

max |∆xi| < max |x(k+1)i −x(k)

i | < 10−5

• 精确解:x⋆ = (1, −2, −1, 3)T

52

Page 82: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

超松弛迭代法 (SOR)

解 (Jacobi) :

x(k+1)1 = x(k)

1 + 15 ( −2 −5x(k)

1 −x(k)2 +x(k)

3 +2x(k)4 )

x(k+1)2 = x(k)

2 + 18 ( −6 −2x(k)

1 −8x(k)2 −x(k)

3 −3x(k)4 )

x(k+1)3 = x(k)

3 − 14 ( 6 −x(k)

1 +2x(k)2 +4x(k)

3 +x(k)4 )

x(k+1)4 = x(k)

4 + 17 ( 12 +x(k)

1 −3x(k)2 −2x(k)

3 −7x(k)4 )

迭代 24 次后,近似解为

x(24) = (0.9999941, −1.9999950, −1.0000040, 2.9999990)T

53

Page 83: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

超松弛迭代法 (SOR)

解 (Jacobi) :

x(k+1)1 = x(k)

1 + 15 ( −2 −5x(k)

1 −x(k)2 +x(k)

3 +2x(k)4 )

x(k+1)2 = x(k)

2 + 18 ( −6 −2x(k)

1 −8x(k)2 −x(k)

3 −3x(k)4 )

x(k+1)3 = x(k)

3 − 14 ( 6 −x(k)

1 +2x(k)2 +4x(k)

3 +x(k)4 )

x(k+1)4 = x(k)

4 + 17 ( 12 +x(k)

1 −3x(k)2 −2x(k)

3 −7x(k)4 )

迭代 24 次后,近似解为

x(24) = (0.9999941, −1.9999950, −1.0000040, 2.9999990)T

53

Page 84: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

超松弛迭代法 (SOR)

解 (GS) :

x(k+1)1 = x(k)

1 + 15 ( −2 −5x(k)

1 −x(k)2 +x(k)

3 +2x(k)4 )

x(k+1)2 = x(k)

2 + 18 ( −6 −2x(k+1)

1 −8x(k)2 −x(k)

3 −3x(k)4 )

x(k+1)3 = x(k)

3 − 14 ( 6 −x(k+1)

1 +2x(k+1)2 +4x(k)

3 +x(k)4 )

x(k+1)4 = x(k)

4 + 17 ( 12 x(k+1)

1 −3x(k+1)2 −2x(k+1)

3 −7x(k)4 )

迭代 14 次后,近似解为

x(14) = (0.9999966, −1.9999970, −1.0000040, 2.9999990)T

54

Page 85: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

超松弛迭代法 (SOR)

解 (GS) :

x(k+1)1 = x(k)

1 + 15 ( −2 −5x(k)

1 −x(k)2 +x(k)

3 +2x(k)4 )

x(k+1)2 = x(k)

2 + 18 ( −6 −2x(k+1)

1 −8x(k)2 −x(k)

3 −3x(k)4 )

x(k+1)3 = x(k)

3 − 14 ( 6 −x(k+1)

1 +2x(k+1)2 +4x(k)

3 +x(k)4 )

x(k+1)4 = x(k)

4 + 17 ( 12 x(k+1)

1 −3x(k+1)2 −2x(k+1)

3 −7x(k)4 )

迭代 14 次后,近似解为

x(14) = (0.9999966, −1.9999970, −1.0000040, 2.9999990)T

54

Page 86: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

超松弛迭代法 (SOR)

解 (SOR) :

x(k+1)1 = x(k)

1 +ω5 ( −2 −5x(k)

1 −x(k)2 +x(k)

3 +2x(k)4 )

x(k+1)2 = x(k)

2 +ω8 ( −6 −2x(k+1)

1 −8x(k)2 −x(k)

3 −3x(k)4 )

x(k+1)3 = x(k)

3 −ω4 ( 6 −x(k+1)

1 +2x(k+1)2 +4x(k)

3 +x(k)4 )

x(k+1)4 = x(k)

4 +ω7 ( 12 x(k+1)

1 −3x(k+1)2 −2x(k+1)

3 −7x(k)4 )

取 ω= 1.15,迭代 8 次后,近似解为

x(8) = (0.9999965, −1.9999970, −1.0000010, 2.9999990)T

55

Page 87: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

超松弛迭代法 (SOR)

解 (SOR) :

x(k+1)1 = x(k)

1 +ω5 ( −2 −5x(k)

1 −x(k)2 +x(k)

3 +2x(k)4 )

x(k+1)2 = x(k)

2 +ω8 ( −6 −2x(k+1)

1 −8x(k)2 −x(k)

3 −3x(k)4 )

x(k+1)3 = x(k)

3 −ω4 ( 6 −x(k+1)

1 +2x(k+1)2 +4x(k)

3 +x(k)4 )

x(k+1)4 = x(k)

4 +ω7 ( 12 x(k+1)

1 −3x(k+1)2 −2x(k+1)

3 −7x(k)4 )

取 ω= 1.15,迭代 8 次后,近似解为

x(8) = (0.9999965, −1.9999970, −1.0000010, 2.9999990)T

55

Page 88: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

超松弛迭代法

收敛性分析

Page 89: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛性分析

定义 : 超松弛迭代法

SOR 迭代格式为x(k+1) = Mωx(k) +g

其中Mω = (D+ωL)−1[(1−ω)D−ωU]

g = ω(D+ωL)−1b.

56

Page 90: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛性分析

定理 : 充分必要条件

SOR 收敛 ⇐⇒ ρ(Mω) < 1

57

Page 91: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛性分析

定理 : 必要条件

SOR 收敛 =⇒ 0 <ω< 2.

该定理表明,对任何系数矩阵,若要 SOR 收敛,必须选取松弛因子ω ∈ (0,2)。

58

Page 92: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛性分析

定理 : 必要条件

SOR 收敛 =⇒ 0 <ω< 2.

该定理表明,对任何系数矩阵,若要 SOR 收敛,必须选取松弛因子ω ∈ (0,2)。

58

Page 93: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛性分析

证明

设 λ1,λ2, · · · ,λn 为 Mω 的 n 个特征值。

SOR 收敛 ⇐⇒ ρ(Mω) < 1

=⇒ |det(Mω)| = |λ1 ·λ2 · · · · ·λn| < 1

Mω = (I +ωD−1L)−1[(1−ω)I −ωD−1U]

det[(1−ω)I −ωD−1U] = (1−ω)n

det[(I +ωD−1L)−1] = 1

=⇒ |det(Mω)| = |(1−ω)n|

从而

|(1−ω)n| < 1 =⇒ |1−ω| < 1 =⇒ 0 <ω< 2.

59

Page 94: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛性分析

证明

设 λ1,λ2, · · · ,λn 为 Mω 的 n 个特征值。

SOR 收敛 ⇐⇒ ρ(Mω) < 1

=⇒

|det(Mω)| = |λ1 ·λ2 · · · · ·λn| < 1

Mω = (I +ωD−1L)−1[(1−ω)I −ωD−1U]

det[(1−ω)I −ωD−1U] = (1−ω)n

det[(I +ωD−1L)−1] = 1

=⇒ |det(Mω)| = |(1−ω)n|

从而

|(1−ω)n| < 1 =⇒ |1−ω| < 1 =⇒ 0 <ω< 2.

59

Page 95: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛性分析

证明

设 λ1,λ2, · · · ,λn 为 Mω 的 n 个特征值。

SOR 收敛 ⇐⇒ ρ(Mω) < 1

=⇒ |det(Mω)| = |λ1 ·λ2 · · · · ·λn| < 1

Mω = (I +ωD−1L)−1[(1−ω)I −ωD−1U]

det[(1−ω)I −ωD−1U] = (1−ω)n

det[(I +ωD−1L)−1] = 1

=⇒ |det(Mω)| = |(1−ω)n|

从而

|(1−ω)n| < 1 =⇒ |1−ω| < 1 =⇒ 0 <ω< 2.

59

Page 96: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛性分析

证明

设 λ1,λ2, · · · ,λn 为 Mω 的 n 个特征值。

SOR 收敛 ⇐⇒ ρ(Mω) < 1

=⇒ |det(Mω)| = |λ1 ·λ2 · · · · ·λn| < 1

Mω = (I +ωD−1L)−1[(1−ω)I −ωD−1U]

det[(1−ω)I −ωD−1U] = (1−ω)n

det[(I +ωD−1L)−1] = 1

=⇒ |det(Mω)| = |(1−ω)n|

从而

|(1−ω)n| < 1 =⇒ |1−ω| < 1 =⇒ 0 <ω< 2.

59

Page 97: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛性分析

证明

设 λ1,λ2, · · · ,λn 为 Mω 的 n 个特征值。

SOR 收敛 ⇐⇒ ρ(Mω) < 1

=⇒ |det(Mω)| = |λ1 ·λ2 · · · · ·λn| < 1

Mω = (I +ωD−1L)−1[(1−ω)I −ωD−1U]

det[(1−ω)I −ωD−1U] = (1−ω)n

det[(I +ωD−1L)−1] = 1

=⇒ |det(Mω)| = |(1−ω)n|

从而

|(1−ω)n| < 1 =⇒ |1−ω| < 1 =⇒ 0 <ω< 2.

59

Page 98: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛性分析

证明

设 λ1,λ2, · · · ,λn 为 Mω 的 n 个特征值。

SOR 收敛 ⇐⇒ ρ(Mω) < 1

=⇒ |det(Mω)| = |λ1 ·λ2 · · · · ·λn| < 1

Mω = (I +ωD−1L)−1[(1−ω)I −ωD−1U]

det[(1−ω)I −ωD−1U] = (1−ω)n

det[(I +ωD−1L)−1] = 1

=⇒ |det(Mω)| = |(1−ω)n|

从而

|(1−ω)n| < 1 =⇒ |1−ω| < 1 =⇒ 0 <ω< 2.

59

Page 99: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛性分析

证明

设 λ1,λ2, · · · ,λn 为 Mω 的 n 个特征值。

SOR 收敛 ⇐⇒ ρ(Mω) < 1

=⇒ |det(Mω)| = |λ1 ·λ2 · · · · ·λn| < 1

Mω = (I +ωD−1L)−1[(1−ω)I −ωD−1U]

det[(1−ω)I −ωD−1U] = (1−ω)n

det[(I +ωD−1L)−1] = 1

=⇒ |det(Mω)| = |(1−ω)n|从而

|(1−ω)n| < 1 =⇒ |1−ω| < 1 =⇒ 0 <ω< 2.

59

Page 100: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛性分析

证明

设 λ1,λ2, · · · ,λn 为 Mω 的 n 个特征值。

SOR 收敛 ⇐⇒ ρ(Mω) < 1

=⇒ |det(Mω)| = |λ1 ·λ2 · · · · ·λn| < 1

Mω = (I +ωD−1L)−1[(1−ω)I −ωD−1U]

det[(1−ω)I −ωD−1U] = (1−ω)n

det[(I +ωD−1L)−1] = 1

=⇒ |det(Mω)| = |(1−ω)n|

从而

|(1−ω)n| < 1 =⇒ |1−ω| < 1 =⇒ 0 <ω< 2.

59

Page 101: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛性分析

证明

设 λ1,λ2, · · · ,λn 为 Mω 的 n 个特征值。

SOR 收敛 ⇐⇒ ρ(Mω) < 1

=⇒ |det(Mω)| = |λ1 ·λ2 · · · · ·λn| < 1

Mω = (I +ωD−1L)−1[(1−ω)I −ωD−1U]

det[(1−ω)I −ωD−1U] = (1−ω)n

det[(I +ωD−1L)−1] = 1

=⇒ |det(Mω)| = |(1−ω)n|

从而

|(1−ω)n| < 1 =⇒ |1−ω| < 1 =⇒ 0 <ω< 2.

59

Page 102: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

定理

严格对角占优或不可约对角占优

ω ∈ (0,1)

=⇒ SOR 收敛

60

Page 103: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛性分析

证明

假定 Mω 的某个特征值 |λ| ≥ 1,考察 (λ−1+ω)D−λωL−ωU

A严格对角占优或不可约对角占优及λ−1+ω>λω

=⇒ (λ−1+ω)D+λωL+ωU也严格对角占优或不可约对角占优

=⇒ (λ−1+ω)D+λωL+ωU非奇异

而λI −Mω = λI − (D+ωL)−1[(1−ω)D+ωU]

= (D+ωL)−1[(λ−1+ω)D+λωL+ωU]

=⇒ det(λI +Mω) ̸= 0

这与 λ 是 Mω 的特征值矛盾,从而 ρ(Mω) < 1 =⇒ 松弛法收敛。

61

Page 104: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛性分析

证明

假定 Mω 的某个特征值 |λ| ≥ 1,考察 (λ−1+ω)D−λωL−ωU

A严格对角占优或不可约对角占优及λ−1+ω>λω

=⇒ (λ−1+ω)D+λωL+ωU也严格对角占优或不可约对角占优

=⇒ (λ−1+ω)D+λωL+ωU非奇异

而λI −Mω = λI − (D+ωL)−1[(1−ω)D+ωU]

= (D+ωL)−1[(λ−1+ω)D+λωL+ωU]

=⇒ det(λI +Mω) ̸= 0

这与 λ 是 Mω 的特征值矛盾,从而 ρ(Mω) < 1 =⇒ 松弛法收敛。

61

Page 105: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛性分析

证明

假定 Mω 的某个特征值 |λ| ≥ 1,考察 (λ−1+ω)D−λωL−ωU

A严格对角占优或不可约对角占优及λ−1+ω>λω

=⇒ (λ−1+ω)D+λωL+ωU也严格对角占优或不可约对角占优

=⇒ (λ−1+ω)D+λωL+ωU非奇异

而λI −Mω = λI − (D+ωL)−1[(1−ω)D+ωU]

= (D+ωL)−1[(λ−1+ω)D+λωL+ωU]

=⇒ det(λI +Mω) ̸= 0

这与 λ 是 Mω 的特征值矛盾,从而 ρ(Mω) < 1 =⇒ 松弛法收敛。

61

Page 106: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛性分析

证明

假定 Mω 的某个特征值 |λ| ≥ 1,考察 (λ−1+ω)D−λωL−ωU

A严格对角占优或不可约对角占优及λ−1+ω>λω

=⇒ (λ−1+ω)D+λωL+ωU也严格对角占优或不可约对角占优

=⇒ (λ−1+ω)D+λωL+ωU非奇异

而λI −Mω = λI − (D+ωL)−1[(1−ω)D+ωU]

= (D+ωL)−1[(λ−1+ω)D+λωL+ωU]

=⇒ det(λI +Mω) ̸= 0

这与 λ 是 Mω 的特征值矛盾,从而 ρ(Mω) < 1 =⇒ 松弛法收敛。

61

Page 107: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛性分析

证明

假定 Mω 的某个特征值 |λ| ≥ 1,考察 (λ−1+ω)D−λωL−ωU

A严格对角占优或不可约对角占优及λ−1+ω>λω

=⇒ (λ−1+ω)D+λωL+ωU也严格对角占优或不可约对角占优

=⇒ (λ−1+ω)D+λωL+ωU非奇异

而λI −Mω = λI − (D+ωL)−1[(1−ω)D+ωU]

= (D+ωL)−1[(λ−1+ω)D+λωL+ωU]

=⇒ det(λI +Mω) ̸= 0

这与 λ 是 Mω 的特征值矛盾,从而 ρ(Mω) < 1 =⇒ 松弛法收敛。

61

Page 108: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛性分析

证明

假定 Mω 的某个特征值 |λ| ≥ 1,考察 (λ−1+ω)D−λωL−ωU

A严格对角占优或不可约对角占优及λ−1+ω>λω

=⇒ (λ−1+ω)D+λωL+ωU也严格对角占优或不可约对角占优

=⇒ (λ−1+ω)D+λωL+ωU非奇异

而λI −Mω = λI − (D+ωL)−1[(1−ω)D+ωU]

= (D+ωL)−1[(λ−1+ω)D+λωL+ωU]

=⇒ det(λI +Mω) ̸= 0

这与 λ 是 Mω 的特征值矛盾,从而 ρ(Mω) < 1 =⇒ 松弛法收敛。

61

Page 109: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛性分析

证明

假定 Mω 的某个特征值 |λ| ≥ 1,考察 (λ−1+ω)D−λωL−ωU

A严格对角占优或不可约对角占优及λ−1+ω>λω

=⇒ (λ−1+ω)D+λωL+ωU也严格对角占优或不可约对角占优

=⇒ (λ−1+ω)D+λωL+ωU非奇异

而λI −Mω = λI − (D+ωL)−1[(1−ω)D+ωU]

= (D+ωL)−1[(λ−1+ω)D+λωL+ωU]

=⇒ det(λI +Mω) ̸= 0

这与 λ 是 Mω 的特征值矛盾,从而 ρ(Mω) < 1 =⇒ 松弛法收敛。

61

Page 110: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛性分析

定理

对于实对称正定矩阵,

ω ∈ (0,2) ⇐⇒ SOR 收敛

62

Page 111: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛性分析

证明

设 λ 与 v 是 Mω 的特征值与特征向量,故

(D+ωL)−1[(1−ω)D−ωU]v =λv,

因 U = LT,故

(D+ωL)−1[(1−ω)D−ωLT ]v =λv

=⇒ [(1−ω)D−ωLT ]v =λ(D+ωL)v

=⇒ λ[v∗Dv+ωv∗Lv] = (1−ω)v∗Dv−ωv∗LT v

令v∗Dv = δ

v∗Lv =α+ iβ =⇒ v∗LT v =α− iβ.

63

Page 112: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛性分析

证明 (续) :

λ[δ+ω(α+ iβ)] = (1−ω)δ−ω(α− iβ)

取模====⇒ |λ|2 = [(1−ω)δ−ωα]2 +ω2β2

(δ−ωα)2 +ω2β2 < 1?事实上,

[(1−ω)δ−ωα]2 +ω2β2 − (δ−ωα)2 −ω2β2

= (1−ω)2δ2 −2(1−ω)ωδα−δ2 +2ωδα

= [(1−ω)δ−ωα]2 − (δ−ωα)2

= ωδ(δ−2α)(ω−2)

A正定 =⇒ δ> 0, δ−2α> 0

0 <ω< 2

=⇒ ωδ(δ−2α)(ω−2) < 0 ⇐⇒ |λ|2 < 1.

64

Page 113: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛性分析

证明 (续) :

λ[δ+ω(α+ iβ)] = (1−ω)δ−ω(α− iβ)

取模====⇒ |λ|2 = [(1−ω)δ−ωα]2 +ω2β2

(δ−ωα)2 +ω2β2 < 1?

事实上,

[(1−ω)δ−ωα]2 +ω2β2 − (δ−ωα)2 −ω2β2

= (1−ω)2δ2 −2(1−ω)ωδα−δ2 +2ωδα

= [(1−ω)δ−ωα]2 − (δ−ωα)2

= ωδ(δ−2α)(ω−2)

A正定 =⇒ δ> 0, δ−2α> 0

0 <ω< 2

=⇒ ωδ(δ−2α)(ω−2) < 0 ⇐⇒ |λ|2 < 1.

64

Page 114: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛性分析

证明 (续) :

λ[δ+ω(α+ iβ)] = (1−ω)δ−ω(α− iβ)

取模====⇒ |λ|2 = [(1−ω)δ−ωα]2 +ω2β2

(δ−ωα)2 +ω2β2 < 1?事实上,

[(1−ω)δ−ωα]2 +ω2β2 − (δ−ωα)2 −ω2β2

= (1−ω)2δ2 −2(1−ω)ωδα−δ2 +2ωδα

= [(1−ω)δ−ωα]2 − (δ−ωα)2

= ωδ(δ−2α)(ω−2)

A正定 =⇒ δ> 0, δ−2α> 0

0 <ω< 2

=⇒ ωδ(δ−2α)(ω−2) < 0 ⇐⇒ |λ|2 < 1.

64

Page 115: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛性分析

证明 (续) :

λ[δ+ω(α+ iβ)] = (1−ω)δ−ω(α− iβ)

取模====⇒ |λ|2 = [(1−ω)δ−ωα]2 +ω2β2

(δ−ωα)2 +ω2β2 < 1?事实上,

[(1−ω)δ−ωα]2 +ω2β2 − (δ−ωα)2 −ω2β2

= (1−ω)2δ2 −2(1−ω)ωδα−δ2 +2ωδα

= [(1−ω)δ−ωα]2 − (δ−ωα)2

= ωδ(δ−2α)(ω−2)

A正定 =⇒ δ> 0, δ−2α> 0

0 <ω< 2

=⇒ ωδ(δ−2α)(ω−2) < 0

⇐⇒ |λ|2 < 1.

64

Page 116: 数值计算方法 - 线性方程组的迭代解法xpzhang.me/teach/NA18_Fall/slide03.pdf · Table of contents 1. Jacobi 迭代与Gauss-Seidel 迭代 2. Jacobi 与Gauss-Seidel 迭代的收敛性分析

收敛性分析

证明 (续) :

λ[δ+ω(α+ iβ)] = (1−ω)δ−ω(α− iβ)

取模====⇒ |λ|2 = [(1−ω)δ−ωα]2 +ω2β2

(δ−ωα)2 +ω2β2 < 1?事实上,

[(1−ω)δ−ωα]2 +ω2β2 − (δ−ωα)2 −ω2β2

= (1−ω)2δ2 −2(1−ω)ωδα−δ2 +2ωδα

= [(1−ω)δ−ωα]2 − (δ−ωα)2

= ωδ(δ−2α)(ω−2)

A正定 =⇒ δ> 0, δ−2α> 0

0 <ω< 2

=⇒ ωδ(δ−2α)(ω−2) < 0 ⇐⇒ |λ|2 < 1.

64