Date post: | 01-Jan-2016 |
Category: |
Documents |
Upload: | fidelio-langan |
View: | 30 times |
Download: | 4 times |
1
第七章 线行方程组的解法
2
第七章 线性方程组的解法
7.1 高斯消去法§
7.2 三角分解法§
7.3 向量及矩阵范数§
7.4 迭代法§
7.5 迭代法的加速§
3
本章要点
本章主要介绍线性方程组的数值方法 : 高斯消去法、三角分解法、三对角方程组的追赶法迭代法、向量及矩阵范数 . 涉及到一些三角分解:主要有 Doolittle分解、 Crout 分解等主要方法高斯消去法、三角分解法、 \G-J 迭代法、 G-S 迭代法和SOR 方法
4
引题:投入产出平衡分析
设国民经济仅由农业、制造业和服务业三个部门组成 ,已知某年它们之间的投入产出关系、外部需求、初始投入等如下表所示:
产出投入
农业 制造业 服务业 外部需求 总产出
农业 15 20 30 35 100
制造业 30 10 45 115 200
服务业 20 60 / 70 150
初始投入 35 110 75
总投入 100 200 150
表 1. 国民经济个部门之间的关系
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 亿元 , 问这 三个部门的总产出分别为多少 ?
6
3) 如果三个部门的外部需求分别增加 1 个单位 ,他们 的总产出分别增加多少 ?
4) 如果对于任意给定的、非负的外部需求 , 都能得到非负的总产出 , 模型就称为可行的 , 问为使模型可行 ,投入系数应满足什么条件 ?
7
7.1.1 直接法与三角形方程组求解
实际问题中的线性方程组分类:
按系数矩阵中零元素的个数:
稠密线性方程组
稀疏线性方程组
按未知量的个数:
高阶线性方程组
低阶线性方程组( 如 1000)
(80%)
按系数矩阵的形状
对称正定方程组
三角形方程组
三对角占优方程组
7.1 Gauss 消去法§
8
一、直接法概述
直接法是将原方程组化为一个或若干个三角形方程组的方法,共有若干种.
对于线性方程组 bAx
nnnn
n
n
aaa
aaa
aaa
A
21
22221
11211
nx
x
x
x2
1
nb
b
b
b2
1其中
系数矩阵 未知量向量 常数项
------------(1)
9
根据 Cramer( 克莱姆 ) 法则 , 若0)det( A
有唯一解则方程组 bAx
determinantal
||)det( AA 行列式的记号
若用初等变换法求解 , 则对其增广矩阵作行初等变换 :
),( bAA ),( )1()1( bA ),( )2()2( bA
经过 n-1 次 ),( )()( nn bA
为上三角阵目标: )(nA
的解不难得到则方程组 )()( nn bxA
10
bAx
bAx )()( nn bxA
同解
即
以上求解线性方程组的方法称为 Gauss 消去法
即和两个三角形矩阵分解成的系数矩阵如果将线性方程组
,UL
AbAx
LUA
则 bLUx bLy yUx
都是三角形方程组
上述方法称为直接三角形分解法
------------(2)
11
不论是 Gauss 消去法还是直接三角形分解法 ,最都归结为解三角形方程组
二、三角形线性方程组的解法
bLx bUx
nnnn lll
ll
l
L
21
2221
11
nn
n
n
u
uu
uuu
U
222
11211若记
下三角形线性方程组 上三角形线性方程组
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
即
回代方
向
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
其解为
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
回代方向
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如果
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
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
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
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
20
)(
)(
nnn
nn
n a
bx
1,2,,2,1 nni
)(1
)()(
iii
n
ijj
iij
ii
i a
xab
x
21
二、 Gauss 消去法的运算量
计算机作乘除运算所耗时间要远远多于加减运算
且在一个算法中,加减运算和乘除运算次数大体相当
故在衡量一个算法的运算量时只需统计乘除的运算次数
步消元时作第k 乘法次数: 次)1)(( knkn
除法次数: 次)( kn
数为步消元乘除法运算总次作第k次)2)(( knkn
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
数级
23
很大时当n33
23 n
nn
MD3
3n
时如 20n Gauss 消去法乘除法约为 2700 次
而如果用 Cramer 法则的乘除法运算次数约为
20)120)(120(!20 20109
或 2700)120(
用行列式定义
用行列式性质
24
7.1.3 Gauss 列主元消去法
例 1. 用 Gauss 消去法解线性方程组 ( 用 3 位十进制浮点数计算)
210001.0
21
21
xx
xx
解 : 本方程组的精度较高的解为Tx )99989999.0,00010001.1(*
用 Gauss 消去法求解 ( 用 3 位十进制浮点数计算 )
一、 Gauss 列主元消去法的引入
25
),( bAA
21
111000100.0
1000021m
44 1000.1
11000.10
1000100.0
9999
00.1,00.0 21 xx回代后得到
与精确解相比 , 该结果相当糟糕
究其原因 , 在求行乘数时用了很小的数 0.0001 作除数
主元
26
),( bAA
12
1000100.011
0001.021m
00.12
00.1011
如果在求解时将 1,2 行交换 , 即
0.9999
00.1,00.1 21 xx
回代后得到
这是一个相当不错的结果
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
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
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(*
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
行变换相当于左乘初等矩阵
由于
31
1
11
1
211
nm
mL
令
则 ),( )1()1(1 bAL ),( )2()2( bA
1
11
1
,
,1
kn
kkk
m
mL
显然若令
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
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
)(
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
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
36
2.Gauss 列主元消去法消元过程的矩阵描述
由于 Gauss 列主元消去法每一步都要选取列主元 , 因此不可避免要进行行交换
行交换后再消元行与的第要将步消元时设第 kkk ikbAk ),(, )()(
即 ),( )()( kk bA ),( )1()1( kk bAkL kikI ,
kikI ,
1
01
10
1
行第k
行第 ki
kik 一般
时kik
II kik,
表示不换行初等矩阵
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
仍然为单位下三角矩阵
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则 单位下三角阵与上三角阵的乘积
39
分解的上述过程称为矩阵 LUPA
综合以上讨论 , 有
定理 2.
,0det, AAn 即为非奇异矩阵阶方阵若
使得阵和一个非奇异上三角矩、一个单位下三角矩阵则必存在一个排列矩阵
,U
LP
PA LU
请作出 Gauss 列主元消去法的程序 ( 用 Matlab语言 )
已编程序 gaussliezhuyuan.m
40
开始
EPSnbA ,,,输入
输出无解信息
k1
x输出解
EPSnnA |),(|
nk
kk 1
P选取主元素
EPSP ||
消元换行
停机 回代求解
TT
T
F
FF
三、G
auss
列主元消去法的算法设
计
( 一 ) 流程图
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
选主元
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
换行
消元
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
回代
44
输出无解信息.7
停机.8
上述过程中的储存空间需要 :
注意 :
1:1,:1),,( njnijiA增广矩阵
1:1,:1),,( nknkikim行乘数矩阵
nkkx :1),( 解向量
SIPkji ,,,,, 0
储存空间需要较大
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如果 则转到
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
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. 停机
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 三角分解法§
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 ,,
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
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)
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
思考
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
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
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
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
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
58
的存储位置即不再需要后的第一列求出 )2(11 ialL ii
的存储位置即不再需要后行的第求出 )( rjaurU rjrj
的存储位置即不再需要后列的第求出 )1( rialrL irir
因此可按下列方法存储数据 :
nrrjua rjrj ,,2,1),(
1,,2,1),1( nrrila irir
有如下特点:时解三角形方程组同样 ,, bLy
的存储位置即不再需要后求出 11 by
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
存储单元 ( 位置 )
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 法
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
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
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
64
二、列主元 Doolittle 分解
1
1
r
kkjrkrjrj ulau
rr
r
kkrikir
ir u
ulal
1
1
在 Doolittle 法 (包括紧凑格式 ) 中 ,会反复用到公式
)(rrrrr aGaussu 法的顺序主元相当于显然
法的顺序主元为仍然称 Doolittleurr
仍有可能为小主元做除数
为此 ,我们也要考虑在算法中加入选取列主元
我们下面介绍紧凑格式的 Doolittle 列主元法
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
分解换行,
符号因换行只代表存储位置 , 与原数值可能有差异
依此类推
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
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
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
所以原方程组的解为
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
并设计自然语言的算法
70
三 追赶法 (Thomas 算法 )
对角占优矩阵 :
满足若矩阵 nnijaA )(
n
ijj
ijii aa1
|||| ni ,,2,1
.为严格对角占优矩阵则称A 满足若矩阵 nnijaA )(
n
ijj
ijii aa1
|||| ni ,,2,1
.为弱对角占优矩阵则称A
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)
72
0,||||||)2( iiiii cacab 1,,2 ni
0||||)3( nn ab
.线矩阵称为对角占优的三对角A
0det,, AA 即非奇异显然
0det, kAkA 即阶顺序主子式非零的任意因此
分解进行可以将所以 LUA,
分解为为上三角阵时为单位下三角阵 DoolittleUL ,,
分解为为单位上三角阵时为下三角阵 CroutUL ,,
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
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)
75
LUA由
11 bu
1
i
ii u
al
1 iiii clbu ni ,,2的乘积后分解成两对角阵将系数矩阵 LUA
方程组可化为求解两个三角形解三对角线方程组 fAx
fLy
yUx
--------(3)
--------(4)
--------(5)
--------(6)
L U可得 和 的元素的计算公式
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)
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 法
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
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(
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
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
(
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
(
83
7.3 向量及矩阵范数§
" 范数 " 是对向量和矩阵的一种度量 , 实际上是二维和三维向量长度概念的一种推广
数域 : 数的集合 , 对加法和乘法封闭
线性空间 : 可简化为向量的集合 , 对向量的加法和数量乘法封闭 ,
二维向量和三维向量都可以度量其大小和长度
高维向量的 "长度 " 能否定义呢 ?
也称为向量空间
84
定义 1. ,xRn n中任意一个向量维向量空间对于
一、向量和矩阵的范数
对应,且满足与若存在唯一一个实数 xRx
;00,,0)()1( xxRxx n且正定性
;,)()2( RRxxx n ,齐次性
.,)()3( nRyxyxyx ,三角不等式
.的范数为向量则称 xx
定义中的向量范数可以类似对于复线性空间 nC
85
Tn
nn xxxxCR ),,,(,)( 21 设中在向量空间
的范数有常用的向量x
2x 2
1222
21 )( nxxx
范数或欧氏范数的 2x
1x nxxx 21
范数的 1x
x inix
1max
范数或最大范数的 x
--------(1)
--------(2)
--------(3)
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 且
87
例 1. 求下列向量的各种常用范数Tx )1,3,4,1(
解 : 1x 421 xxx 9
2x 2
124
22
21 )( xxx 3327
x ii
x41
max
4
88
定义 2.,AR nn 中任意一个矩阵对于空间
对应,且满足与若存在唯一一个实数 ARA
;00,,0)()1( AARAA nn且正定性
;,)()2( RRAAA nn ,齐次性
.,)()3( nnRBABABA ,三角不等式
.的范数为矩阵则称 AA
定义中的矩阵范数可以类似对于复空间 nnC
.,)4( nnRBABAAB ,
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- 范数
90
为一种向量范数设 ,, nnn RARx
令有最大值对所有的则 ,0xx
Ax
x
AxA
x 0max
个条件的满足定义可以验证 42A
定义 3.
--------(7)
的矩阵范数范数
称为从属于给定向量式确定的由
x
A)7(
简称为从属范数或算子范数
91
xAAx
显然,由定义不难推出
定义 4. , 和矩阵范数对于给定的向量范数
都有若 ,, nnn RARx
xAAx
.相容和矩阵范数则称所给的向量范数
由 (8) 式 , 可知算子范数和其对应的向量范数是相容的
--------(8)
--------(9)
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)
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
94
的矩阵范数数是不从属于任意向量范因此 FA
数并不完全是一回事故而矩阵范数和算子范
不过
222xAAx
21
1
2
n
i
n
jijFaA 2
12
1)()( TT AAtrAAtr
2A )(max AAT
2xA
F
FA
相容与因此2
xAF
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由于
96
的特征值因此先求 AAT
AAT
110121
021
110122011
211190
102
特征方程为
)det( AAI T
211190102
0
的特征值为可得 AAT
9361.0,9211.2,1428.9 321
97
1428.9)(max AAT
2A )(max AAT 0237.3
FA )( AAtr T 292 6056.3
1A A
2A
FA
容易计算 计算较复杂
对矩阵元素的变化比较敏感
不是从属范数
较少使用
使用最广泛
性质较好
98
定义 5. 称的特征值为设 ,,,, 21 nnnRA
},,,max{)( 21 nA
的谱半径为矩阵A
, Ax 和算子范数对于某种向量范数
xAAx
xAx x而
因此 x xA
--------(13)
显然 2A )(max AAT )( AAT
99
A
AA )(
任何一种算子范数的谱半径不超过矩阵的即矩阵A
即
所以
定理 1. ,, nnnn RBR 上的一种算子范数是设
且非奇异则满足若 ,,1 BIBB
BBI
1
1)( 1
--------(14)证明略
)(1
,1
,,,,
1
1
摄动定理可逆,且则且
且可逆推论:设
CC
CARCARA nnnn
100
定义 6.
."".
"","",
,
,
的良态否则称为阵
矩病态为的病态则称该方程组是巨大变化
就会引起方程组解的的元素的微小变化常数项
或如果系数矩阵对于线性方程组
A
b
AbAx
二、误差分析简介
响的扰动对方程组解的影常数项b.1
为其精确解为非奇异矩阵为一线性方程组设 xAbAx ,,
xbb 则解也应存在误差存在误差若常数项 ,
即有 bbxxA )( --------(15)
101
bxA bAx 1
bAx 1 bA 1
Axb xA
b
A
x
1
b
bAA
x
x 1
--------(16)
--------(17)
--------(18)
所以
又因为
可得
(16) 和 (17)两式相乘 , 得
相对误差
102
(18) 式表明 , 由常数项产生的误差 , 最多可将解的相对误差放大 倍
1AA
响的扰动对方程组解的影系数矩阵A.2
bxxAA ))((
xAA 则解也应存在误差存在误差若系数矩阵 ,
0 xAxAxA
xAxAA )(
在上式能直接使用范数吗?
--------(19)
103
)()( 1 AAIAAA
11 AA 如果假设
则由定理 1., 可知 非奇异AAI 1
AAAAI
111
11
)(
且
(19) 式化为 xAxAAIA )( 1
xAAAAIx 111 )(
--------(20)
--------(21)
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)
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
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
107
解的影响的指标是刻划原始数据变化对即条件数 )(Acond
大解的相对误差也可能越越大一般 ,)(Acond
方程组病态就可能是很大时因此 "",)( bAxAcond
矩阵病态就可能是而 ""A
实验 : Hilbert 矩阵和病态方程组
108
7.4 迭代法§
在用直接法解线性方程组时要对系数矩阵不断变换
如果方程组的阶数很高 , 则运算量将会很大
并且大量占用计算机资源因此对线性方程组
bAx
要求找寻更经济、适用的数值解法
nnnn RxRbRA ,,设
--------(1)
109
如果能将线性方程组 (1) 变换为
fBxx --------(2)
nnnn RxRfRB ,,其中
显然 ,(1) 式和 (2) 式同解 ,我们称 (1)(2) 等价
对线性方程组 (2),采用以下步骤 :
可得代入取初始向量 ),2(,)0(x
fBxx )0()1(
依此类推
110
fBxx )1()2(
fBxx kk )()1(
),2,1,0( k
--------(3)
这种方式就称为迭代法 , 以上过程称为迭代过程
迭代法产生一个序列 0
)( }{ kx
如果其极限存在 , 即 *)(lim xx k
k
则称迭代法收敛 , 否则称为发散
111
一、简单迭代法 (基本迭代法 )
设线性方程组 (1) 的一般形式为
11212111 bxaxaxa nn
22222121 bxaxaxa nn
nnnnnn bxaxaxa 2211
),,2,1(0 niaii 设ix则可从上式解出,
)]([1
1212111
1 nnxaxaba
x
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
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)
114
令
0
00000
21
21
nn aa
aL
000
000
2
112
n
n
aaa
U
ULDA
ULAD
A的下三角部分的负矩阵
A的上三角部分的负矩阵
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
116
例 1. 用 Jacobi 迭代法求解方程组 ,误差不超过 1e-4
123320
4121114
238
3
2
1
xxx
解 :
4121114
238A
4000110008
D
000100230
U
012004000
L
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
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
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
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
121
考虑迭代式 (7)
fxBx kJ
k )()1( ),2,1,0( k
bDxULDx kk 1)(1)1( )( 即
bUxLxDx kkk )()()1(
),( 不含对角线下三角的形式注意到L
将上式改为
bUxLxDx kkk )()1()1( --------(8)
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
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(
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
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 迭代法统称为简单迭代法
126
二、迭代法的改善
称的近似解为线性方程组设 ,bAxx
rAx
xAbr
为剩余向量 , 称
的解为修正向量 , rAzz ,表示用
zxx 令
)( zxAAx AzxA
rrb b
是精确解吗z
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 || )(
128
三、迭代法的收敛性
设解线性方程组的迭代格式
fBxx kk )()1(
则而方程组的精确解为 *,x
fBxx **
--------(10)
--------(11)
将 (10) 与 (11) 相减 , 得
** )()1( BxBxxx kk *)( )( xxB k
*)()( xx kk 令 ,2,1,0k
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)
130
根据矩阵与其 Jordan标准形及特征值的关系 , 可知
0lim
k
kB 1小于的所有特征值的绝对值B
即 1)( B 因此
定理 2. 迭代格式 (10)收敛的充要条件为
--------(13)1)( B
又因为矩阵的谱半径不超过其任一种算子范数 , 即
BB )( 于是又可得到
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
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 )(
133
在计算时 , 迭代终止的时间可以用上式判别
例 3. 判别下列方程组用 J 法和 G-S 法求解是否收敛
111
122111221
3
2
1
xxx
解 : (1) 求 Jacobi 法的迭代矩阵
)(1 ULDBJ
100010001
022101
220
022101
220
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
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 法更好
136
另外 , 给出系数矩阵对角占优线性方程组的一个结论
定理 4.法均收敛法和则矩阵
为严格对角占优的系数矩阵若线性方程组
SGJacobi
AbAx
,
证 :
(1) 对于 Jacobi 迭代法 , 其迭代矩阵为 )(1 ULDBJ
所以严格对角占优因为系数矩阵 ,A
niaaij
ijii ,,3,2,1||||
niaa ij
ijii
,,3,2,11||||
1
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
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|(|||||||
即从而
因此
由于
可得
139
则有如果 ,1||
n
ijij
i
jijii aaa
1
1
1
||||||||||
为严格对角占优矩阵则 ])([ ULD
0])(det[ ULD从而 矛盾
,1|| 所以 ,1)( GB即
由定理2 G—S 迭代法收敛
140
7.5 迭代法的加速§
解线性方程组的 Jacobi 迭代法和 G—S 迭代法
都涉及到收敛速度问题
如何加快迭代法的速度呢?
也涉及到初值的选取问题
如何改善迭代法的适用范围呢?
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)
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)
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)
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
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
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
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
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 次
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 法要快得多,选取适当的
150
SOR 法都收敛吗?
1.SOR 迭代法收敛的充要条件是
对于 SOR 迭代法 (7), 有如下结论
1)( B ----(8)
|1|)( B由于 (此结论的证明较复杂 ), 因此有法收敛的必要条件是即 SOR20,1|1|.2
,,20,.3 )0(xA 对任意初值且为对称正定矩阵若矩阵 法均收敛SOR
收敛对任意初值为对称正定矩阵若矩阵 )0(,.4 xSGA
另外 ,松弛因子的选取是很困难的 , 一般采用试算进行