• 沒有找到結果。

《数值分析》7

N/A
N/A
Protected

Academic year: 2021

Share "《数值分析》7"

Copied!
22
0
0

加載中.... (立即查看全文)

全文

(1)

《数值分析》7

主要内容: 大型稀疏矩阵的背景

Jacobi迭代与Seidel迭代 迭代法的矩阵表示

迭代法数值实验

(2)

大型稀疏矩阵的背景(一维情况)

三对角方程组 二阶常微分方程:

(两点边值问题)   

 

. 0 )

1 ( , 0 )

0 (

) 1 , 0 ( ,

0 y

y

x x

y y

2 0

2

1

1

 

  

j j

j j

j y x

h

y y

y

1 2

1 (2 h2)y y x h

yj   jjj

n

n

x x x x

h

y y y y

h h

h h

1 2 1

2 1

2 1

2 2

2 2

2 1

1 2

1 1 2

1

1 2

( j = 1,2,···,n )

h = 1/(n+1) , xj= jh, yj = y(xj) ( j = 0,1, ···, n+1 )

举例:在某区域内求流体的速度或静

电场的电位,当这区域边界上的速度

或电位已经知道时

(3)

大型稀疏矩阵的背景(一维情况)

n n n

n n

n

n n

n

f f f f

x x x x

b a

c b

a c b

a

c b

1 2 1

1 2 1

1 1

1 2 2

2

1 1

AX=F  LU X = F

① L Y=F U X = Y

三角分解

:

A = LU =

三对角矩阵

单位下三角阵 上三角阵

一般形式

(4)
(5)

y y

u

x u x

u y

u

y x u

uxx yy

sin )

, 1 (

0 ) 1 , ( )

0 , ( )

, 0 (

1 ,

0 , 0

0

4

1, , 1

, 1 1

,j

i j

ij

i j

i j

i

u u u u

u

边值问题

:

h = 1/(n+1) , xi= ih, yj = jh ( i , j = 0,1, ···, n+1 )

ui,j= u(xi , yj ), ( i , j = 0,1, ···, n+1 )

2 0 2

2

1 , 1

, 2

, 1 ,

1

h

u u

u h

u u

ui j ij i j i j ij i j

1 , 4

1 , 3

1 , 2

1 , 1

j j j j

u u u u

0

1 , 4

1 , 3

1 , 2

1 , 1

j j j j

u u u u

j j j j

u u u u

, 4

, 3

, 2

, 1

4

j j j j

u u u u

, 5

, 4

, 3

, 2

j j j j

u u u u

, 3

, 2

, 1

, 0

( n=4 )

大型稀疏矩阵的背景(二维情况)

(6)

AU = F

41 31 21 11

1

u u u u U

44 34 24 14

4

u u u u U

4 3 2 1

U U U U

U

B I

I B I

I B I

I B A

4 1

1 4 1

1 4 1

1 4 B

0 5 10 15

0 5 10 15

43 33 23 13

3

u u u u U

42 32 22 12

2

u u u u U

1 2

1 U F

BU

2 3 2

1 BU U F

U

  

3 4 3

2 BU U F

U

4 4

3 BU F

U

 

大型稀疏矩阵的背景(二维情况)

(7)





13 15

8 10

7 9

3 2

1

3 2

1

3 2

1

x x

x

x x

x

x x

x

4.1

特点:系数矩阵主对角元均不为零

15 / 13

10 / 8

9 / 7 0

15 / 1 15 / 1

10 / 1 0

10 / 1

9 / 1 9

/ 1 0

) 0 3(

) 0 2(

) 0 1(

) 1 3(

) 1 2(

) 1 1(

x x x x

x x

计算格式

X(1)=B X(0) + f

15 / ) 13

(

10 / ) 8

(

9 / ) 7

