+ All Categories
Home > Documents > 计算方法

计算方法

Date post: 01-Jan-2016
Category:
Upload: fidelio-langan
View: 30 times
Download: 4 times
Share this document with a friend
Description:
计算方法. 第七章 线行方程组的解法. 7.1 高斯消去法. 7.2 三角分解法. 7.3 向量及矩阵范数. 7.4 迭代法. 7.5 迭代法的加速. 第七章 线性方程组的解法. 本章要点. 本章主要介绍线性方程组的数值方法 : 高斯消去法、 三角分解法、三对角方程组的追赶法迭代法、向量及矩阵范数 . 涉及到一些三角分解:主要有 Doolittle 分解、 Crout 分解等. 主要方法. 高斯消去法、三角分解法、 \G-J 迭代法、 G-S 迭代法和 SOR 方法. 表 1. 国民经济个部门之间的关系. - PowerPoint PPT Presentation
Popular Tags:
150
1 第第第 第第第第第第第第
Transcript
Page 1: 计算方法

1

第七章 线行方程组的解法

Page 2: 计算方法

2

第七章 线性方程组的解法

7.1 高斯消去法§

7.2 三角分解法§

7.3 向量及矩阵范数§

7.4 迭代法§

7.5 迭代法的加速§

Page 3: 计算方法

3

本章要点

本章主要介绍线性方程组的数值方法 : 高斯消去法、三角分解法、三对角方程组的追赶法迭代法、向量及矩阵范数 . 涉及到一些三角分解:主要有 Doolittle分解、 Crout 分解等主要方法高斯消去法、三角分解法、 \G-J 迭代法、 G-S 迭代法和SOR 方法

Page 4: 计算方法

4

引题:投入产出平衡分析

设国民经济仅由农业、制造业和服务业三个部门组成 ,已知某年它们之间的投入产出关系、外部需求、初始投入等如下表所示:

产出投入

农业 制造业 服务业 外部需求 总产出

农业 15 20 30 35 100

制造业 30 10 45 115 200

服务业 20 60 / 70 150

初始投入 35 110 75

总投入 100 200 150

表 1. 国民经济个部门之间的关系

Page 5: 计算方法

5

产出投入

农业 制造业 服务业

农业 0.15 0.10 0.20

制造业 0.30 0.05 0.30

服务业 0.20 0.30 0

表 2. 投入产出表

假定每个部门的产出与投入成正比 , 则由表 1 可确定三个部门的投入产出表 , 如表 2.

投入系数或消耗系数

1) 设有 n 个部门 , 已知投入系数 , 给定外部需求 , 建立 求解个部门总产出的模型

2) 设投入系数如表 2 所给 , 如果今年对农业、制造业 和服务业的外部需求分别为 50,150,100 亿元 , 问这 三个部门的总产出分别为多少 ?

Page 6: 计算方法

6

3) 如果三个部门的外部需求分别增加 1 个单位 ,他们 的总产出分别增加多少 ?

4) 如果对于任意给定的、非负的外部需求 , 都能得到非负的总产出 , 模型就称为可行的 , 问为使模型可行 ,投入系数应满足什么条件 ?

Page 7: 计算方法

7

7.1.1 直接法与三角形方程组求解

实际问题中的线性方程组分类:

按系数矩阵中零元素的个数:

稠密线性方程组

稀疏线性方程组

按未知量的个数:

高阶线性方程组

低阶线性方程组( 如 1000)

(80%)

按系数矩阵的形状

对称正定方程组

三角形方程组

三对角占优方程组

7.1 Gauss 消去法§

Page 8: 计算方法

8

一、直接法概述

直接法是将原方程组化为一个或若干个三角形方程组的方法,共有若干种.

对于线性方程组 bAx

nnnn

n

n

aaa

aaa

aaa

A

21

22221

11211

nx

x

x

x2

1

nb

b

b

b2

1其中

系数矩阵 未知量向量 常数项

------------(1)

Page 9: 计算方法

9

