BỘ MÔN TOÁN ỨNG DỤNG - ĐHBK ---PHƯƠNG PHÁP TÍNH – BG SINH VIÊN CHƯƠNG 2 HỆ PHƯƠNG TRÌNH TUYẾN TÍNH Ax = b TS.. NGUYỄN QUỐC LÂN 2/2006 SinhVienZone.com https://fb.com/sinhvienzonevn Sinh
Trang 1BỘ MÔN TOÁN ỨNG DỤNG - ĐHBK
-PHƯƠNG PHÁP TÍNH – BG SINH VIÊN
CHƯƠNG 2 HỆ PHƯƠNG TRÌNH TUYẾN TÍNH
Ax = b
TS NGUYỄN QUỐC LÂN (2/2006)
SinhVienZone.com https://fb.com/sinhvienzonevn
SinhVienZone.Com
Trang 2NỘI DUNG
-
1- PHƯƠNG PHÁP KHỬ GAUSS (PHẦN TỬ TRỤ) 2- PHÂN TÍCH NHÂN TỬ A = LU
1- LẶP JACOBI
2- LẶP GAUSS - SEIDEL
C- SỐ ĐIỀU KIỆN – HỆ ĐIỀU KIỆN XẤU
SinhVienZone.Com
Trang 3TỔNG QUAN
-
-Hệ n phương trình bậc 1 (tuyến tính), n ẩn Dạng Ax = b:
Hàng i: h i = [a i1 a i2 … a in ] T Biến đổi sơ cấp trên hàng h i
h i + kh j : Nhân h j với k rồi cộng xuống h i (chỉ h i thay đổi)
,
2 1
2 22
21
1 12
n
n n
a a
a
a a
a
a a
x
x x
a
a a
a a
11
Giải lùi
SinhVienZone.com https://fb.com/sinhvienzonevn
SinhVienZone.Com
Trang 4PHƯƠNG PHÁP KHỬ GAUSS
8 4
5 14
7 6
1 3
2 2
3 2
1
3 2
1
3 2
1
x x
x
x x
x
x x
30 14 3
8 4
7 6
2
3 2
30 14 3
8 4
7 6
2 2
1 2
1 3
a
a
: quát Tổng
SinhVienZone.Com
Trang 5GIẢI LÙI & PHẦN TỬ TRỤ
24 5 3
4 5 3
0 0
1 0
2 2
Điều kiện: Khử cột 1: a 11 (1) 0 & Khử cột 2: a 22 (2) 0 & Giải lùi: a 33 (3) 0 Phần tử trụ (pivot) a kk 0
Giải lùi với hệ tam giác trên thu được:
3 2
1
3 1
5 2
1 4
4
3 2
1
3 2
3
x x
x
x x
2 5
1 3
2
2
3
3 2
3 2
1
x
x x
x x
2
x
4 1
Trang 6KHỬ GAUSS VỚI LỆNH MAPLE
3 2
2
8 2
3 2
1
4 3
2 1
4 3
2 1
x x
x
x x
x x
x x
x x
> A := matrix(2,3,[2, 3, 4, 1, 2, 3]); # Nhập ma trận
> m21 := A[2,1]/A[1,1]; # Tính hệ số khử
> A := addrow(A,1,2,–m21) ; # Cộng hàng h 2 h 2 – m 21 h 1
> A := swaprow(A,1,2) ; # Nếu cần thiết, đổi hàng h 2 h 1
> x := backsup(A) ; # Hệ đã ở dạng tam giác trên: Giải lùi
> AA := gausselim(A); # Lệnh gộp khử Gauss toàn ma trận
> with(linalg); # Khởi động gói lệnh Đại số tuyến tính
SinhVienZone.Com
Trang 7KHỬ GAUSS VỚI MA TRẬN “LẺ”: PIVOT ĐƠN VỊ
168 0
152 0
264 1
08 2
3 1 0 0
7 0 0
0
08 2 7
0 0
3 1 08
2 7
0
0 3
1 08
2
b
A
VD: Giải hệ với phép khử
Gauss, làm tròn 3 chữ số lẻ)
2 7
0
168 0 3
1 08
2 7
0
152 0 3
1 08
2 7
0
608 0 3
1 08
2
4 3
3 3
2
3 2
1
2 1
x x
x x
x
x x
x
x x
593 0
636 0
006 1
y
SinhVienZone.com https://fb.com/sinhvienzonevn
SinhVienZone.Com
Trang 8THỰC TẾ TÍNH TOÁN: VẤN ĐỀ LÀM TRÒN SỐ
-
-Quy tắc làm tròn trên máy tính: Làm tròn chữ số có nghĩa
35 , 12 10
235 , 1 10
234567 ,
1 34567
Biến đổi cột một: (E 2 ) (E 2 ) – m 21 (E 1 )
??? :
10
001 1 104400
104300
17 59 14
59 003
x x
6 291
.
5
) (E 17 59 14
59 003
.
0
2 2
1
1 2
1
x x
x
VD: Giải hệ trên máy tính với phép làm tròn 4 chữ có nghĩa
SinhVienZone.Com
Trang 9PHÂN TÍCH NHÂN TỬ (MATRIX FACTORIZATIONS)
0
*
* 0
0
*
*
* 0
*
*
0 0
1
*
0 0
0 1
y Ux
Trang 100 0
1 1
0 0
1 1
2 0
1 2
7 3
1 3 8
3
0 1 5 2
0 0
1 1
0 0
0 1
12 5
5 9
5 0
4 6
0 1
5 3
2 2
7 3
A
Sử dụng phân tích LU trên giải hệ Ax = b = [–9 5 7 11] T
Giải Ux = y tìm x
SinhVienZone.Com
Trang 11PHÂN TÍCH NHÂN TỬ A = LU
-
-Quan sát: Ma trận khử L và ma trận kết quả U Xét tích L.U
Kết quả: Nếu quá trình khử Gauss diễn ra bình thường (không đổi hàng), ma trận A của hệ Ax = b phân tích được thành tích LU: A = LU với
L (lower): ma trận tam giác dưới, đường chéo chính bằng
1, chứa các hệ số khử ở vị trí khử
U (upper): ma trận tam giác trên, cũng là ma trận kết quả nhận được sau quá trình khử Gauss
0
5 1 0
3 2 2
1 4 2
0 1 3
0 0
1
SinhVienZone.com https://fb.com/sinhvienzonevn
SinhVienZone.Com
Trang 12GIẢI THUẬT TÌM LU (CROUT – DOOLITLE)
-
30 8 4
14 7 6
3 2
32 31 21
m m m
0 1 3
0 0
i
k
kj ik ij
jj
u l
Tự xem SGK/ 35
Phân tích LU với đường chéo chính L bằng 1 Khử Gauss (không đổi hàng) Các hệ số khử tạo L, ma trận kết quả: U
SinhVienZone.Com
Trang 13MINH HOẠ GIẢI THUẬT DOOLITLE (ĐCHÉO L = 1)
14 7 6
3 2
0 ,
1
0 1
0 0
1
U L
31 33
Trang 14PHÂN TÍCH CHOLESKY
-
-Tương tự phân tích LU nhưng gọn hơn “phân nửa”!
Ma trận vuông A (n hàng, n cột) : A = [ a ij ] xác định dương
T n
T
x x
3 2 2
1
2 3
2 2
2 1
3 3
0
2 5
1
0 1
1
SinhVienZone.Com
Trang 15GIẢI THUẬT CHOLESKY
-
-Định lý: Ma trận A đối xứng xác định dương Tồn tại
ma trận tam giác dưới B thoả mãn : A = BB T
2
i
k
ik ii
k
ik jk ji
ii
b b
Ax = b (BB T )x = b B T x = y & By = b: 2 hệ (như LU)
A k0 xác định dương (chỉ đối xứng): A = BB T có thể chứa số phức 2 hệ B T x = y & By = b: phức Nhưng nghiệm x: thực!
SinhVienZone.com https://fb.com/sinhvienzonevn
SinhVienZone.Com
Trang 16MINH HOẠ GIẢI THUẬT CHOLESKY
0
2 5
1
0 1
b
a
b
2 21 22
22
21 31 32
32
b
b b
a
2 2
b b
a
Trang 17TỔNG QUAN PHƯƠNG PHÁP LẶP
y x
q y
x
x x
: )
( )
(
) ( 0
)
(
Hệ Ax = b x = Tx + c = (x), T: ma trận, c: vectơ Đkiện:
(x) – (y) qx – y Dãy lặp: x (n+1) = Tx (n) + c
Chuẩn vectơ, ma trận: x = [x 1 , x 2 … x n ] T R n , A = [a ij ]
x x
i
a A
1 1
j
a A
1 1
1 max
SinhVienZone.com https://fb.com/sinhvienzonevn
SinhVienZone.Com
Trang 18VÍ DỤ
-
- Tính các chuẩn vectơ và ma trận
Tch chuẩn vectơ, chuẩn ma trận: Chuẩn tích tích chuẩn
8 6
3 0
,
2 5
4 7
1 0
2 1
x x
4 3
1 4
3 2
1 3
2
3 2
1
3 2
1
3 2
1
x x
x
x x
x
x x
x
3 6
x x
1
1
2
x
x x
5
3 4
2
2 3
1
A
A A
SinhVienZone.Com
Trang 19LẶP JACOBI
-
-Với vectơ x (0) = [0, 0, 0] T , tìm vectơ
nghiệm xấp xỉ x (k) của phép lặp
Jacobi với hệ sau Dừng: x (k)
2
9 10
3
5 7 3
10
3 2
1
3 2
1
3 2
1
x x
x
x x
x
x x
0 25
0 125
0 8
5 2
8
2
8 1
9 0 1
0 3
0 10
9
10
1
10 3
75 0 1
0 3
0 10
5 7
10
1
10 3
2 1
2 1
3
3 1
3 1
2
3 2
3 2
1
x x
x x
x
x x
x x
x
x x
x x
x
SinhVienZone.com https://fb.com/sinhvienzonevn
SinhVienZone.Com
Trang 20CÔNG THỨC LẶP JACOBI
0
9 0
75 0 ,
1 10
4 8
3 , 10
4 max
,
0 8
2 8
1
10
1 0
10
3
10
1 10
3 0
c T
0 25
0 125
0
9 0 1
0 3
0
75 0 1
0 3
0
) ( 2
) ( 1
) 1 ( 3
) ( 3
) ( 1
) 1 ( 2
) ( 3
) ( 2
) 1 ( 1
k k
k
k k
k
k k
k
x x
x
x x
x
x x
x
75 0 9 0
3125
0 25
0 125
0
9 0 1
0 3
0
75 0 1
0 3
0
) 0 ( 2
) 0 ( 1
) 1 ( 3
) 0 ( 3
) 0 ( 1
) 1 ( 2
) 0 ( 3
) 0 ( 2
) 1 ( 1
x x
x
x x
x
x x
x
SinhVienZone.Com
Trang 21LẶP JACOBI KHÔNG BIẾN ĐỔI MA TRẬN A
8
9 3
10
5 7 3
10
2 1
3
3 1
2
3 2
1 /
x x
x
x x
x
x x
x
chéo Đ chính
8
9 3
10
5 7 3
10
) ( 2
) ( 1
) 1 ( 3
) ( 3
) ( 1
) 1 ( 2
) ( 3
) ( 2
) 1 ( 1
k k
k
k k
k
k k
k
x x
x
x x
x
x x
( x (k+1) ) ; Chuyển số hạng còn lại sang vế phải ( x (k) )
2
9 10
3
5 7 3
10
3 2
1
3 2
1
3 2
1
x x
x
x x
x
x x
2
9 10
3
5 7 3
10
) 1 ( 3
) ( 2
) ( 1
) ( 3
) 1 ( 2
) ( 1
) ( 3
) ( 2
) 1 ( 1
k k
k
k k
k
k k
k
x x
x
x x
x
x x
ngoài đường chéo chính Xem x (k+1) là ẩn Giảix (k+1)
SinhVienZone.com https://fb.com/sinhvienzonevn
SinhVienZone.Com
Trang 22TÍNH TOÁN & KẾT QUẢ LẶP JACOBI
10
9 3
10
5 7 3
) ( 2
) ( 1 )
1
(
3
) ( 3
) ( 1 )
1
(
2
) ( 3
) ( 2 )
1
(
1
k k
k
k k
k
k k
k
x
x x
x
x x
x
x x
2
9 10
3
5 7 3
10
:
3 2
1
3 2
1
3 2
1
x x
x
x x
x
x x
8
9 3
10
5 7 3
10
:
) ( 2
) ( 1
) 1 ( 3
) ( 3
) ( 1
) 1 ( 2
) ( 3
) ( 2
) 1 ( 1
k k
k
k k
k
k k
k
x x
x
x x
x
x x
x
Jacobi Lặp
Ưu điểm Lặp Jacobi: Giải các hệ “thưa” (chứa rất nhiều số 0)
M/trận đ/c trội nghiêm ngặt: a n a i
Trang 23LẶP GAUSS – SEIDEL
2
9 10
3
5 7 3
10
:
3 2
1
3 2
1
3 2
1
x x
x
x x
x
x x
x
Hệ
Dùng x (k) để tính giá trị của x (k+1)
x 1 (mới): dùng x 2 (cũ), x 3 (cũ)
x 2 (mới): dùng x 1 (mới), x 3 (cũ)
x 3 (mới): dùng x 1 (mới), x 2 (mới)
10
9 3
10
5 7 3
) ( 2
) ( 1 )
1 ( 3
) ( 3
) ( 1 )
1 ( 2
) ( 3
) ( 2 )
1 ( 1
k k
k
k k
k
k k
k
x
x x
x
x x
x
x x
Lặp Jacobi
10
9 3
10
5 7 3
) 1 ( 2
) 1 ( 1 )
1 ( 3
) ( 3
) 1 ( 1 )
1 ( 2
) ( 3
) ( 2 )
1 ( 1
k k
k
k k
k
k k
k
x
x x
x
x x
x
x x
Gauss
Seidel
SinhVienZone.com https://fb.com/sinhvienzonevn
SinhVienZone.Com
Trang 24LẶP GAUSS – SEIDEL: SƠ ĐỒ TÁCH MA TRẬN
2
9 10
3
5 7 3
10
) 1 ( 3
) 1 ( 2
) 1 ( 1
) ( 3
) 1 ( 2
) 1 ( 1
) ( 3
) ( 2
) 1 ( 1
k k
k
k k
k
k k
k
x x
x
x x
x
x x
2
9 10
3
5 7 3
10
3 2
1
3 2
1
3 2
1
x x
x
x x
x
x x
Trang 25LẶP GAUSS – SEIDEL: VÍ DỤ TÁCH MA TRẬN
-
-Xét ví dụ lặp Gauss – Seidel, x (0) = [0, 0, 0] T Công thức lặp:
Phép lặp Thay hệ Ax = b bằng giải liên tiếp nhiều hệ
k
k k
k
k k
k
k k
k
b
x x
x
x x
x
x x
2
9 10
3
5 7 3
10
) 1 ( 3
) 1 ( 2
) 1 ( 1
) ( 3
) 1 ( 2
) 1 ( 1
) ( 3
) ( 2
) 1 ( 1
x
2 b
1 0
b x
SinhVienZone.com https://fb.com/sinhvienzonevn
SinhVienZone.Com
Trang 26TỔNG KẾT LẶP JACOBI & GAUSS – SEIDEL
2
9 10
3
5 7 3
10
3 2
1
3 2
1
3 2
1
x x
x
x x
x
x x
8
9 3
10
5 7 3
10
) ( )
( )
1 (
) ( 3
) ( 1
) 1 (
2
) ( 3
) ( 2
) 1 (
1
k k
k
k k
k
k k
k
x x
x
x x
x
x x
8
9 3
10
5 7 3
10
) 1 ( )
1 ( )
1 (
) ( 3
) 1 ( 1
) 1 ( 2
) ( 3
) ( 2
) 1 ( 1
k k
k
k k
k
k k
k
x x
x
x x
x
x x
8
9 3
10
5 7 3
10
2 1
3
3 1
2
3 2
1
x x
x
x x
x
x x
x
SinhVienZone.Com
Trang 27HEÄ PHÖÔNG TRÌNH BÒ NHIEÃU
3
2
2 2
y x
4
2
2 2
y x
y
x
Heä “gaàn” nhau, nghieäm
“xa” nhau! Do detA 0:
? det
.
3
2 x y
2 1
4
2 x y
SinhVienZone.com https://fb.com/sinhvienzonevn
SinhVienZone.Com
Trang 28VÍ DUÏ WILSON: Ax = b, detA = 1
,
10 9
5 7
9 10 6
8
5 6
5 7
7 8
7 10
1 33
9 22
1 32
9 98 5 8
5 6
04 5 08
7
2 7 1 8 7
10
:
'
A A
b x
x A
Trang 29SOÁ ÑIEÀU KIEÄN CUÛA HEÄ Ax = b
A x
A x
A A
A A
A x
Heä ñieàu kieän xaáu (ill – conditionned): (A) >> 1
SinhVienZone.com https://fb.com/sinhvienzonevn
SinhVienZone.Com
Trang 305 7
9 10 6
8
5 6 5
7
7 8 7
10 6
3 5
17 10
10 17
68 41
6 10
41 25
Trang 31PHƯƠNG PHÁP TÌM MA TRẬN NGƯỢC
-
2 1
1
c c
t z
y x
Vẫn trong chế độ giải hệ phương trình, giải tiếp hệ
A.c 2 = e 2 = [0 1] T (vectơ đơn vị thứ nhì) Cột 2 của A -1
Trường hợp ma trận cấp 3: Giải 3 hệ Ac 1 = e 1 , Ac 2 = e 2 ,
Ac 3 = e 3 với e 1 , e 2 , e 3 lần lượt là 3 vectơ đơn vị Tìm được
3 vectơ nghiệm c 1 , c 2 , c 3 : 3 cột của ma trận ngược A –1 cần tìm
SinhVienZone.com https://fb.com/sinhvienzonevn
SinhVienZone.Com