(

2 1

3

3 1

2

3 2

1

x x

x

x x

x

x x

x

X(0) =

0 0 0

线性系统迭代法引例

(8)

X* 1.0000 1.0000 1.0000 X(0)

0 0 0

X(1) 0.7778 0.8000 0.8667

X(2) 0.9630 0.9644 0.9778

X(3) 0.9929 0.9935 0.9952

计算格式

: X(k+1)=BX(k)+f

准确解

X(4) ···

0.9987 0.9988 0.9991

线性系统迭代法引例

(9)

n n

nn n

n

n n

n n

b x

a x

a x

a

b x

a x

a x

a

b x

a x

a x

a

2 2 1

1

2 2

2 22 1

21

1 1

2 12 1

11

雅可比迭代法

(i

= 1,2,…n; k=1,2,……)

取初始向量

X(0)=[x1(0) x2(0) ··· xn(0)]T, 迭代计算

   n

i j

jk ij i

j

jk ij i

ii

ik b a x a x

x a

1

) 1 (

1

) ( )

1

( 1 [ ]

i n

j

a

ij

x

j

b

1

(i = 1,2,…,n)

Jacobi迭代与Seidel迭代

上一页例子即为

Jocobi迭代

(10)

迭代法适用于解大型稀疏方程组

(万阶以上的方程组,系数矩阵中零元素占很大比例,而非零元按某种模

式分布

)

背景: 电路分析、边值问题的数值解和数学物理方程

问题 : (1)如何构造迭代格式?

(2)迭代格式是否收敛?

(3)收敛速度如何?

(4)如何进行误差估计?

对比:

迭代法方程求根的迭代法

Jacobi迭代与Seidel迭代

(11)

i n

j

a

ij

x

j

b

1

(i = 1,2,…,n) 高斯-赛德尔迭代法

  

n

i j

jk ij i

j

jk ij ii i

ik

b a x a x

x a

1

) 1 (

1

) 1 ( )

1

(

1 [ ]

(i = 1,2,…n; k =1,2,……)

取初始向量

x(0)=[x1(0) x2(0) ··· xn(0)]T, 迭代计算

Jacobi迭代与Seidel迭代

(12)





13 15

8 10

7 9

3 2

1

3 2

1

3 2

1

x x

x

x x

x

x x

x

15 / ) 13

(

1( 1) 2( 1)

) 1

3(k

  x

k

x

k

x

15 / 13

10 / 8

9 / 7 0

0 0

10 / 1 0

0

9 / 1 9

/ 1 0 1

15 / 1 15

/ 1

0 1

10 / 1

0 0

1

) 3(

) 2(

) 1(

) 1 3(

) 1 2(

) 1 1(

k k k

k k k

x x x x

x x

9 / ) 7

( 2( ) 3( )

) 1

1(k x k x k

x   

10 / ) 8

(

1( 1) 3( )

) 1

2(k

x

k

x

k

x

 

15 / ) 13

(

10 / ) 8

(

9 / ) 7

(

2 1

3

3 1

2

3 2

1

x x

x

x x

x

x x

x

 

 

 

 

 

0 0 0

) 0 3(

) 0 2(

) 0 1(

x

x

x

Jacobi迭代与Seidel迭代

(13)

迭代法解线性方程组

 

 

13 15

8 10

7 9

3 2

1

3 2

1

3 2

1

x x

x

x x

x

x x

x

雅可比迭代法实验数据 赛德尔迭代法实验数据

0.7778 0.8000 0.8667

0.9630 0.9644 0.9719 0.9929 0.9935 0.9952 0.9987 0.9988 0.9991 0.9998 0.9998 0.9998 1.0000 1.0000 1.000

0.7778 0.8778 0.9770 0.9839 0.9961 0.9987 0.9994 0.9998 0.9999 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000

Jacobi迭代与Seidel迭代

(14)

总结:雅可比迭代法的矩阵表示

将方程组

AX = b 的系数矩阵 A 分解

A = D – U – L

ann

a a

D

22 11

0 0

0

1 , 1

21

n n

n a

a L a

0 0 0

,1 1 12

n n

n

a a a

U

AX = b => DX(k+1) = (U+L)X(k) + b X(k+1)=D-1(U+L)X(k)+D-1b

BJ = D-1(U+L) X(k+1)=BJX(k)+fJ

迭代法的矩阵表示

(15)

雅可比迭代矩阵

0 0

0

2 1

2 21

1 12

1 22

11

n n

n n

nn J

a a

a a

a a

a a

a B

 

 

 

 

0 /

/

/ 0

/

/ /

0

2 1

22 2

22 21

11 1

11 12

nn n

nn n

n n

J

a a

a a

a a

a a

a a

a a

B









nn n

J

a b

a b

a b f

/ / /

22 2

11 1

迭代法的矩阵表示

(16)

高斯-赛德尔迭代法的矩阵表示

  

n

i j

jk ij i

j

jk ij k i

i

ii

x b a x a x

a

1

) 1 (

1

) 1 ( )