根据 Cramer( 克莱姆 ) 法则 , 若0)det( A

有唯一解则方程组 bAx

determinantal

||)det( AA 行列式的记号

若用初等变换法求解 , 则对其增广矩阵作行初等变换 :

),( bAA ),( )1()1( bA ),( )2()2( bA

经过 n-1 次 ),( )()( nn bA

为上三角阵目标: )(nA

的解不难得到则方程组 )()( nn bxA

Page 10: 计算方法

10

bAx

bAx )()( nn bxA

同解

以上求解线性方程组的方法称为 Gauss 消去法

即和两个三角形矩阵分解成的系数矩阵如果将线性方程组

,UL

AbAx

LUA

则 bLUx bLy yUx

都是三角形方程组

上述方法称为直接三角形分解法

------------(2)

Page 11: 计算方法

11

不论是 Gauss 消去法还是直接三角形分解法 ,最都归结为解三角形方程组

二、三角形线性方程组的解法

bLx bUx

nnnn lll

ll

l

L

21

2221

11

nn

n

n

u

uu

uuu

U

222

11211若记

下三角形线性方程组 上三角形线性方程组

Page 12: 计算方法

12

的求解思路:下三角形方程组 bLx

nnnnn x

x

x

lll

ll

l

2

1

21

2221

11

nb

b

b

2

1

bLx

nnnnnn bxlxlxl

2211

1111 bxl

2222121 bxlxl

iiiiii bxlxlxl

2211

回代方

Page 13: 计算方法

13

11

11 l

bx

ii

i

jjiji

i l

xlb

x

1

1 ni ,,3,2

的求解思路:上三角形方程组 bUx

nnn

n

n

x

x

x

u

uu

uuu

2

1

222

11211

nb

b

b

2

1

bUx

其解为

Page 14: 计算方法

14

11212111 bxuxuxu nn

nnnn bxu

1,111,1 nnnnnnn bxuxu

ininiiiiii bxuxuxu

11,

其解为 :nn

nn u

bx

ii

n

ijjiji

i u

xub

x

1 1,2,,2,1 nni

回代方向

Page 15: 计算方法

15

),( bAA

7.1.2 Gauss 消去法

一、消元与回代计算

)1()1()1(2

)1(1

)1(2

)1(2

)1(22

)1(21

)1(1

)1(1

)1(12

)1(11

nnnnn

n

n

baaa

baaabaaa

bAx 对线性方程组

对其增广矩阵施行行初等变换 :

),( )1()1( bA记

0)det( A如果

Page 16: 计算方法

16

)2()2()2(2

)2(2

)2(2

)2(22

)1(1

)1(1

)1(12

)1(11

0

0

nnnn

n

n

baa

baabaaa

),( )2()2( bA

0)1(11 a假定

定义行乘数 nia

am ii ,,3,2)1(

11

)1(1

1

则行第行第 ,1 1imi

)1(11

)1()2(jiijij amaa )1(

11)1()2( bmbb iii

nji ,,3,2,

ni ,,3,2

),( )1()1( bA

Page 17: 计算方法

17

0)1(11 a如果 0)det( A由于

元素不为零的第一列中至少有一个则 A

行交换后消元的第一行与第则将如 1)1()1()1(

1 ),(,01

ibAai

)2()2()2(2

)2(2

)2(2

)2(22

)1(1

)1(1

)1(12

)1(11

0

0

nnnn

n

n

baa

baabaaa

且 0)det(

将化为步后第因此 ),(,1, )1()1( bAk

Page 18: 计算方法

18

)()()(

)()()(

)2(2

)2(2

)2(22

)1(1

)1(1

)1(12

)1(11

kn

knn

knk

kk

kkn

kkk

n

n

baa

baa

baa

baaa

),( )()( kk bA),( )1()1( bA

0)det(

定义行乘数

nkia

am

kkk

kik

ik ,,1)(

)(

则行第行第 ,ikmki

)()()1( kkjik

kij

kij amaa

)()()1( kkik

ki

ki bmbb

nkji ,,1,

nki ,,1

Page 19: 计算方法

19

)()(

)2(2

)2(2

)2(22

)1(1

)1(1

)1(12

)1(11

nn

nnn

n

n

ba

baabaaa

),( )1()1( bA

将化为步后当经过 ),(,1 )1()1( bAnk

),( )()( nn bA

0)det( A由于

nia iii ,,2,10)( 可知

的解:因此可得线性方程组 bAx

有唯一解上三角形方程组因此 )()(, nn bxA

Page 20: 计算方法

20

)(

)(

nnn

nn

n a

bx

1,2,,2,1 nni

)(1

)()(

iii

n

ijj

iij

ii

i a

xab

x

Page 21: 计算方法

21

二、 Gauss 消去法的运算量

计算机作乘除运算所耗时间要远远多于加减运算

且在一个算法中,加减运算和乘除运算次数大体相当

故在衡量一个算法的运算量时只需统计乘除的运算次数

步消元时作第k 乘法次数: 次)1)(( knkn

除法次数: 次)( kn

数为步消元乘除法运算总次作第k次)2)(( knkn

Page 22: 计算方法

22

总次数为步消元需作乘除法运算完成全部 1n

1

1

)2)((n

k

knkn65

23

23 nnn

全部回代过程需作乘除法的总次数为

n

i

in1

)1(22

2 nn

于是 Gauss 消去法的乘除法运算总的次数为

MD33

23 n

nn

)(3

23

nOn

数级

Page 23: 计算方法

23

很大时当n33

23 n

nn

MD3

3n

时如 20n Gauss 消去法乘除法约为 2700 次

而如果用 Cramer 法则的乘除法运算次数约为

20)120)(120(!20 20109

或 2700)120(

用行列式定义

用行列式性质

Page 24: 计算方法

24

7.1.3 Gauss 列主元消去法

例 1. 用 Gauss 消去法解线性方程组 ( 用 3 位十进制浮点数计算)

210001.0

21

21

xx

xx

解 : 本方程组的精度较高的解为Tx )99989999.0,00010001.1(*

用 Gauss 消去法求解 ( 用 3 位十进制浮点数计算 )

一、 Gauss 列主元消去法的引入

Page 25: 计算方法

25

),( bAA

21

111000100.0

1000021m

44 1000.1

11000.10

1000100.0

9999

00.1,00.0 21 xx回代后得到

与精确解相比 , 该结果相当糟糕

究其原因 , 在求行乘数时用了很小的数 0.0001 作除数

主元

Page 26: 计算方法

26

),( bAA

12

1000100.011

0001.021m

00.12

00.1011

如果在求解时将 1,2 行交换 , 即

0.9999

00.1,00.1 21 xx

回代后得到

这是一个相当不错的结果

Page 27: 计算方法

27

),( bAA

例 2. 解线性方程组 ( 用 8 位十进制尾数的浮点数计算 )

321

643.5072.12623.4712.313210

3

2

18

xxx

解 : 这个方程组和例 1 一样 , 若用 Gauss 消去法计算会有小数作除数的现象 , 若采用换行的技巧 , 则可避免

321

643.5072.12623.4712.313210 8

行交换因此的列元素为

绝对值最大很小

3,1,2

,10

13

8

a

Page 28: 计算方法

28

31 rr

123

3210623.4712.31643.5072.12

8

8

31

21

105.05.0

m

m

101.05.0

3

103.0102.001018015.0103176.00

643.5072.12

绝对值最大不需换行

92722629.032m

54138685.05.0

3

1041555186.0001018015.0103176.00

643.5072.12

),( )1()1( bA

),( )2()2( bA

),( )3()3( bA

Page 29: 计算方法

29

)3(

)3(3

3

33a

bx

经过回代后可得

)1(11

3)1(

132)1(

12)1(

11 a

xaxabx

54138685.0

1041555186.0 39257367.0

)2(22

3)2(

23)2(

22 a

xabx

103176.0

1018015.05.0 3

x

05088607.0

49105820.0

事实上 , 方程组的准确解为Tx )367257384.0,050886075.0,491058227.0(*

Page 30: 计算方法

30

),( )1()1( bA

例 2 所用的方法是在 Gauss 消去法的基础上 ,利用换行避免小主元作除数 , 该方法称为 Gauss 列主元消去法

二、 Gauss 消元过程与系数矩阵的分解

1.Gauss 消去法消元过程的矩阵描述

)1()1()1(2

)1(1

)1(2

)1(2

)1(22

)1(21

)1(1

)1(1

)1(12

)1(11

nnnnn

n

n

baaa

baaabaaa

nia

am ii ,,3,2)1(

11

)1(1

1

行变换相当于左乘初等矩阵

由于

Page 31: 计算方法

31

1

11

1

211

nm

mL

则 ),( )1()1(1 bAL ),( )2()2( bA

1

11

1

,

,1

kn

kkk

m

mL

显然若令

Page 32: 计算方法

32

则有 ),( )()( kkk bAL ),( )1()1( kk bA

1,,3,2,1 nk

),( )1()1(1 bAL 2L 1nL ),( )()( nn bA因此

从而 AL 1 2L 1nL

)(11

12

11

nn ALLL

A故

为上三角矩阵)(nAU

为单位下三角矩阵11

12

11

nLLLL

LU

)(nA

Page 33: 计算方法

33

11

11

1

1,3,2,1,

2,12,11,1

3231

21

nnnnn

nnn

mmmm

mmm

mm

m

L

)(

)2(2

)2(22

)1(1

)1(12

)1(11

nnn

n

n

a

aa

aaa

)(nAU

且 UdetAdet顺序主元

n

i

iiia

1

)(

Page 34: 计算方法

34

定义 1. 不带行交换的 Gauss 消去法的消元过程 , 产生一个单位下三角矩阵 L 和一个上三角矩阵 U, 即

该过程称之为

LUA

.分解的矩阵 LUA

由上述分析不难得到

nnnkn

knkkk

nk

aaa

aaa

aaa

A

1

1

1111

1

1

1

1

1

nkn

k

mm

m

)(

)()(

)1(1

)1(1

)1(11

nnn

kkn

kkk

nk

a

aa

aaa

阶顺序主子式k

kA

kkk ULA kAdet kUdet

k

i

iiia

1

)(

kL kU

Page 35: 计算方法

35

nkAk

,,2,10det

nia iii

,,2,10)(

Gauss 消去法

可以执行

定理 1.

,0det kk ADAn 的顺序主子式阶方阵若,1,,2,1 nk 存在且唯一分解结果的则 LUALUA

在定理中 , 可能注意到

0det nn AD 0)( nnna即可能存在

分解并不影响的这对 LUA

起决定作用消去法的回代能否进行用但对方程组 GaussbAx

Page 36: 计算方法

36

2.Gauss 列主元消去法消元过程的矩阵描述

由于 Gauss 列主元消去法每一步都要选取列主元 , 因此不可避免要进行行交换

行交换后再消元行与的第要将步消元时设第 kkk ikbAk ),(, )()(

即 ),( )()( kk bA ),( )1()1( kk bAkL kikI ,

kikI ,

1

01

10

1

行第k

行第 ki

kik 一般

时kik

II kik,

表示不换行初等矩阵

Page 37: 计算方法

37

因此 ,Gauss 列主元消去法的消元过程为 :

),( )1()1( bA ),( )()( nn bA 1,1 1iIL 2,2 2i

IL 1,1 1 nin nIL

A )(nA 1,1 1iIL 2,2 2i

IL 1,1 1 nin nIL显然 U

上三角阵消元过程为时当例如 ,4, n

A )4(A 1,1 1iIL 2,2 2i

IL 3,3 3iIL U

3L 3,23, 33 ii ILI 3,2,12,3, 3223 iiii IILII 1,2,3, 123 iii III A U

3,23,2 33

~ii ILIL 设

3,2,12,3,1 3223

~iiii IILIIL

仍然为单位下三角矩阵

Page 38: 计算方法

38

1,2,3, 123 iii IIIP 初等矩阵的乘积 , 称为排列阵

则 3L 2~L 1

~L P A U

推广到一般情形

1nL 2~L 1

~L P A U2~

nL

PA 1( nL 2~L 1

1)~ L2~

nL U

1( nL 2~L 1

1)~ L2~

nL令 L 仍然为单位下三角矩阵

PA LU则 单位下三角阵与上三角阵的乘积

Page 39: 计算方法

39

分解的上述过程称为矩阵 LUPA

综合以上讨论 , 有

定理 2.

,0det, AAn 即为非奇异矩阵阶方阵若

使得阵和一个非奇异上三角矩、一个单位下三角矩阵则必存在一个排列矩阵

,U

LP

PA LU

请作出 Gauss 列主元消去法的程序 ( 用 Matlab语言 )

已编程序 gaussliezhuyuan.m

Page 40: 计算方法

40

开始

EPSnbA ,,,输入

输出无解信息

k1

x输出解

EPSnnA |),(|

nk

kk 1

P选取主元素

EPSP ||

消元换行

停机 回代求解

TT

T

F

FF

三、G

auss

列主元消去法的算法设

( 一 ) 流程图

Page 41: 计算方法

41

( 二 ) 自然语言

n输入方程组的维数.1

1,,2,1,,,2,1,),( njniabA ij 的元素增广矩阵

EPS控制条件转移精度

1,2,1.2 nk 对于

PkkA ),(1.2

nkki ,,1,2.2 对于

|||),(| PkiA 如果

).(7,||3.2 输出无解信息则转到如果 EPSP

5.2,,),( 0 否则转则 IiPkiA

选主元

Page 42: 计算方法

42

1,,1,4.2 nkkj 对于

wjkA ),( ),(),( 0 jkAjIA ),( 0 jIAw

,,,16.2 nki 对于

,1,,1 nkj 对于

),(),(/),( kimkkAkiA

),(),(*),(),( jiAjkAkimjiA

).(7,|),(|.3 无解则转到如果 EPSnnA

).(7,||5.2 输出无解信息则转到如果 EPSP

换行

消元

Page 43: 计算方法

43

)(),(/)1,(.4 nxnnAnnA

1,2,,1.5 nk对于)(n

nn

nn a

bx

)(1

)()(

iii

n

ijj

iij

ii

i a

xab

x

),(

)(),()1.(1

kkA

jxjkAnkA

x

n

kjk

0S

nkj ,,1对于

SjxjkAS )(*),(

SSnkA )1,(

)(),(/ kxkkAS

.8)),(,),2(),1((.6 并转输出解 nxxxxT

回代

Page 44: 计算方法

44

输出无解信息.7

停机.8

上述过程中的储存空间需要 :

注意 :

1:1,:1),,( njnijiA增广矩阵

1:1,:1),,( nknkikim行乘数矩阵

nkkx :1),( 解向量

SIPkji ,,,,, 0

储存空间需要较大

Page 45: 计算方法

45

( 三 ) 自然语言的改进

选主元

1. n输入方程组的维数 EPS控制条件转移精度

( , ) , 1, 2, , , 1, 2, , 1ijA b a i n j n 增广矩阵 的元素

2. 1,2, 1k n 对于

2.1 ( , )A k k P2.2 , 1, ,i k k n 对于

| ( , ) | | |A i k P如果

0( , ) , , 2.5A i k P i I 则 否则转

2.3 | | , 7.P EPS如果 则转到

Page 46: 计算方法

46

1,,1,4.2 nkkj 对于

wjkA ),( ),(),( 0 jkAjIA ),( 0 jIAw

,,,16.2 nki 对于

,1,,1 nkj 对于

),(),(/),( kimkkAkiA

),(),(*),(),( jiAjkAkimjiA

.7,|),(|.3 则转到如果 EPSnnA

.7,||5.2 则转到如果 EPSP

),(),(/),( kiAkkAkiA

),(),(*),(),( jiAjkAkiAjiA

换行

消元

4. ( , 1) / ( , ) ( )A n n A n n x n ( , 1) / ( , ) ( , 1)A n n A n n A n n

5. 1, , 2,1k n 对于0S

Page 47: 计算方法

47

1:1,:1),,( njnijiA增广矩阵

1:1,:1),,( nknkikim行乘数矩阵

nkkx :1),( 解向量1:1,:1),,( njnijiA

回代

1, ,j k n 对于

( , )* ( )S A k j x j S ( , )* ( , 1)S A k j A j n S

( , 1)A k n S S / ( , ) ( )S A k k x k / ( , ) ( , 1)S A k k A k n

6. ( (1), (2), , ( )), 8.Tx x x x n 输出解 并转7. 输出无解信息

8. 停机

Page 48: 计算方法

48

一、基本的三角分解法 (Doolittle 法 )

,0)( knnij DaAn 的顺序主子式阶方阵若 nk ,,2,1

即存在且唯一分解的则由上节可知 ,, LUALUA

nnnkn

knkkk

nk

aaa

aaa

aaa

A

1

1

1111

1

1

1

1

1

nkn

k

mm

m

)(

)()(

)1(1

)1(1

)1(11

nnn

kkn

kkk

nk

a

aa

aaa

LU

7.2 三角分解法§

Page 49: 计算方法

49

1

1

1

1

1

nrn

r

ll

l

nn

rnrr

nr

u

uu

uuu

1111

nnnrn

rnrrr

nr

aaa

aaa

aaa

A

1

1

1111

上式可记为

为的第一行元素根据矩阵的乘法原理 jaA 1,

njua jj ,,2,111

为素行元素主对角线以右元的第 ),,( nrjarA rj

r

kkjrkrj ula

1 nr ,,2,1

nrj ,,

Page 50: 计算方法

50

1

1

1

1

1,1

nrn

r

ll

l

nn

rnrr

nr

u

uu

uuu

1111

nnnrn

rnrrr

nr

aaa

aaa

aaa

A

1

1

1111

同样 , 由

为素列元素主对角线以下元的第可知 ),,1( nriarA ir

r

kkrikir ula

1 1,,2,1 nr

nri ,,1

1111,1, ular ii 时显然 ni ,,3,2

Page 51: 计算方法

51

综合以上分析 , 有

njua jj ,,2,111

r

kkjrkrj ula

1 nr ,,2,1

nrj ,,

r

kkrikir ula

1 1,,2,1 nr

nri ,,1

1111 ula ii ni ,,3,2

因此可以推导出

ju1 ja1 nj ,,2,1 U 的第一行

11

11 u

al ii ni ,,3,2 L 的第一列

rj

r

kkjrkrj uula

11

1rrir

r

kkrikir ulula

1

1

------(1)

------(2)

Page 52: 计算方法

52

1

1

r

kkjrkrjrj ulau nr ,,2,1

nrj ,,U 的第 r 行

rr

r

kkrikir

ir u

ulal

1

11,,2,1 nr

nri ,,1L 的第 r 列

------(3)

------(4)

称上述 (1) ~ (4) 式所表示的分解过程为 Doolittle 分解

.)4(~)1(,

,,

式的表达式请找出类似于解分则称之为表示为单位上三角阵角阵

表示为下三中的为上三角阵,如果将为单位下三角阵中分解的

CroutU

LLUA

ULLUADoolittleA

思考

Page 53: 计算方法

53

对于线性方程组bAx

系数矩阵非奇异 , 经过 Doolittle 分解后 LUA

线性方程组可化为下面两个三角形方程组

bLy yUx

为中间未知量向量y

1

11

1

321

3231

21

nnn lll

ll

l

L

nn

nnnn

n

n

uuu

uuuuuuu

U

,11,1

,22322

,1131211

Page 54: 计算方法

54

:, 的解不难得到的知识由第一节三角形方程组 bLy

11 by

1

1

r

jjrjrr ylby nr ,,3,2

12122 ylby

的解的解便得到因此再由 bAxyUx

nn

nn u

yx

rr

n

rjjrjr

r u

xuy

x

1 1,2,,2,1 nnr

1

11

1

321

3231

21

nnn lll

ll

l

L

nn

nnnn

n

n

u

uu

uuu

uuuu

,11,1

,22322

,1131211

Page 55: 计算方法

55

ju1 ja1

11

11 u

al ii

上述解线性方程组的方法称为直接三角分解法的 Doolittle 法

例 1. 用 Doolittle 法解方程组

1391444321

13124330102

4

3

2

1

xxxx

72

510

解 : 由 Doolittle 分解

14131211 uuuu 30102

Tlll 4131211 T25.05.11

Page 56: 计算方法

56

2423220 uuu 5.812110

Tll 423210 T11/611/310

343300 uu 11/211/300

Tl43100 T9100

44000 u 4000

得解 ,bLy

Tyyyy 4321 T1611/172010

1

1

r

kkjrkrjrj ulau

rr

r

kkrikir

ir u

ulal

1

1

1 1b y

1

1

r

jj rj r ry l b y

Page 57: 计算方法

57

得解 ,yUx

Txxxx 4321 T4321

nn

nn u

yx

rr

n

rjjrjr

r u

xuy

x

1

Doolittle 法在计算机上实现是比较容易的

但如果按上述流程运算仍需要较大的存储空间 :

都需要单独的存储空间yULxbA ,,,,,

式可知的计算过程而从 )4(~)1(, ijij ul

的存储位置即不再需要后的第一行求出 )1(11 jauU jj

Page 58: 计算方法

58

的存储位置即不再需要后的第一列求出 )2(11 ialL ii

的存储位置即不再需要后行的第求出 )( rjaurU rjrj

的存储位置即不再需要后列的第求出 )1( rialrL irir

因此可按下列方法存储数据 :

nrrjua rjrj ,,2,1),(

1,,2,1),1( nrrila irir

有如下特点:时解三角形方程组同样 ,, bLy

的存储位置即不再需要后求出 11 by

Page 59: 计算方法

59

的存储位置即不再需要后求出 )2( iby ii

niyb ii ,,2,1,

空出的存储位置的存储可以使用因此 )1( iby ii

直接三角分解的 Doolittle 法可以用以下过程表示 :

4

3

2

1

44434241

34333231

24232221

14131211

b

b

b

b

aaaa

aaaa

aaaa

aaaa

45

35

25

15

44434241

34333231

24232221

14131211

a

a

a

a

aaaa

aaaa

aaaa

aaaa

存储单元 ( 位置 )

Page 60: 计算方法

60

4

3

2

1

44434241

34333231

24232221

14131211

1

b

b

b

y

aaal

aaal

aaal

uuuur

4

3

2

1

44434241

34333231

24232221

14131211

2

b

b

y

y

aall

aall

uuul

uuuur

4

3

2

1

44434241

34333231

24232221

14131211

3

b

y

y

y

alll

uull

uuul

uuuur

4

3

2

1

44434241

34333231

24232221

14131211

4

y

y

y

y

ulll

uull

uuul

uuuur

yUL ,,可知从上式最后一个矩阵中

yUx 然后解线性方程组紧凑格式的Doolittle 法

Page 61: 计算方法

61

例 2. 用紧凑格式的 Doolittle 法解方程组 ( 例1)

解 :

45

35

25

15

44434241

34333231

24232221

14131211

a

a

a

a

aaaa

aaaa

aaaa

aaaa

A

72

510

1391444321

13124330102

7

2

5

10

139142

43221

1312423

30102

1r

ju1 ja1

11

11 u

al ii

1

1

r

kkjrkrjrj ulau

rr

r

kkrikir

ir u

ulal

1

1

1 1b y

1

1

r

jj rj r ry l b y

Page 62: 计算方法

62

7

2

20

10

139116

2

43113

21

217

121123

30102

2r

1

1

r

kkjrkrjrj ulau

rr

r

kkrikir

ir u

ulal

1

1

1 1b y

1

1

r

jj rj r ry l b y

7

1117

20

10

139116

2

112

113

113

21

217

121123

30102

3r

Page 63: 计算方法

63

16

1117

20

10

49116

2

112

113

113

21

217

121123

30102

4r

L

x

U

4

3

2

1

49116

2

112

113

113

21

217

121123

30102

yUx解

4

3

2

1

x

x

x

x

x

4

3

2

1

所以

y

Page 64: 计算方法

64

二、列主元 Doolittle 分解

1

1

r

kkjrkrjrj ulau

rr

r

kkrikir

ir u

ulal

1

1

在 Doolittle 法 (包括紧凑格式 ) 中 ,会反复用到公式

)(rrrrr aGaussu 法的顺序主元相当于显然

法的顺序主元为仍然称 Doolittleurr

仍有可能为小主元做除数

为此 ,我们也要考虑在算法中加入选取列主元

我们下面介绍紧凑格式的 Doolittle 列主元法

Page 65: 计算方法

65

然后分解并进行换行者作为

最大将

,

,||

11

1u

ai

45

35

25

15

44434241

34333231

24232221

14131211

a

a

a

a

aaaa

aaaa

aaaa

aaaa

4

3

2

1

44434241

34333231

24232221

14131211

bbby

aaalaaalaaaluuuu

4

3

2

1

44434241

34333231

24232221

14131211

bbyy

aallaalluuuluuuu

大作主元不一定绝对值最由于 12212222 ulau

4,3,2,1212 iSula iii因此比较

然后分解最大的行与第二行交换将 ,)4,3,2(|| iSi

分解换行,

符号因换行只代表存储位置 , 与原数值可能有差异

依此类推

Page 66: 计算方法

66

列主元 Doolittle 法步骤 :

第一步 : ||max||,1

1 1 ini

iii SSaS

设比较

公式分解然后按行交换将第一行与第 Doolittlei ,1

||max||,1

1i

niri

r

kkrikiri SSulaS

r

设比较

公式分解然后按行交换行与第将第 Doolittleir r ,

:步第r

:步第n 而直接分解故不需选主元因为只有 ,,1

1

n

kknnknnn ulaS

rrr Su 则rr

iir u

Sl 也交换与同时

rir SS

Page 67: 计算方法

67

例 3. 用列主元 Doolittle 法解线性方程组

141

294642311

3

2

1

xxx

解 :

141

294642311

*4

2

1

1

3

2

1

S

S

S

r

31 rr

141

311642294

分解

1

4

1

3141

6421

294

4521

2

3

2

S

S

r

32 rr

4

1

1

6421

3141

294rirr Su

rr

iir u

Sl

Page 68: 计算方法

68

分解

4

43

1

652

21

25

45

41

294

3r

分解

51643

1

452

21

25

45

41

294

y

yUx 解

回代

54

1

512

452

21

25

45

41

294

x

3

2

1

x

x

x

x

54

1

512

所以原方程组的解为

Page 69: 计算方法

69

思考试用列主元 Doolittle 法解矩阵方程

BAX

nnnn

n

n

aaa

aaaaaa

A

21

22221

11211

nmnn

m

m

xxx

xxxxxx

X

21

22221

11211

nmnn

m

m

bbb

bbbbbb

B

21

22221

11211

并设计自然语言的算法

Page 70: 计算方法

70

三 追赶法 (Thomas 算法 )

对角占优矩阵 :

满足若矩阵 nnijaA )(

n

ijj

ijii aa1

|||| ni ,,2,1

.为严格对角占优矩阵则称A 满足若矩阵 nnijaA )(

n

ijj

ijii aa1

|||| ni ,,2,1

.为弱对角占优矩阵则称A

Page 71: 计算方法

71

有一类方程组 , 在今后要学习的插值问题和边值问题中有着重要的作用 , 即三对角线方程组 , 其形式为 :

nn

nnn

bacba

cbacb

A

111

222

11

nx

xx

x 2

1

fAx

其中

nf

ff

f 2

1

并且满足称为三对角线矩阵,A

0||||)1( 11 cb

--------(1)

Page 72: 计算方法

72

0,||||||)2( iiiii cacab 1,,2 ni

0||||)3( nn ab

.线矩阵称为对角占优的三对角A

0det,, AA 即非奇异显然

0det, kAkA 即阶顺序主子式非零的任意因此

分解进行可以将所以 LUA,

分解为为上三角阵时为单位下三角阵 DoolittleUL ,,

分解为为单位上三角阵时为下三角阵 CroutUL ,,

Page 73: 计算方法

73

以下以 Doolittle 分解导出三对角线方程组的解法

以 Crout 分解的三对角线方程组的解法请参考教材

设 LUA

nn

nnn

bacba

cbacb

A

111

222

11

用紧凑格式的 Doolittle 分解

1

r

nn

nnn

bacba

cblcb

111

222

11

ju1 ja111

11 u

al ii

Page 74: 计算方法

74

2

r

nn

nn

bacb

lcul

cb

11

3

222

11

1

1

r

kkjrkrjrj ulau

rr

r

kkrikir

ir u

ulal

1

1

1nr

nn

nn

ulcu

lcul

cu

11

3

222

11

11

11

3

2

nl

ll

L

n

nn

ucu

cucu

U

11

22

11

因此

二对角阵

---(2)

Page 75: 计算方法

75

LUA由

11 bu

1

i

ii u

al

1 iiii clbu ni ,,2的乘积后分解成两对角阵将系数矩阵 LUA

方程组可化为求解两个三角形解三对角线方程组 fAx

fLy

yUx

--------(3)

--------(4)

--------(5)

--------(6)

L U可得 和 的元素的计算公式

Page 76: 计算方法

76

fLy 解)1(

nn f

fff

l

ll

3

2

1

3

2

11

11

),( fL

11 fy

1 iiii ylfy

ni ,,3,2 得 --------(7)

Page 77: 计算方法

77

yUx 解)2(

n

nn

ucu

cucu

11

22

11

nx

xx

2

1

ny

yy

2

1

n

nn u

yx

i

iiii u

xcyx 1 1,2,,1ni

得 --------(8)

的追赶法式为解称由 fAx )8(~)3( 也称 Thomas 法

Page 78: 计算方法

78

例 1. 用追赶法解三对角线方程组

0101

31132

13213

4

3

2

1

xxxx

解 :

11 bu

1

i

ii u

al

1 iiii clbu

11 fy

1 iiii ylfyTaaaa ),,( 432设 T)1,2,2(

Tbbbbb ),,,( 4321 T)3,3,3,3(

Tfffff ),,,( 4321 T)0,1,0,1(

Tcccc ),,( 321 T)1,1,1( zhuiganfa.m

Page 79: 计算方法

79

11 bu

1

22 u

al 1222 clbu

3

32

37

32

3

2

33 u

al

76

2333 clbu 715

76

3

3

44 u

al

157

3444 clbu 1538

157

3

分解的作 LUA)1(

Page 80: 计算方法

80

11 fy

1222 ylfy

fLy 解)2(

1

132

0 32

2333 ylfy )32

(76

1 711

3444 ylfy 711

157

01511

yUx 解)3(

4

44 u

yx

3811

Page 81: 计算方法

81

3

4333 u

xcyx

157

)3811

711

( 3833

2

3222 u

xcyx

73

)3833

32

( 3825

1

2111 u

xcyx

31

)3825

1( 3821

因此原线性方程组的解为

Tx )3811

,3833

,3825

,3821

(

Page 82: 计算方法

82

0101

31132

13213

),( fA

abc f

1511711

32

1

1538

157

1715

76

137

32

13

解法 2. 紧凑格式 (含存储格式 )

lu

yc

Tx )3811

,3833

,3825

,3821

(

Page 83: 计算方法

83

7.3 向量及矩阵范数§

" 范数 " 是对向量和矩阵的一种度量 , 实际上是二维和三维向量长度概念的一种推广

数域 : 数的集合 , 对加法和乘法封闭

线性空间 : 可简化为向量的集合 , 对向量的加法和数量乘法封闭 ,

二维向量和三维向量都可以度量其大小和长度

高维向量的 "长度 " 能否定义呢 ?

也称为向量空间

Page 84: 计算方法

84

定义 1. ,xRn n中任意一个向量维向量空间对于

一、向量和矩阵的范数

对应,且满足与若存在唯一一个实数 xRx

;00,,0)()1( xxRxx n且正定性

;,)()2( RRxxx n ,齐次性

.,)()3( nRyxyxyx ,三角不等式

.的范数为向量则称 xx

定义中的向量范数可以类似对于复线性空间 nC

Page 85: 计算方法

85

Tn

nn xxxxCR ),,,(,)( 21 设中在向量空间

的范数有常用的向量x

2x 2

1222

21 )( nxxx

范数或欧氏范数的 2x

1x nxxx 21

范数的 1x

x inix

1max

范数或最大范数的 x

--------(1)

--------(2)

--------(3)

Page 86: 计算方法

86

px pp

n

ppxxx

1

21 )(

1, ppx 范数的

2x和

1x显然 时的特例和在是 21 ppx

p

并且由于

pp

n

ppxxx

1

21 )( inix

1max

pp

inixn

1

1)max(

ini

p xn

1

1max )(max

1

pxi

ni

x所以 的特例也是p

x

--------(4)

),( 时 pxxp

12xxx 且

Page 87: 计算方法

87

例 1. 求下列向量的各种常用范数Tx )1,3,4,1(

解 : 1x 421 xxx 9

2x 2

124

22

21 )( xxx 3327

x ii

x41

max

4

Page 88: 计算方法

88

定义 2.,AR nn 中任意一个矩阵对于空间

对应,且满足与若存在唯一一个实数 ARA

;00,,0)()1( AARAA nn且正定性

;,)()2( RRAAA nn ,齐次性

.,)()3( nnRBABABA ,三角不等式

.的范数为矩阵则称 AA

定义中的矩阵范数可以类似对于复空间 nnC

.,)4( nnRBABAAB ,

Page 89: 计算方法

89

例 2. nnijaAn )(阶方阵设

21

1 1

2

n

i

n

jijFaA设

不难验证其满足定义 2 的 4 个条件

是一种矩阵范数因此F

A

称为 Frobenius 范数 ,简称 F- 范数

21

21

)()( TTF

AAtrAAtrA 而且可以验证

tr 为矩阵的迹

--------(5)

--------(6)

类似向量的 2- 范数

Page 90: 计算方法

90

为一种向量范数设 ,, nnn RARx

令有最大值对所有的则 ,0xx

Ax

x

AxA

x 0max

个条件的满足定义可以验证 42A

定义 3.

--------(7)

的矩阵范数范数

称为从属于给定向量式确定的由

x

A)7(

简称为从属范数或算子范数

Page 91: 计算方法

91

xAAx

显然,由定义不难推出

定义 4. , 和矩阵范数对于给定的向量范数

都有若 ,, nnn RARx

xAAx

.相容和矩阵范数则称所给的向量范数

由 (8) 式 , 可知算子范数和其对应的向量范数是相容的

--------(8)

--------(9)

Page 92: 计算方法

92

根据向量的常用范数可以得到常用的矩阵算子范数

1

1

01max)1( x

AxA

x

n

iij

nja

11max

,大值的每列绝对值之和的最A 的列范数称A

x

AxA

x 0max)2(

n

jij

nia

11max

,大值的每行绝对值之和的最A 的行范数称A

2

202

max)3( xAx

Ax

)(max AAT

大值的特征值的绝对值的最为 AAAA TT )(max 范数

的称

2

A

--------(10)

--------(11)

--------(12)

Page 93: 计算方法

93

例 3.

21

1 1

2

n

i

n

jijFaA

是不是算子范数范数的判别矩阵F

AFrobeniusA

解 : 范数为的 FA

类似于向量的 2- 范数

的算子范数并不是从属于但2

xAF

I考虑单位矩阵 FI n

x

IxI

x 0max

x

xx 0

max 1

Page 94: 计算方法

94

的矩阵范数数是不从属于任意向量范因此 FA

数并不完全是一回事故而矩阵范数和算子范

不过

222xAAx

21

1

2

n

i

n

jijFaA 2

12

1)()( TT AAtrAAtr

2A )(max AAT

2xA

F

FA

相容与因此2

xAF

Page 95: 计算方法

95

例 4. 求矩阵 A 的各种常用范数

110121

021A

解 : 1A

n

iij

nja

11max

2 5 2

3

4

2

5}2,5,2{max1

nj

A

n

jij

nia

11max 4}2,4,3{max

1

ni

2A )(max AAT由于

Page 96: 计算方法

96

的特征值因此先求 AAT

AAT

110121

021

110122011

211190

102

特征方程为

)det( AAI T

211190102

0

的特征值为可得 AAT

9361.0,9211.2,1428.9 321

Page 97: 计算方法

97

1428.9)(max AAT

2A )(max AAT 0237.3

FA )( AAtr T 292 6056.3

1A A

2A

FA

容易计算 计算较复杂

对矩阵元素的变化比较敏感

不是从属范数

较少使用

使用最广泛

性质较好

Page 98: 计算方法

98

定义 5. 称的特征值为设 ,,,, 21 nnnRA

},,,max{)( 21 nA

的谱半径为矩阵A

, Ax 和算子范数对于某种向量范数

xAAx

xAx x而

因此 x xA

--------(13)

显然 2A )(max AAT )( AAT

Page 99: 计算方法

99

A

AA )(

任何一种算子范数的谱半径不超过矩阵的即矩阵A

所以

定理 1. ,, nnnn RBR 上的一种算子范数是设

且非奇异则满足若 ,,1 BIBB

BBI

1

1)( 1

--------(14)证明略

)(1

,1

,,,,

1

1

摄动定理可逆,且则且

且可逆推论:设

CC

CARCARA nnnn

Page 100: 计算方法

100

定义 6.

."".

"","",

,

,

的良态否则称为阵

矩病态为的病态则称该方程组是巨大变化

就会引起方程组解的的元素的微小变化常数项

或如果系数矩阵对于线性方程组

A

b

AbAx

二、误差分析简介

响的扰动对方程组解的影常数项b.1

为其精确解为非奇异矩阵为一线性方程组设 xAbAx ,,

xbb 则解也应存在误差存在误差若常数项 ,

即有 bbxxA )( --------(15)

Page 101: 计算方法

101

bxA bAx 1

bAx 1 bA 1

Axb xA

b

A

x

1

b

bAA

x

x 1

--------(16)

--------(17)

--------(18)

所以

又因为

可得

(16) 和 (17)两式相乘 , 得

相对误差

Page 102: 计算方法

102

(18) 式表明 , 由常数项产生的误差 , 最多可将解的相对误差放大 倍

1AA

响的扰动对方程组解的影系数矩阵A.2

bxxAA ))((

xAA 则解也应存在误差存在误差若系数矩阵 ,

0 xAxAxA

xAxAA )(

在上式能直接使用范数吗?

--------(19)

Page 103: 计算方法

103

)()( 1 AAIAAA

11 AA 如果假设

则由定理 1., 可知 非奇异AAI 1

AAAAI

111

11

)(

(19) 式化为 xAxAAIA )( 1

xAAAAIx 111 )(

--------(20)

--------(21)

Page 104: 计算方法

104

xAAAAIx 111 )(

AA

AA

x

x

1

1

1

AA

AA

1

1

1

A

AAA

A

AAA

1

1

1--------(22)

定义 7. 称为非奇异矩阵设 ,A

., 为某种算子范数其中的条件数为 A

1)( AAAcond --------(23)

Page 105: 计算方法

105

显然 1)( AAAcond 1 AA I 1

即任意方阵的条件数必不小于 1

根据算子范数的不同也有不同的条件数 :

1

111)( AAAcond

1)( AAAcond

2

122)( AAAcond

)(1

)(min

max AAAA T

T

)()(

min

max

AA

AAT

T

Page 106: 计算方法

106

b

bAcond

x

x )( --------(18)

x

x

A

AAcond

A

AAcond

)(1

)(

--------(22)

根据定义 7 的定义 ,(18)式和 (22)式可表示为

A

AAcond

)( )1( 时

A

A-----(24)

倍放大倍数不超过

误差的扰动引起的解的相对和常数项由系数矩阵

)(Acond

bA

Page 107: 计算方法

107

解的影响的指标是刻划原始数据变化对即条件数 )(Acond

大解的相对误差也可能越越大一般 ,)(Acond

方程组病态就可能是很大时因此 "",)( bAxAcond

矩阵病态就可能是而 ""A

实验 : Hilbert 矩阵和病态方程组

Page 108: 计算方法

108

7.4 迭代法§

在用直接法解线性方程组时要对系数矩阵不断变换

如果方程组的阶数很高 , 则运算量将会很大

并且大量占用计算机资源因此对线性方程组

bAx

要求找寻更经济、适用的数值解法

nnnn RxRbRA ,,设

--------(1)

Page 109: 计算方法

109

如果能将线性方程组 (1) 变换为

fBxx --------(2)

nnnn RxRfRB ,,其中

显然 ,(1) 式和 (2) 式同解 ,我们称 (1)(2) 等价

对线性方程组 (2),采用以下步骤 :

可得代入取初始向量 ),2(,)0(x

fBxx )0()1(

依此类推

Page 110: 计算方法

110

fBxx )1()2(

fBxx kk )()1(

),2,1,0( k

--------(3)

这种方式就称为迭代法 , 以上过程称为迭代过程

迭代法产生一个序列 0

)( }{ kx

如果其极限存在 , 即 *)(lim xx k

k

则称迭代法收敛 , 否则称为发散

Page 111: 计算方法

111

一、简单迭代法 (基本迭代法 )

设线性方程组 (1) 的一般形式为

11212111 bxaxaxa nn

22222121 bxaxaxa nn

nnnnnn bxaxaxa 2211

),,2,1(0 niaii 设ix则可从上式解出,

)]([1

1212111

1 nnxaxaba

x

Page 112: 计算方法

112

)]([1

2323121222

2 nnxaxaxaba

x

)(1

11

1111

1

n

jj

jjxaba

x

依此类推 , 线性方程组 (1) 可化为

)(1

21

2222

2

n

jj

jjxaba

x

)(1

1

n

ijj

jijiii

i xaba

x

)(1

1

n

njj

jnjnnn

n xaba

x

-----(4)

)(1

111

111

n

jjjxab

ax

)(1

122

222

n

jjjxab

ax

)(1

1

n

jjiji

iii xab

ax

)(1

1

n

jjnjn

nnn xab

ax

Page 113: 计算方法

113

--------(5))(1

1

)()()1(

n

j

kjiji

ii

ki

ki xab

axx

对 (4) 作迭代过程

),2,1,0;,,2,1( kni

),,,( 2211 nnaaadiagD 设

则 (5) 式转化为矩阵形式

)( )(1)()1( kkk AxbDxx

bDAxDxx kkk 1)(1)()1(

bDxADDx kk 1)(1)1( )( --------(6)

Page 114: 计算方法

114

0

00000

21

21

nn aa

aL

000

000

2

112

n

n

aaa

U

ULDA

ULAD

A的下三角部分的负矩阵

A的上三角部分的负矩阵

Page 115: 计算方法

115

故迭代过程 (6) 化为

bDxULDx kk 1)(1)1( )(

于是令 ,),( 11 bDfULDBJ

fxBx kJ

k )()1(

),2,1,0( k

等价线性方程组为 fxBx J bAx

--------(7)

称 (5)式和 (7) 式为解线性方程组 (1) 的 Jacobi 迭代法 (J 法 )

迭代法的迭代矩阵为JacobiBJ

Page 116: 计算方法

116

例 1. 用 Jacobi 迭代法求解方程组 ,误差不超过 1e-4

123320

4121114

238

3

2

1

xxx

解 :

4121114

238A

4000110008

D

000100230

U

012004000

L

Page 117: 计算方法

117

)(1 ULDBJ

041

21

111

0114

41

83

0

bDf 1

335.2

迭代法使用取初值 Jacobix T ,]000[)0(

fxBx kJ

k )()1( ),,2,1,0( nk

Page 118: 计算方法

118

041

21

111

0114

41

83

0

fxBx J )0()1(

335.2

000

T]3,3,5.2[ 924.4)0()1( xx

041

21

111

0114

41

83

0

fxBx J )1()2(

335.2

335.2

T]1,3636.2,875.2[ 1320.2)1()2( xx

Page 119: 计算方法

119

041

21

111

0114

41

83

0

fxBx J )2()3(

335.2

13636.2875.2

T]9716.0,0455.2,1364.3[ 4127.0)2()3( xx

依此类推 , 得方程组满足精度的解为 x12

迭代次数为 12 次

x4 = 3.0241 1.9478 0.9205 d = 0.1573 x5 = 3.0003 1.9840 1.0010 d = 0.0914 x6 = 2.9938 2.0000 1.0038 d = 0.0175 x7 = 2.9990 2.0026 1.0031 d = 0.0059 x8 = 3.0002 2.0006 0.9998 d = 0.0040 x9 = 3.0003 1.9999 0.9997 d = 7.3612e-004x10 = 3.0000 1.9999 0.9999 d = 2.8918e-004x11 = 3.0000 2.0000 1.0000 d = 1.7669e-004x12 = 3.0000 2.0000 1.0000 d = 3.0647e-005

Jacobi.m

0000.1

0000.2

0000.3

3

2

1

x

x

x

Page 120: 计算方法

120

分析 Jacobi 迭代法 (5)的迭代过程 , 将 (5) 式细化

)(1

1

)(11

11

)(1

)1(1

n

j

kjj

kk xaba

xx

)(1

1

)(22

22

)(2

)1(2

n

j

kjj

kk xaba

xx

已经求出之前发现在 )1(1

)1(2

)1(1

)1( ,,,,

ki

kkki xxxx

进行迭代仍用时但当求 )(1

)(2

)(1

)1( ,,,, ki

kkki xxxx

?,,,, )1(1

)1(2

)1(1

)1( 进行迭代呢利用时能否求

ki

kkki xxxx

Page 121: 计算方法

121

考虑迭代式 (7)

fxBx kJ

k )()1( ),2,1,0( k

bDxULDx kk 1)(1)1( )( 即

bUxLxDx kkk )()()1(

),( 不含对角线下三角的形式注意到L

将上式改为

bUxLxDx kkk )()1()1( --------(8)

Page 122: 计算方法

122

bUxxLD kk )()1()(

可逆时当 LD 部分包括对角线

的下三角即为

)(

ALD

bLDUxLDx kk 1)(1)1( )()(

得设 ,)(,)( 11 bLDfULDB GG

Gk

Gk fxBx )()1( --------(9)

上式称为 Gauss-Seidel 迭代法 ,简称 G-S 法

利用 (8) 式展开 Gauss-Seidel 迭代法也可表示成

),2,1,0( k

Page 123: 计算方法

123

1112

)(1

11

)1(1

11b

axa

ax

n

j

kjj

k

2223

)(2

22

1

1

)1(2

22

)1(2

111b

axa

axa

ax

n

j

kjj

j

kjj

k

3334

)(3

33

2

1

)1(3

33

)1(3

111b

axa

axa

ax

n

j

kjj

j

kjj

k

iii

n

ij

kjij

ii

i

j

kjij

ii

ki b

axa

axa

ax

111

1

)(1

1

)1()1(

nnn

n

j

kjnj

nn

kn b

axa

ax

11 1

1

)1()1(

Page 124: 计算方法

124

例 2. 用 Gauss-Seidel 迭代法求解例 1.

解 : 迭代法使用取初值 SeidelGaussx T ,]0,0,0[)0(

111

3

2

)(1

11

)1(1

11b

axa

ax

j

kjj

k

5.2)23(81 )(

3)(

2 kk xx

222

3

3

)(2

22

1

1

)1(2

22

)1(2

111b

axa

axa

ax

j

kjj

j

kjj

k

3111

114 )(

3)1(

1 kk xx

33

2

1

)1(3

33

)1(3

11b

axa

ax

j

kjj

k

3)12(41 )1(

2)1(

1 kk xx

Page 125: 计算方法

125

x1 =2.5000 2.0909 1.2273 d =3.4825x2=2.9773 2.0289 1.0041 d =0.5305x3 =3.0098 1.9968 0.9959 d =0.0465x4 =2.9998 1.9997 1.0002 d =0.0112x5 =2.9998 2.0001 1.0001 d =3.9735e-004x6 =3.0000 2.0000 1.0000 d =1.9555e-004x7 =3.0000 2.0000 1.0000 d =1.1576e-005

通过迭代 ,至第 7步得到满足精度的解 x7Gauss_seidel.m

从例 1 和例 2 可以看出 ,Gauss-Seidel 迭代法的收敛速度比 Jacobi 迭代法要高

Jacobi 迭代法和 Gauss-Seidel 迭代法统称为简单迭代法

Page 126: 计算方法

126

二、迭代法的改善

称的近似解为线性方程组设 ,bAxx

rAx

xAbr

为剩余向量 , 称

的解为修正向量 , rAzz ,表示用

zxx 令

)( zxAAx AzxA

rrb b

是精确解吗z

Page 127: 计算方法

127

用双精度求解用双精度求解

)1(xbAx 的近似解为求 )1()1()1( Axbrx 的剩余向量求

)1()1( zrAz 的近似解为求 )1()1()2( zxxbAx 的改进解得

)2()2()2( Axbrx 的剩余向量求

)2()2( zrAz 的近似解为解

)2()2()3( zxxbAx 的改进解得

依此类推 , 直到得到满足精度要求的解

修正向量

迭代终止

时EPSz k || )(

Page 128: 计算方法

128

三、迭代法的收敛性

设解线性方程组的迭代格式

fBxx kk )()1(

则而方程组的精确解为 *,x

fBxx **

--------(10)

--------(11)

将 (10) 与 (11) 相减 , 得

** )()1( BxBxxx kk *)( )( xxB k

*)()( xx kk 令 ,2,1,0k

Page 129: 计算方法

129

则 )()1( kk B )1(2 kB )0(1 kB

为非零常数向量注意 *)0()0( xx

因此迭代法收敛的充要条件

*)(limlim )1()1( xx k

k

k

k

0

0lim 1

k

kB可转变为

定理 1. 迭代格式 (10)收敛的充要条件为0lim

k

kB --------(12)

Page 130: 计算方法

130

根据矩阵与其 Jordan标准形及特征值的关系 , 可知

0lim

k

kB 1小于的所有特征值的绝对值B

即 1)( B 因此

定理 2. 迭代格式 (10)收敛的充要条件为

--------(13)1)( B

又因为矩阵的谱半径不超过其任一种算子范数 , 即

BB )( 于是又可得到

Page 131: 计算方法

131

定理 3.

--------(14)

收敛为迭代矩阵的迭代法则以若 )10(,1 BB

且 )1()()(

1

kkk xx

B

B

证明 : 只证 (14) 式

*)1( xx k *)()()1( xxxx kkk

*)( xx k )(* )()1()1( kkk xxxx

*)( xx k )()1()1( * kkk xxxx

)(*)( )1()()( kkk xxBxxB

Page 132: 计算方法

132

*)( xx k

)1()()( * kkk xxBxxB

所以

*)( xx k

)1()(

1

kk xx

B

B

--------(14)即)1()()(

1

kkk xx

B

B

(14) 可以用来估计迭代法的精度 ,理论上只要

epsB

Bxx kk

1)1()( epsk )(

Page 133: 计算方法

133

在计算时 , 迭代终止的时间可以用上式判别

例 3. 判别下列方程组用 J 法和 G-S 法求解是否收敛

111

122111221

3

2

1

xxx

解 : (1) 求 Jacobi 法的迭代矩阵

)(1 ULDBJ

100010001

022101

220

022101

220

Page 134: 计算方法

134

,1JJ BB的几种常用算子范数显然因此不能用定理3

只能用定理2判断

)det( JBI

221122

det 3 0

所以 0 |)max(|)( JB 0 1

即 Jaobi 迭代法收敛(2) 求 Gauss-Seidel 法的迭代矩阵

ULDBG1)(

1

122011001

000100

220

Page 135: 计算方法

135

GB

200320

220同样用定理2判断

0 2

|)max(|)( GB 2 1

所以 Gauss-Seidel 迭代法发散

在例 1 和例 2 中 ,G-S 法收敛速度比 J 法要高

但例 3却说明 G-S 法发散时而 J 法却收敛

因此 , 不能说 G-S 法比 J 法更好

Page 136: 计算方法

136

另外 , 给出系数矩阵对角占优线性方程组的一个结论

定理 4.法均收敛法和则矩阵

为严格对角占优的系数矩阵若线性方程组

SGJacobi

AbAx

,

证 :

(1) 对于 Jacobi 迭代法 , 其迭代矩阵为 )(1 ULDBJ

所以严格对角占优因为系数矩阵 ,A

niaaij

ijii ,,3,2,1||||

niaa ij

ijii

,,3,2,11||||

1

Page 137: 计算方法

137

0

0

0

21

22

2

22

21

11

1

11

12

nn

n

nn

n

n

n

J

a

a

a

a

a

a

a

aa

a

a

a

B

JB

ij

ijii

ia

a||

||1

max 1

根据定理3 Jacobi 迭代法收敛

(2) 对于 G—S 迭代法 , 其迭代矩阵为 ULDBG1)(

,的形式不易确定由于 GB 不能使用定理 3, 而用定理 2

Page 138: 计算方法

138

满足的特征值GB 0)det( GBI

])(det[ 1ULDI

])(det[)det( 1 ULDLD

0

])(det[ ULD 0

0

ij

ijii aa ||||

n

ijij

i

jijii aaa

1

1

1

||||||||||||

n

ijij

n

ijij

i

jij aaa

11

1

1

||)1|(|||||||

即从而

因此

由于

可得

Page 139: 计算方法

139

则有如果 ,1||

n

ijij

i

jijii aaa

1

1

1

||||||||||

为严格对角占优矩阵则 ])([ ULD

0])(det[ ULD从而 矛盾

,1|| 所以 ,1)( GB即

由定理2 G—S 迭代法收敛

Page 140: 计算方法

140

7.5 迭代法的加速§

解线性方程组的 Jacobi 迭代法和 G—S 迭代法

都涉及到收敛速度问题

如何加快迭代法的速度呢?

也涉及到初值的选取问题

如何改善迭代法的适用范围呢?

Page 141: 计算方法

141

iii

n

ij

kjij

ii

i

j

kjij

ii

ki b

axa

axa

ax

111

1

)(1

1

)1()1(

线性方程组迭代法的加速

考虑解线性方程组的 Gauss-Seidel 迭代法

n

ij

kjij

ii

i

j

kjij

iii

ii

xaa

xaa

ba 1

)(1

1

)1( 111

)()(1

1

)1( 111 ki

n

ij

kjij

ii

i

j

kjij

iii

ii

xxaa

xaa

ba

)(1 )(

1

1

)1()(

n

ij

kjij

i

j

kjiji

ii

ki xaxab

ax

------(1)

Page 142: 计算方法

142

令 )()1()( ki

ki

ki xxr

)(1 )(

1

1

)1(

n

ij

kjij

i

j

kjiji

ii

xaxaba

的改变量次迭代时为第 xkr ki 1)(

)()()1( ki

ki

ki rxx 因此

得前加一个因子在改变量 ),20(,)( kir

)()()1( ki

ki

ki rxx

)( )(1

1

)1()(

n

ij

kjij

i

j

kjiji

ii

ki xaxab

ax

------(2)

Page 143: 计算方法

143

得在上式中合并 ,)(kix

)()1(1

)(1

1

)1()()1(

n

ij

kjij

i

j

kjiji

ii

ki

ki xaxab

axx

,2,1,0,,2,1 kni ------(3)

上式称为逐次超松弛法 (SOR 迭代法 ), 称为松弛因子

Gk

Gk fxBx )()1(

bLDUxLD k 1)(1 )()(

bUxxLD kk )()1()(

由 G-S 迭代法的矩阵形式------(4)

Page 144: 计算方法

144

)()1()( kkk xxr

)()()1( kkk rxx

bUxLxDx kkk )()1()1(

bDUxDLxDx kkk 1)(1)1(1)1(

bDUxDLxDxx kkkk 1)(1)1(1)()(

bDUxDLxDx kkk 1)(1)1(1)(

)()1( 1)(1)1(1)( bDUxDLxDx kkk

------(5)

的改变量次迭代时第 xk 1

前加上因子在 )(kr

Page 145: 计算方法

145

)()1( )()1()()1( bUxLxDxDx kkkk

bxUDxLD kk )()1( ))1(()(

bLDxUDLDx kk 1)(1)1( )())1(()( ----(6)

上式为逐次超松弛法 (SOR 迭代法 ) 的矩阵形式

))1(()( 1 UDLDB

bLDf 1)(

fxBx kk )()1( ----(7)

法的迭代矩阵为SORB

Page 146: 计算方法

146

,1时当 SOR 法化为

bLDUxLDx kk 1)(1)1( )()( G-S 迭代法

G-S 法为 SOR 法的特例 , SOR 法为 G-S 法的加速

例 1. 用 G-S 法和 SOR 法求下列方程组的解 , 45.1取

321242124

3

2

1

xxx

32

0

要求精度 1e-6

Page 147: 计算方法

147

解 : (1)G-S 迭代法

GB ULD 1)(

1

321042004

000200120

5.03/10625.025.0025.05.00

f bLD 1)(

1

321042004

32

0

3/25.0

0

Page 148: 计算方法

148

)',0,0()0( 0取初值 x gauss_seidel.m

[x,k]=gauss_seidel(a,b,[1,1,1]',1e-6) 1 1 1 0.7500000 0.3750000 1.5000000 0.5625000 0.5312500 1.5416667 0.6510417 0.5963542 1.6145833 0.7018229 0.6582031 1.6727431………………………………………. 0.9999933 0.9999923 1.9999926 0.9999943 0.9999935 1.9999937 0.9999952 0.9999944 1.9999946 k = 71

x=0.9999950.9999941.999995

满足精度的解

迭代次数为 71 次

Page 149: 计算方法

149

(1)SOR 迭代法

1 1 1 0.6375000 0.0121875 1.3199063 0.2004270 0.3717572 1.3122805 0.6550335 0.5340119 1.6922848 0.7058468 0.7733401 1.7771932……………………………………….. 0.9999990 0.9999976 1.9999991 0.9999984 0.9999993 1.9999989 0.9999998 0.9999994 1.9999998 0.9999996 0.9999998 1.9999997 k = 24

x=1.0000001.0000002.000000

满足精度的解

迭代次数为 24 次

bLDxUDLDx kk 1)(1)1( )())1(()(

sor.m

SOR 法的收敛速度比 G-S 法要快得多,选取适当的

Page 150: 计算方法

150

SOR 法都收敛吗?

1.SOR 迭代法收敛的充要条件是

对于 SOR 迭代法 (7), 有如下结论

1)( B ----(8)

|1|)( B由于 (此结论的证明较复杂 ), 因此有法收敛的必要条件是即 SOR20,1|1|.2

,,20,.3 )0(xA 对任意初值且为对称正定矩阵若矩阵 法均收敛SOR

收敛对任意初值为对称正定矩阵若矩阵 )0(,.4 xSGA

另外 ,松弛因子的选取是很困难的 , 一般采用试算进行


Recommended