You are on page 1of 7

Nhóm 5 Giải gần đúng hệ phương trình tuyến tính

Bài tập 3.1

 
1 1
2 3
Tìm số điều kiện K(A) ứng với chuẩn ∥·∥∞ của ma trận A = 
1
.
1
3 4
 
1 1
2 3 1
Bài giải. Với ma trận A =  ̸ 0, nên A là ma trận
 1 1  , ta tính được det(A) = 72 =

3 4
vuông không suy biến. Khi đó ma trận nghịch đảo của A là:
 
18 −24
A−1 =  .
−24 36

Từ đó, ta có:
2  
X 5 7 5
∥A∥∞ = max |aij | = max , = ,
1≤i≤2
j=1
6 12 6
2
X
A−1 ∞
= max |aij | = max {42, 60} = 60.
1≤i≤2
j=1

Vậy số điều kiện K(A) ứng với chuẩn ∥.∥∞ của ma trận A là:

5
K(A) = ∥A∥∞ · A−1 ∞
= · 60 = 50.
6

3
Nhóm 5 Giải gần đúng hệ phương trình tuyến tính

Bài tập 3.2

Xét hệ phương trình tuyến tính Ax = b, trong đó:


   
4 1 −1 5
A = −1 3 1 , b = −4 .
  
2 2 5 1

(a) Giải tìm nghiệm chính xác x của hệ trên bằng phương pháp khử Gauss.

(b) Với nghiệm xấp xỉ ban đầu x(0) = [0, 0, 0]T , hãy tìm nghiệm xấp xỉ bằng phương
pháp lặp Jacobi sau 3 bước lặp. Tính sai số x − x(3) ∞ .

(c) Làm lại câu (b) bằng phương pháp lặp Gauss-Seidel.

Bài giải.

4x1 + x2 − x3 = 5

(a) Hệ phương trình tuyến tính −x1 + 3x2 + x3 = −4 có ma trận mở rộng là

2x1 + 2x2 + 5x3 = 1

 
4 1 −1 5
A =  −1 3 1 −4  .
2 2 5 1

Ta biến đổi ma trận mở rộng trên về ma trận bậc thang bằng các phép biến đổi sơ
cấp như sau:
   
4 1 −1 5 1
d2 =d2 + 4 d1
4 1 −1 5
13 3
 −1 3 1 −4  −−−−−− →  0
4 4
− 11
4

d3 =d3 − 21 d1 3 11 3
2 2 5 1 0 2 2
−2
    .
6
d3 =d3 − 13 d2
4 1 −1 5 4 1 −1 5
13 3 d2 =4d2
−−−−−−−→  0 4 4
− 11
4
 −− −−−→  0 13 3 −11 
67 3 d3 =13d3
0 0 13
− 13 0 0 67 −3

Thực hiện phép thế ngược, ta được nghiệm của hệ:


3
x3 = −
,
67
−11 − 3x3 56
x2 = =− ,
13 67
5 − x2 + x3 97
x1 = = .
4 67
 T
97 56 3
Vậy nghiệm chính xác của hệ phương trình là x = ,− ,− .
67 67 67

4
Nhóm 5 Giải gần đúng hệ phương trình tuyến tính

(b) Giải gần đúng hệ phương trình bằng phương pháp lặp Jacobi.
Với x = [x1 , x2 , x3 ]T , ta viết lại hệ phương trình như sau

4x1 + x2 − x3 = 5

−x1 + 3x2 + x3 = −4

2x1 + 2x2 + 5x3 = 1

1 1 5


 x1 = − x2 + x3 +

 4 4 4
1 1 4

⇔ x2 = x 1 − x3 −
 3 3 3
x 3 = − 2 x 1 − 2 x 2 + 1 .



5 5 5
Phương pháp lặp Jacobi áp dụng cho hệ phương trình trên được viết dưới dạng ma
trận x(k+1) = T x(k) + c, k ∈ N, trong đó
1 1 5
   
0 −

 4 4  
 4 
 
 1 1  4
T = 0 −  và c = 
− 3  .

 3 3   
 2 2   1 
− − 0
5 5 5
Ta có x(0) = [0, 0, 0]T . Thuật toán dừng khi k = 3. Kết quả của thuật toán được ghi
lại dưới bảng sau.
k x(k) = T x(k−1) + c
1 [5/4, −4/3, 1/5]T
2 [49/30, −59/60, 7/30]T
3 [373/240, −13/15, −3/50]T
Vậy ta được nghiệm xấp xỉ của hệ phương trình là
x(3) = [373/240, −13/15, −3/50]T .
Tính sai số x − x(3) ∞ .
Cách 1: Ta tính sai số bằng cách dùng nghiệm chính xác x như sau:
   
97/67 373/240
||x − x(3) ||∞ =  −56/67  −  −13/15  = 0.1064054726.
−3/67 −3/50 ∞

Cách 2: Ta tính sai số bằng cách không dùng nghiệm chính xác x như sau: Với ma
trận T xác định như trên,ta có:
3  
X 1 2 4 4
∥T ∥∞ = max (|aij |) = max ; ; = .
1≤i≤3
j=1
2 3 5 5