1

(

[ ]

  n

i j

jk ij i

i j

jk

ij x b a x

a

1

) ( 1

) 1

(

(i

= 1,2,…,n)

) (

) 2(

) 1(

, 1 1 12

2 1

) 1 (

) 2 2(

) 1 1(

2 1

22 21

11

0 0

0

nk k k

n n

n

k n n

k k

nn n

n x

x x

a a a

b b b

x x x

a a

a

a a

a

(D – L)X(k+1) = b + UX(k)

X(k+1) = (D – L)-1b + (D – L)-1UX(k)

迭代法的矩阵表示

(17)

BG-S=(D – L)-1U, fG-S=(D – L)-1b

高斯-赛德尔迭代格式: X(k+1)=BG-SX(k)+fG-S

0 0

0

, 1 1 12

1

2 1

22 21

11

n n

n

nn n

n S

G a

a a

a a

a

a a

a

B

nn n n

n S

G

b b b

a a

a

a a

a

f

2 1 1

2 1

22 21

11

迭代法的矩阵表示

(18)

总结:矩阵分裂导出的迭代法

A = M – N (要求M为可逆矩阵)

AX =b  (M – N )X = b  MX = NX + b

X(k+1) = (M-1N) X(k) + M-1b

M = D  雅可比迭代法 A =D – (D – A) 

X(k+1) = D-1[(D – A) X(k) + b]  X(k+1) = X(k)+D-1[b – AX(k) ]

k k

k

X D r

X

( 1)

( )

1

)

k

b AX

(k

r  

记 

迭代法的矩阵表示

(19)

总结:简单迭代法

)

(

( )

) ( )

1

(k

X

k

b AX

k

X

   

迭代矩阵 BI   A

A = D – U – L

M = D – L 

高斯 -赛德尔迭代法

A = M – (M – A )

AX = b  MX = (M – A)X + b  X(k+1) = M-1[(M – A) X(k) + b]  X(k+1) = X(k)+M-1[b – AX(k) ]

迭代法的矩阵表示

(20)

y y

u

x u x

u y

u

y x u

u xx yy sin

)

, 1 (

0 )

1 , ( )

0 , ( )

, 0 (

1 ,

0 ,

0

平面温度场问题

:

h = 1/(n+1) , xi= ih, yj = jh ( i , j = 0,1, ···, n+1 )

ui,j= u(xi , yj ), ( i , j = 0,1, ···, n+1 )

矩阵形式:

0

4

1, , 1

, 1 1

,j

i j

ij

i j

i j

i

u u u u

u

差分格式

:

AU = F

B I

I B I

I B I

I B A

 

 

 

 

4 1

1 4

1

1 4

1

1 4

B

迭代法数值实验

(21)

结点数

n2 102 202 402

迭代次数

182 606 2077 CPU时间(s) 0.97 4.328 58.531

误差

0.0023 6.4274e-4 1.6814e-4

高斯-赛德尔迭代法实验(误差限

10-8

)

:

2 4 6 8 10 12

2 4 6 8 10 12

0 5 10 15

0 10

200 0.5 1

迭代法数值实验

(22)

学到了什么?

大型稀疏矩阵的背景

Jacobi迭代与Seidel迭代 迭代法的矩阵表示

迭代法数值实验

參考文獻

相關文件

最终求得所有 4个基函数 (针对三次 Hermite插值). 代入 4个基函数

样条插值的算例 三次样条的概念.

线性拟合与二次拟合 数据拟合的线性模型 一次多项式拟合公式..

超定方程组QR分解算法 数据拟合确定常微分方程..

比較項目 長條圖 直方圖 矩形之寬度 無任何意義

 真值表必須在關鍵字table table table table及endtable endtable endtable之 endtable 間。. 

「這裡就是你的避難所。世間的一般庸人都在那裡

In this article, we discuss the thought of Jie-huan’s A Concise Commentary on the Lotus Sutra written in Sung Dynasty, focus on the theory of teaching classification, the