Professional Documents
Culture Documents
Chuong 3. TGD - HPT
Chuong 3. TGD - HPT
12/16/2021 1
Các phương pháp khử điển hình(trực tiếp-nghiệm đúng)
• Phương pháp Cramer
• Phương pháp khử Gauss
• Phương pháp khử Gauss-Jordan
• Phương pháp nhân tử LU
Các phương pháp lặp điển hình ( Gián tiếp-Nghiệm gần đúng)
• Phương pháp lặp đơn (Jacobi)
• Phương pháp lặp Gauss-Seidel
• Phương pháp giảm dư SOR (successive OverRelaxation)
12/16/2021 2
Phương pháp trực tiếp được dùng khi:
Số phương trình bé
Đa số các hệ số aij khác không
n
B AX=B
X = A^-1 B
12/16/2021 5
Cách xác định ma trận nghịch đảo
Cách 1: Theo định nghĩa
Bước 1: Tính det A
- Nếu det A = 0 => A không có ma trận nghịch đảo.
- Nếu det A # 0 => A tồn tại ma trận nghịch đảo
Bước 2: Tìm ma trận phụ hợp Cij
12/16/2021 6
Hệ phương trình tuyến tính
Bài 2. Giải phương trình bằng phương pháp Crame
1 2 3 x1 6
2 1 1 x 2 2
2
3 1 2
x3 2
-7
12/16/2021 7
Hệ phương trình tuyến tính
Bài 3. Giải phương trình bằng phương pháp Gauss
12/16/2021 8
Hệ phương trình tuyến tính
Bài 3. Giải phương trình bằng phương pháp Gauss
12/16/2021 9
Hệ phương trình tuyến tính
Bài 4. Giải hệ bằng phương pháp khử Gauss
12/16/2021 10
Hệ phương trình tuyến tính
Phương pháp nhân tử LU
Doolittle: lii = 1
Crout: uii = 1
12/16/2021 11
Hệ phương trình tuyến tính
Ví dụ: Giải HPT bằng phương pháp nhân tử LU
3 0.1 0.2 1 0 0 u u u
11 12 13
0.1 7 0.3 l21 1 0 0 u22 u23
0.3 0.2 10 l l 1 0 0 u33
31 32
AX B LUX B
UX Y LY B
LY B
UX Y
12/16/2021 12
Giải hệ bằng phương pháp LU, Gauss và Gauss-Jordan
12/16/2021 13
Giải hệ phương trình sau bằng phương pháp khử Gauss
12/16/2021 14
Giải hệ bằng phương pháp lặp
đơn (Jacobi)
Cách 1
12/16/2021 15
Cách 2: (Tiếp cận hệ phương trình với phương trình lặp khác)
n
Xét phương trình Ax = b hay a x
j 1
ij j bi , i 1, 2,..., n (1)
1 n
(k )
bi aij x j , i 1, 2,..., n
1. Chọn công thức lặp ( k 1)
x x (k )
i i
aii j 1
2. Chọn véc tơ nghiệm ban đầu x(0). Thế x(0) vào (1), ta nhận được véc tơ nghiệm
cải tiến đầu tiên:
1 n
x(1)
i x (0)
i bi aij x (0)
j , i 1, 2,..., n
aii j 1
Công thức lặp Jacobi thuộc dạng giá trị lặp sau phụ thuộc vào giá trị lặp ngay
trước nó:
x ( k 1) x ( k )
12/16/2021 16
Cách 2: (Tiếp cận hệ phương trình với phương trình lặp khác)
j 1
(k )
i 1, 2,...n; k 0,1, 2,....
x ( k 1) x ( k ) Ri
i i
aii
3. Quá trình lặp sẽ kết thúc khi độ lệch giữa hai bước lặp liên tiếp nhỏ
hơn sai số cho trước
xi( k 1) xi( k ) , i 1, 2,..., n
12/16/2021 17
Giải hệ bằng phương pháp lặp Gauss-Seidel
j 1 j i
(k )
i 1, 2,...n; k 0,1, 2, ....n
x ( k 1) x ( k ) Ri
i i
aii
3. Quá trình lặp sẽ kết thúc khi độ lệch giữa hai bước lặp liên tiếp nhỏ
hơn sai số cho trước:
xi( k 1) xi( k ) , i 1, 2,..., n
Công thức lặp Gauss – Seidel thuộc dạng: giá trị lặp sau được tính bởi tất cả các giá
trị lặp trước đó: ( k 1)
xi x1
( k 1) ( k 1) ( k 1) (k )
, x2 (k ) (k )
,..., xi 1 , xi 1 , xi 2 ,..., xn
12/16/2021 18
Phương pháp giảm dư ( SOR)
Có thể coi Phương pháp giảm dư là Phương pháp cải tiến của Phương pháp Gauss
Seidel dùng để tăng tốc độ hội tụ của phương pháp Gauss-Seidel.
Thuật toán
1. Chọn nghiệm ban đầu tùy ý: x (0) xi(0) , i 1, 2,..., n
i i ij j ij j
j 1 j i
i 1, 2,...n; k 0,1, 2,....n
1, 2
(k )
x ( k 1) x ( k ) iR
i i
aii
Chọn tham số giảm trong khoảng (1, 2) để số lần lặp của thuật toán Gauss – Seidel là nhỏ nhất.
Tham số này được tìm ra từ thực nghiệm.
12/16/2021 19
Kiểm tra điều kiện hội tụ
Giải
Cách 1 Đưa hpt về hệ tương đương sau: x = B.x + g
3
5 5
5 5 53 5 5 53 b1 j 0
102 21
0.287115
x x
1 102 2 51 3 68 x 0 j 1
102 51 68 3
11 5
b2 j 0 0.155340
11 5 849 11 5 849
x
2 x1 x3 ,
B 0
,
g j 1 103 103
103 103 1030 103 103 1030 3
11 12
11 12 699
11 12
699
b3 j
104 104
0 0.221154
0
x3 104 x1 104 x2 520
j 1
Thoả mãn
12/16/2021 20
Kiểm tra điều kiện hội tụ
Giải
Cách 1 Đưa hpt về hệ tương đương sau: x = B.x + g
3
5 5
5 5 53 5 5 53 b1 j 0
102 21
0.287115
x x
1 102 2 51 3 68 x 0 j 1
102 51 68 3
11 5
b2 j 0 0.155340
11 5 849 11 5 849
x
2 x1 x3 ,
B 0
,
g j 1 103 103
103 103 1030 103 103 1030 3
11 12
11 12 699
11 12
699
b1 j
104 104
0 0.221154
0
x3 104 x1 104 x2 520
j 1
Thoả mãn
12/16/2021 21
5 5 53 5 5 53
x x x 0
51 68
1 2 3
102 51 68 102
11 5 849 11 5 849
x2 x1 x3 , B 0 , g Phương trình lặp x
m1
Bx g
m
103 103 1030 103 103 1030
11 12 699 11 12 699
x x
3 104 1 104 2 520x 0 Chọn x0 = [0,0,0]^T
104 104 520
Giải Sai số tương đối
Cách 1 Đưa hpt về hệ tương đương sau: x = B.x + g Max{0.0000234, 0.0000231, 0.0000297}= 0.0000297
1 B 0 1 0.287115
m 0 1 2 3 4 5 6 7
x1(m) 0 0.7794118 0.9515570 0.9762315 0.9810198 0.9817943 0.9819319 0.9819553
x2(m) 0 0.8233010 0.9717930 0.9987908 1.0031415 1.0039308 1.0040625 1.0040856
x3(m) 0 1.3442308 1.5216648 1.5570062 1.5627311 1.5637396 1.5639126 1.5639423
Sai số x1 0.7794118 0.1721452 0.0246745 0.0047883 0.0007745 0.0001376 0.0000234
Sai số x2 0.8233010 0.1484921 0.0269977 0.0043507 0.0007893 0.0001317 0.0000231
Sai số x3 1.3442308 0.1774340 0.0353414 0.0057249 0.0010085 0.0001730 0.0000297
12/16/2021 22
(k ) n
R i : bi a ij x (k )
j
j 1
(k )
x R
( k 1)
xi i
( k )
i
aii
(k ) (0)
n
Giải (k ) n (k1) (k ) R1 R1 : b1 a1j x(0) (1)
j 0.795 x 0
0.795
R1 : b1 a1j xj x1 x1
(k )
Cách 2 j 1 1 1.02
Chọn x0 = [0,0,0]^T j 1 a11
(k ) (0)
n
(1) 0.849
(k )
2 2j j
n (0)
R 2R : b a x 0.849 x
2 0
R2 : b2 a2j xj x2 x2
(k ) (k 1) (k ) 2
j 1 1.03
j 1 a 22
(0) n (1) 1.398
(k ) n (k )
R3 : b3 a3j xj 1.398 3 x 0
R3 : b3 a3j x(jk) x3(k1) x3(k ) 3
Bảng kết quả R (0)
1.04
j 1 a33 j1
12/16/2021 23
Giải hệ bằng phương pháp lặp Gauss-Seidel
(k ) i 1 n
Ri : bi aij x j aij x j
( k 1) (k )
j 1 j i
(k )
x( k 1) x( k ) Ri
i i
aii
Giải
Cách 1 Đưa hpt về hệ tương đương sau: x = B.x + g
12/16/2021 25
(0 ) n
Giải hệ bằng phương pháp lặp đơn (Jacobi)
R1 : b1 a1j x j 8 (1)
(0 ) 8
1x 0
Bài 10.
j 1 4
(0 )
n
(1) 9
R2 : b2 a2j x j 9
( 0)
2x 0
j 1 3
(0 ) n (1) 20
Giải R3 : b3 a3j x (0j ) 20 x
3 0
5
Cách 2 j 1
Chọn x0 = [0,0,0]^T
Lặp lại đến khi thoả mãn đk sai số
(k ) n (k1) (k) R1(k)
1 1j j
x1 x1
(k )
1 R : b a x Kết quả
j1 a 11
(k) n (k1) (k) R(k) m 0 1 2 3 4
2 2j j
x2 x2
R
2 : b a x (k ) 2
x1(m) 0 2 1.92000 1.90940 1.90923
j1 a22 x2(m) 0 3 3.19000 3.19440 3.19495
(k ) n R3(k) x3(m) 0 5 5.04000 5.04460 5.04479
R3 : b3 a3j x(jk) (k 1)
x3 x3 (k )
Bài 10.
(0) n
R1 : b1 a1j x j 8
(0)
j 1 x1(1) 0 2
(0) (1)
R2 : b2 a21x1 a22 x2 a33 x3 8.82 x2 0 2.94
(1) (0) (0)
Chọn x0 = [0,0,0]^T
Lặp lại đến khi thoả mãn đk sai số
(k ) 11 n ( k 1) R1( k )
R1 : b1 a1j x j a1j x j x1 x1
( k 1) (k ) (k )
j 1 j 1 a11
( k ) 1 n ( k 1) R2( k ) Bảng kết quả
R2 : b2 a21x1 a2j x j
( k 1)
x2 x2
(k ) (k )
j 1 j 2 a22
(k ) 2 n R3( k ) m 0 1 2 3 4
R3 : b3 a3j x j a3j x(jk )
( k 1) ( k 1)
x3 x3 (k )
x1(m) 0 2.0000 1.92438 1.90924 1.90920
j 1 j 3 a33
x2(m) 0 2.9400 3.19421 3.19495 3.19496
(k ) i 1 n x3(m) 0 5.0388 5.04464 5.04481 5.04481
Ri : bi aijx j aij xj
( k 1) (k )
Sai số x1 2.0000 0.07562 0.01514 0.00004
j 1 j i
Sai số x2 2.9400 0.25421 0.00075 0.00001
(k )
x(k 1) x(k ) Ri Sai số x3 5.0388 0.00584 0.00017 0.00000
i i
aii
12/16/2021 27
Giải hệ bằng phương pháp lặp đơn (Jacobi) Kiểm tra tính hội tụ
Bài 11.
Giải
Cách 1 Đưa hpt về hệ tương đương sau: x = B.x + g
12/16/2021 28
Giải hệ bằng phương pháp lặp đơn (Jacobi) (0) n
R1 : b1 a1j x j 5 (1)
(0 ) 5
x
1 0
Bài 11. j 1 8
( 0 )
n
(1) 4
R2 : b2 a 2j x j 4 x2 0
(0 )
j 1 6
(0) n (1) 5
Giải R3 : b3 a3j x (j 0 ) 5 x
3 0
9
Cách 2 j 1
Chọn x0 = [0,0,0]^T
(k ) n ( k 1) R1( k ) Lặp lại đến khi thoả mãn đk sai số
1 R : b1 a x
1j j
(k )
x1 x1( k )
a11
j 1
( k ) n
( k ) ( k 1) R2( k ) Kết quả
R2 : b2 a2j x j x2 x2
(k )
j 1 a22
(k ) n R3( k )
R3 : b3 a3j x j x3( k 1) x3( k )
(k )
j 1 a33
m 0 1 2 3 4 5 6 7 8
x1(m) 0 0.62500 0.86111 0.94676 0.98023 0.99248 0.99719 0.99894 0.99960
x2(m) 0 0.66667 0.86343 0.95139 0.98097 0.99302 0.99732 0.99900 0.99962
x3(m) 0 0.55556 0.84722 0.93904 0.97788 0.99146 0.99684 0.99879 0.99955
Sai số x1 0.62500 0.23611 0.08565 0.03347 0.01225 0.00471 0.00175 0.00067
Sai số x2 0.66667 0.19676 0.08796 0.02958 0.01205 0.00430 0.00168 0.00062
12/16/2021 Sai số x3 0.55556 0.29167 0.09182 0.03884 0.01358 0.00538 0.00196 0.00075 29
Giải hệ bằng phương pháp lặp Gauss-Seidel)
R1 : b1 a1j x j 5
(0)
j 1 x1(1) 0 0.625
(0) (1)
R2 : b2 a21x1 a22 x2 a33 x3 4.625 x2 0 0.77083
(1) (0) (0)
Chọn x0 = [0,0,0]^T
Lặp lại đến khi thoả mãn đk sai số
(k ) 11 n ( k 1) R1( k )
R1 : b1 a1j x j a1j x j
( k 1) (k ) (k )
1 x x1
j 1 j 1 a11
( k ) 1 n ( k 1) R2( k ) Bảng kết quả
2R : b2 a x
21 1
( k 1)
a2j x(jk ) 2 x x2
(k )
a22
j 1 j 2 Sau 5 bước đạt kết quả gần với pp Jacobi (8 bước)
(k ) 2 n R3( k )
3
R : b3 j 1
a x
3j j
( k 1)
j 3
a3j x(jk )
( k 1)
x3 x3 (k )
a33
(k ) i 1 n m 0 1 2 3 4 5 6 7 8
R i : bi aij x ( k 1)
j aij x (jk )
x1(m) 0 0.62500 0.92795 0.98976 0.99846 0.99977 0.99997 0.99999 1.00000
j 1 j i
x ( k 1) x ( k ) Ri
(k )
x2(m) 0 0.77083 0.96832 0.99520 0.99929 0.99989 0.99998 1.00000 1.00000
i i
aii x3(m) 0 0.88194 0.98143 0.99726 0.99959 0.99994 0.99999 1.00000 1.00000
Sai số x1 0.62500 0.30295 0.06181 0.00870 0.00131 0.00020 0.00003 0.00000
Sai số x2 0.77083 0.19748 0.02688 0.00409 0.00061 0.00009 0.00001 0.00000
12/16/2021 Sai số x3 0.88194 0.09949 0.01583 0.00233 0.00035 0.00005 0.00001 0.00000 30
Giải hệ bằng phương pháp lặp đơn (Jacobi) Kiểm tra tính hội tụ
Bài 12.
Giải
Cách 1 Đưa hpt về hệ tương đương sau: x = B.x + g
12/16/2021 31
Giải hệ bằng phương pháp lặp đơn (Jacobi) (0) n
R1 : b1 a1j x j 5 x1(1) 0
(0) 5
Bài 12.
j 1 5
(0)
n
(1) 1
2R : b2 a x
2j j
(0)
1 x
2 0
5
Giải j 1
(0) n (1) 1
Cách 2 Chọn x0 = [0,0,0]^T R3 : b3 a3j x j 1 x3 0 5
(0)
(k ) n (k 1) ( k ) R1(k ) j 1
R1 : b1 a1j x j x1 x1
(k )
j 1 a11
(k ) n
(k 1) (k ) R2
(k ) Lặp lại đến khi thoả mãn đk sai số
R2 : b2 a2j x j x2 x2
(k )
j 1 a22
(k ) n R3(k )
R3 : b3 a3j x(jk ) x3 x3
( k 1) (k )
Bài 12.
(0) n
R1 : b1 j 5
a1j x (0)
x1(1) 1
j 1
(0) (1)
R2 : b2 a21 x1 a22 x2 a33 x3 0 x2 0
(1) (0) (0)
(0) x (1) 0
R3 : b3 a31 x1 a32 x2 a33 x3 0
(1) (1) (0)
3
Chọn x0 = [0,0,0]^T
Lặp lại đến khi thoả mãn đk sai số
(k ) 11 n ( k 1) R (k )
j 1 j 1 a11
( k ) ( k 1) Bảng kết quả
1 n
R2( k )
2R : b2 a x
21 1
( k 1)
a2j x(jk ) x2 x2
(k )
a22
j 1 j 2 m 0 1 2
(k ) 2 n R3( k ) x1(m) 0 1.00000 1.00000
R3 : b3 a3j x(jk 1) a3j x(jk ) ( k 1)
x3 x3 (k )
x2(m) 0 0.00000 0.00000
j 1 j 3 a33 x3(m) 0 0.00000 0.00000
Sai số x1 1.00000 0.00000
(k ) i 1 n Sai số x2 0.00000 0.00000
Ri : bi aij x j aij x j
( k 1) (k )
Sai số x3 0.00000 0.00000
j 1 j i
(k )
x ( k 1) x ( k ) Ri
i i
aii
12/16/2021 33
Giải hệ bằng phương pháp lặp Jacobi và Gauss-Seidel, SOR)
Bài 13.
Bài 14.
Bài 15.
12/16/2021 34
Giải hệ bằng phương pháp lặp Jacobi và Gauss-Seidel, SOR)
Bài 15.
Gauss-Seidel
m 0 1 2 3 4 5
x1(m) 0 1.2000000 0.8616667 0.8511667 0.8529361 0.8532006
x2(m) 0 -1.1333333 -1.0966667 -1.0835556 -1.0825500 -1.0825587
x3(m) 0 0.5583333 0.6475000 0.6517639 0.6514472 0.6513800
Sai số x1 1.2000000 0.3383333 0.0105000 0.0017694 0.0002644
Sai số x2 1.1333333 0.0366667 0.0131111 0.0010056 0.0000087
Sai số x3 0.5583333 0.0891667 0.0042639 0.0003167 0.0000672
SOR
m 0 1 2 3 4 5
x1(m) 0 1.2120000 0.8560038 0.8506060 0.8530013 0.8532163
x2(m) 0 -1.1426467 -1.0969282 -1.0831333 -1.0824970 -1.0825592
x3(m) 0 0.5597109 0.6497747 0.6519787 0.6514321 0.6513755
Sai số x1 1.2120000 0.3559962 0.0053978 0.0023954 0.0002150
Sai số x2 1.1426467 0.0457184 0.0137949 0.0006363 0.0000622
Sai số x3 0.5597109 0.0900639 0.0022039 0.0005465 0.0000567
12/16/2021 35