Khi đó, sai số tuyệt đối của x(3) được ước lượng bởi bất đẳng thức sau
∥T ∥3∞ 0.83 64 4 7
||x(3) − x||∞ ≤ · ||x(1) − x(0) ||∞ = · ∥c∥∞ = · < .
1 − ∥T ∥∞ 1 − 0.8 25 3 2

5
Nhóm 5 Giải gần đúng hệ phương trình tuyến tính

(c) Giải gần đúng hệ phương trình bằng phương pháp lặp Gauss - Seidel.
Phương pháp lặp Gauss - Seidel được viết được viết dạng ma trận như sau:

x(k+1) = Tg x(k) + cg , k ∈ N,

trong đó Tg và cg được xác định bởi:


 −1    
4 0 0 0 −1 1 0 −1/4 1/4
Tg =  −1 3 0   0 0 −1  =  0 −1/12 −1/4 
2 2 5 0 0 0 0 2/15 0

và  −1    
4 0 0 5 5/4
cg =  −1 3 0   −4  =  −11/12  .
2 2 5 1 1/15
Kết quả thuật toán sau 3 bước lặp được ghi lại trong bảng dưới đây:

k x(k+1) = Tg x(k) + cg
 T
5 11 1
1 −
4 12 15
 T
359 617 1
2 − −
240 720 18
 T
4177 7183 257
3 − −
2880 8640 5400

Vậy ta tìm được nghiệm xấp xỉ


 T
(3) 4177 7183 257
x = − − .
2880 8640 5400

Tính sai số x − x(3) ∞ .


Cách 1: Ta tính sai số bằng cách dùng nghiệm chính xác x như sau:
   
97/67 4177/2880
||x − x(3) ||∞ =  −56/67  −  −7183/8640  = 0.004455154782.
−3/67 −257/5400 ∞

Cách 2: Ta tính sai số bằng cách không dùng nghiệm chính xác x như sau: Với ma
trận Tg xác định như trên, ta có:

1
Tg ∞
= .
2

6
Nhóm 5 Giải gần đúng hệ phương trình tuyến tính

Ta có đánh giá sai số:


3
(3)
Tg ∞
x−x ∞
≤ x(1) − x(0) ∞
1 − Tg ∞
 3
1
T  2
1 5 5

2 5 11 1
= · − = · = .
1 4 12 15 2 4 16
1− ∞
2

7
Nhóm 5 Giải gần đúng hệ phương trình tuyến tính

Bài tập 3.3

Xét hệ phương trình     


1 2 x1 3
=
1.001 2 x2 3.001
có nghiệm chính xác là [1, 1]T . Ta cũng xét một hệ phương trình "sai khác chút ít"
với hệ trên như sau:     
1 2 x1 3
= .
0.999 2 x2 3.001
Bằng phương pháp lặp bất kỳ, hãy tìm nghiệm xấp xỉ của hệ này với độ chính xác
1
· 10−4 . Nhận xét gì về kết quả tìm được?
2
    
1 2 x1 3
Bài giải. Xét hệ phương trình = có ma trận hệ số mở rộng là
0.999 2 x2 3.001
 
1 2 3
.
0.999 2 3.001

Ta thực hiện phép biến đổi dòng d1 = −d2 + d1 , ma trận mở rộng biến đổi thành
 
0.001 0 −0.001
.
0.999 2 3.001

Do đó, hệ phương trình ban đầu tương đương với hệ


    
0.001 0 x1 −0.001
= .
0.999 2 x2 3.001
 
0.001 0
Hệ này có ma trận hệ số A = là ma trận chéo trội và hệ được viết dưới dạng
0.999 2
x(k+1) = T x(k) + c, trong đó
   
0 0 −1
T = và c = .
−0.4995 0 1.5005

Ta áp dụng phương pháp lặp Jacobi cho hệ phương trình trên với x(0) = [0, 0]T và
||T ||∞ = 0.4995 < 1. Điều kiện dừng của thuật toán là

||T ||∞ 1
· ||x(k) − x(k−1) ||∞ ≤ · 10−4 .
1 − ||T ||∞ 2

8
Nhóm 5 Giải gần đúng hệ phương trình tuyến tính

Kết quả của thuật toán được ghi lại trong bảng sau.
0.5 1
k x(k) = T x(k−1) + c · ||x(k) − x(k−1) ||∞ − · 10−4
1 − 0.5 2
1 [−1, 1.5005]T +
2 [−1, 2]T +
3 [−1, 2]T −

Thuật toán dừng khi k = 3, ta được nghiệm gần đúng của hệ là x(3) = [−1, 2]T .
Nhận xét.
(3) T
1.   x
Trong bài toán này, =
 [−1, 2] là nghiệm chính xác của hệ phương trình
1 2 x1 3
= .
0.999 2 x2 3.001

2. Mặc dù chỉ có sự thay đổi nhỏ về hệ số của hai phương trình (chênh lệch 0.002) ,
nhưng nghiệm thu được ở hai phương trình lại có sự sai khác lớn
   
(3) 1 −1
||x − x ||∞ = − = 2.
1 2 ∞

You might also like