Professional Documents
Culture Documents
线性代数方程组的数值解法
§3.1 高斯消去法——内容回顾
§3.1.1 顺序高斯消去法
§3.1.2 列主元高斯消去法
§3.1.3 高斯-若尔当消去法
2
§3.1.1 顺序高斯消去法
如此继续消元下去,第 n - 1步结束后得到矩阵:
a11(1) (1)
a12 (1 )
a13 ... a1(1n) b1(1)
(2) ( 2)
0 a 22 a 23 ... a 2( 2n) (2)
b2
( A (n) , b (n) ) 0 0 ( 3)
a 33 ... a 3( 3n)
b3( 3 )
... ... ... ... ... ...
(n)
0 0 0 ... a nn bn( n )
这就完成了消元过程。
3
§3.1.1 顺序高斯消去法
对应的方程组变成:
a11(1) x1 a12
(1)
x 2 ... a1(1n) x n b1(1)
( 2)
a 22 x 2 ... a 2( 2n) x n b2( 2 )
(式 2 )
................................................
a (n)
nn x n bn
(n)
对此方程组进行回代, 就可求出方程组的解。
bn( n )
xn ( n )
a nn
(i ) n
bi a ij( i ) x j (式 3 )
xi j i 1 , i n 1, n 2, ,1
a ii( i )
(k )
元素 a kk 称为约化的主元素。
4
§3.1.2 列主元高斯消去法
给定线性方程组 Ax=b ,记 A(1)=A , b(1)=b ,列主元
Gauss 消去法的具体过程如下:
首先在增广矩阵 B(1)=(A(1),b(1)) 的第一列元素中,取
a k(11) max a i(11) 为主元素, rk r1 .
1 i n
然后进行第一步消元得增广矩阵 B(2)=(A(2),b(2)) 。 再在
矩阵 B(2)=(A(2),b(2)) 的第二列元素中,取
a k( 22) max a i(22 ) 为主元素, rk r2 .
2 i n
然后进行第二步消元得增广矩阵 B(3)=(A(3),b(3)) 。按此方
法继续进行下去 , 经过 n-1 步选主元和消元运算 , 得到增广
矩阵 B(n)=(A(n),b(n)). 则方程组 A(n)x=b(n) 是与原方程组等价的上
三角形方程组 , 可进行回代求解 .
易证,只要 |A|0, 列主元 Gauss 消去法就可顺利进行。
5
§3.1.3 高斯 - 若尔当消去法
高斯 - 约当消去法( Gauss-Jordan )
这是一种无回代的方法,使计算工作量减小,在第 k 次
消元时不仅把 akk(k) 化成 1 ,不仅将 aik ( i=k+1 ,……,
n )化成 0 ,而且也将 aik ( i=1 , 2 ,……, k-1 )也化
为 0 ,最后消元过程结束时的系数矩阵为 1 0 0 0 0
0 1 0 0 0
0 0 0 0
1
0 0 0 0 1
得消元公式
akj (k)=akj(k-1)/akk(k-1) ( j=1,2,…,n+1 )
aij (k)= aij (k-1)- aik(k-1)akj(k) ( i k,i=1,2,…,n , j=1,2,
…,n+1 ) 6
§3.2 矩阵三角分解法
本节内容
§3.2.1 Gauss消去法的矩阵表示
§3.2.2 Doolittle分解法
7
§3.2.1 Gauss 消去法的矩阵表示
一 . Gauss 消去法的矩阵表示
对矩阵
a11(1) a12(1 )
a1(1n)
(1 ) (1 ) (1)
a 21 a 22 a 2 n
A (1)
a (1 ) (1)
a n(12) a nn
n1
8
§3.2.1 Gauss 消去法的矩阵表示
若a11(1) 0,令m i 1 a i(11) a11(1) , i 2,3, , n, 记
1
m 21 1
L1 m 31 1
m n1 1
a11(1) a12(1)
a1(1n)
( 2) ( 2)
0 a 22 a 2 n
则有 A( 2 ) L1 A(1)
0 ( 2)
a n( 22) a nn
9
§3.2.1 Gauss 消去法的矩阵表示
( 2)
若a 22 0,令 m i 2 a i(22 ) a 22
( 2)
, i 3 , 4, , n , 记
1
1
L2 m 32 1
mn2 1
a11(1) (1)
a12 (1)
a13 a1(1n)
( 2) ( 2) ( 2)
0 a 22 a 23 a2n
则有 A( 3 ) L2 A( 2 ) 0 0 ( 3)
a 33
a 3( 3n)
( 3)
0 0 a n( 33) a nn
10
§3.2.1 Gauss 消去法的矩阵表示
如此进行下去,第 n 1步得到:
a11(1) a12
(1)
a1(1n)
( 2) ( 2)
(n) ( n 1) a 22 a 2 n
A Ln 1 A
a ( n)
nn
1
1
其中 Ln1
1
m n , n 1 1
11
§3.2.1 Gauss 消去法的矩阵表示
也就是:
A(n)=Ln-1A(n-1) =Ln-1Ln-2A(n-2) =…= Ln-1Ln-2…L2L1A(1)
其中:
1
1
Lk
m k 1k 1 第
第 k行 k+1 行
m nk 1 , k 1,2, , n 1
所以得
Ly b
于是 Ax=b LUx=b
Ux y
令 Ux=y 得
14
§3.2.2 Doolittle 分解法
下面介绍矩阵三角分解 的Doolittle 分解方法,设
a11 a12 ... a1n
a 21 a 22 ... a 2 n
a a 32 a3n
31
a n1 an 2 ... a nn
1 u11 u12 u13 ... u1n
m 21 1 u22 u23 ... u2 n
m m 32 1 u33 ... u3 n
31
m n1 m n 2 m n 3 1 unn
则得: u1 j a1 j j 1,2, n
m i 1 a i 1 u11 i 2,3, , n
15
§3.2.2 Doolittle 分解法
对 K=2,3,…,n 计算
(1)
若已求得 U的( i 1)行及 L的( i 1)列,则由矩阵乘法有
a ij m i 1 u1 j m i 2 u2 j m i 3 u3 j m inunj
n i 1
m ik ukj m ik ukj uij,j i
k 1 k 1
ij 1
可得 uij a ij m ik ukj j i , i 1, , n
k 1
求 U 的第 i 行元
素
16
§3.2.2 Doolittle 分解法
对 K=2,3,…,n 计算
(2)
另 a ij m i 1 u1 j m i 2 u2 j m i 3 u3 j m in unj
j 1
m ik ukj m ij u jj,i j 1, , n
k 1
若uij 0,
j 1
1
可得 m ij (a ij m ik ukj ) , i j 1, , n
u jj k 1
求 L 的第 i 列元素
17
§3.2.2 Doolittle 分解法
a11 a12 ... a1n u11 u12 ... u1n
a 21 a 22 ... a 2 n a 21 u22 ... u2 n
a an 2 ... a nn a an2 ... unn
n1 n1
19
20
21
§3.2.2 Doolittle 分解法
由
1 y1 b1 u11 u12 ...u1n x1 y1
m 21 1 y 2 b2 u22 ... u2 n x 2 y 2
,
m mn2 ... 1 yn bn unn x n yn
n1
可得
i 1
y1 b1 yi bi m ij y j , i 2,3, , n
j 1
n
1
x n y n unn xi
uii
( yi u
j i 1
ij x j ), i n 1, ,2,1
解 因为
1 2 3 1 2 3 1 2 3 1 2 3
A 2 1 3 2 2 5
3 2 2 3 3
1 2 3 1 2 3 1 2 3
2 5 9 2 5 9 2 5 9
3 3 8 3 8 17
5 5 5
23
§3.2.2 Doolittle 分解法
所以
1 2 3 1 1 2 3
A 2 1 3 2 1 5 9
3 2 2 3 8 1 17
5 5
1 y1 1 y1 1 1 1
先解 2 1 y 2 5 , y2 3 3
3 8 1 y 1 得 y 34
5 3 3 5
1 2 3 x1 1 x1 1
再解 5 9 x 2 3 , 得 x2 3 3
17
x 34 x 2 2 2
5 3 5 3
24
§3.2.2 Doolittle 分解法
解线性方程组 Ax=b 的 Doolittle 三角分解法
的计算量约为 1/3n3, 与 Gauss 消去法基本相同。
其优点在于求一系列同系数的线性方程组 Ax=bk ,
(k=1,2,…,m) 时 , 可大大节省运算量。
例如 , 求上例中矩阵 A 的逆矩阵。可分别取常向量
b1=(1,0,0)T, b2=(0,1,0)T, b3=(0,0,1)T
25
§3.2.2 Doolittle 分解法
1 y1 1 1 2 3 x1 y1 x1 174
5
由 2 1 y2 0 , 5 9 x 2 y 2 , 得 x 2 17
3 8 1 y 0 17
x y x 1
5 3 5 3 3 3 17
1 y1 0 1 2 3 x1 y1 x1 172
11
2 1 y 2 1 , 5 9 x 2 y2 , 得 x 2 17
3 8 1 y 0 175 x 3 y3 x 3 178
5 3
1 y1 0 1 2 3 x1 y1 x1 173
9
2 1 y 2 0 , 5 9 x 2 y2 , 得 x 2 17
3 8 1 y 1 17
x y x 5
5 3 5 3 3 3 17
174 2
17
3
4 2 3
1
5 17
1
所以 A 17 17 17 17 5 11 9
11 9
1 8 5 1 8 5
17 17 17
26
§3.6 迭代法
本节内容 解大型稀疏
§3.6.1 简单迭代法 线性方程组
§3.6.2 雅可比(Jacobi)迭代法
§3.6.3 高斯-塞德尔(Gauss-Seidel)迭代法
§3.6.4 逐次超松弛(SOR)迭代法
例子
27
§3.6.1 简单迭代法
简单迭代法
1. 迭代法建立
考虑 Ax b
Ax b x Bx f (矩阵B不唯一 )
x ( k 1) Bx ( k ) f ( k 0,1, ) 式1
对应写出 (0)
取定初始向量 x
产生向量序列 x (1) , x ( 2 ) , , x ( k ) , x ( k 1) ,
若收敛,记 lim x ( k ) x *
k
则于(式1)两端取极限有:
x* Bx * f ,
28
§3.6.1 简单迭代法
上式说明:
x * 是解向量 x,从而当 k充分大时
x ( k ) 解向量 x
式 1 叫简单迭代法, B 叫迭代矩阵。
一阶定常迭代法
注意:迭代阵 B 不唯一,影响收敛性。
29
§3.6.2 雅可比 (Jacobi) 迭代法
雅可比 (Jacobi) 迭代法
30
§3.6.2 雅可比 (Jacobi) 迭代法
作等价变换
1
x1 a b1 0 x1 a12 x 2 a1n x n
11
1
x2 b2 a21 x1 0 x2 a2 n xn
a 22 式3
1
x n a bn a n1 x1 a n 2 x 2 0 x n
nn
31
§3.6.2 雅可比 (Jacobi) 迭代法
于是有迭代公式
( k 1) 1 (k ) (k ) (k )
x
1 [ b1 0 x 1 a x
12 2 .......... a 1n n ]
x
a11
( k 1) 1 (k ) (k ) (k )
x
2 [ b 2 a x
21 1 0 x 2 .......... a 2n n ]
x
a 22 式4
( k 1) 1 (k ) (k ) (k )
x
n [ b n a n1 1x a n2 2x .......... 0 x n ]
a nn
( k 0,1,2,)
— — — — — — — —Jacobi迭代法
32
§3.6.2 雅可比 (Jacobi) 迭代法
i 1 n
1
( k 1)
xi (bi a ij x j
(k )
a ij
(k )
x j ),
a ii j 1 j i 1
i 1,2, n,
k 0,1,2,
33
§3.6.2 雅可比 (Jacobi) 迭代法
矩阵形式为:
a 12 a 1n
x ( k 1)
0 x k b1
1 a 11 a 11 1 a11
( k 1) a 21 a 2n k b2
x2 0 x2 a
a 22 a 22 22
( k 1 ) a n1 a n2 k bn
x
n a
0 x
2 a nn
nn ann
简记为 x ( k 1) BJ x ( k ) f
34
§3.6.2 雅可比 (Jacobi) 迭代法
迭代结束条件:
35
§3.6.3 高斯 - 塞德尔 (Gauss-Seidel) 迭代
法
高斯 - 塞德尔 (Gauss-Seidel) 迭代法
迭代方法
( k 1)
x
1
1
a11
b1
0 x1
(k )
a x
12 2
(k )
a x
1n n
(k )
( k 1)
x
2
a
1
b 2
a x
21 1
( k 1)
0 x (k )
2 a x
2n n
(k )
式7
22
( k 1)
x
n
a
1
b n
a x
n1 1
( k 1)
a n2 2 x ( k 1)
0 x (k )
n
nn
36
§3.6.3 高斯 - 塞德尔 (Gauss-Seidel) 迭代
法
i 1 n
1
( k 1)
xi (bi a ij x j
( k 1)
a ij
(k )
x j ),
a ii j 1 j i 1
i 1,2, n,
k 0,1,2,
37
§3.6.4 逐次超松弛 (SOR) 迭代法
逐次超松弛 (SOR) 迭代法
1 i 1 n
x ( k 1)
i (1 ) x i( k ) bi a ij x (jk 1) a ij x (k )
j
a ii j 1 j i 1
( i 1,2, , n)
(式8)
— 松弛因子,
1 即Seidel 方法 (式7 )
0 1为低松弛方法
0 < ω < 2 时,迭代收敛
1 2为超松弛方法
(式8)一种加权平均。
38
§3.6 迭代法
例子
例 1
用J法和 G S法求解线性方程组
10 x1 3 x 2 x 3 14
2 x1 10 x 2 3 x 3 5
x 3 x 10 x 14
1 2 3
方程组的精确解为 x* (1,1,1)T 。
39
§3.6 迭代法
解: J迭代法计算公式为
x1( k 1) 103 x 2( k ) 101 x 3( k ) 75
( k 1) 1 ( k ) 3 ( k ) 1
x2 5 x1 10 x 3 2
( k 1) (k ) (k )
x 3 10 x1 10 x 2 75
1 3
40
计算结果列表如下
§3.6 迭代法 :
k x1(k) x2(k) x3(k) ‖x(k)-x*‖
0 0 0 0 1
1 1.4 0.5 1.4 0.5
2 1.11 1.20 1.11 0.2
3 0.929 1.055 0.929 0.071
4 0.9906 0.9645 0.9906 0.0355
5 1.01159 0.9953 1.01159 0.01159
6 1.000251 1.005795 1.000251 0.005795
7 0.9982364 1.0001255 0.9982364 0.0017636
可见,迭代序列逐次收敛于方程组的解,而且迭代
7 次得到精确到小数点后两位的近似解。
41
§3.6 迭代法
G-S 迭代法的计算公式为 :
42
§3.6 迭代法
同样取初始向量 x(0)=(0,0,0)T ,计算结果为:
k x1(k) x2(k) x3(k) ‖x(k)-x*‖
0 0 0 0 1
1 1.4 0.78 1.026 0.4
2 1.0634 1.02048 0.987516 0.0634
3 0.9951044 0.99527568 1.00190686 0.0048956
方程组的精确解是 x*=(2,1,-1)T 。
取 x(0)=(0,0,0)T , =1.46 。
44
§3.6 迭代法
取 x(0)=(0,0,0) T
, =1.46, 计算结果如下 :
k x1(k) x2(k) x3(k)
0 0 0 0
1 3.65 0.8845882 -0.2021098
2 2.32166910 0.4230939 -0.22243214
3 2.5661399 0.6948261 -0.4952594
… …… …… ……
20 1.9999987 1.0000013 -1.0000034
从结果可见,迭代 20 次时已获得精确到小
数点后五位的近似解。如果取 =1.25 ,则需要迭
代 56 次才能得到具有同样精度的近似解;如果取
=1 ,则需迭代 110 次以上。
45
本章小结
高斯消去法
顺序高斯消去法
列主元高斯消去法 全主元高斯消去法
高斯 - 约当消去法
矩阵三角分解法
Doolittle 分解法 Crout 分解法
追赶法
46
作业
9 (杜里特尔法)
10 (杜里特尔法)
24 (写出迭代方程即可)
47