You are on page 1of 14

ĐẠI HỌC QUỐC GIA TP.

HCM
TRƯỜNG ĐẠI HỌC BÁCH KHOA
--------------------

BÁO CÁO BÀI TẬP LỚN


MÔN ĐẠI SỐ TUYẾN TÍNH

ĐỀ TÀI 2
CƠ SỞ LÝ THUYẾT VÀ ỨNG DỤNG
PHÂN TÍCH A = LU

GVHD: Nguyễn Xuân Mỹ


Lớp: DT01
Nhóm số: 2

TP. HỒ CHÍ MINH, tháng 05 năm 2023


Trang I
ĐẠI HỌC QUỐC GIA TP.HCM
TRƯỜNG ĐẠI HỌC BÁCH KHOA
--------------------

BÁO CÁO BÀI TẬP LỚN


MÔN ĐẠI SỐ TUYẾN TÍNH

ĐỀ TÀI 2
CƠ SỞ LÝ THUYẾT VÀ ỨNG DỤNG
PHÂN TÍCH A = LU

GVHD Nguyễn Xuân Mỹ


Lớp: DT01
Nhóm số: 2
Danh sách thành viên MSSV
1. Nguyễn Tiến Đạt 2210704
2. Lê Minh Giang 2210821
3. Nguyễn Hương Giang 2210824
4. Từ Ngọc Hân 2113317
5. Phạm Ngọc Bảo Hằng 2210928
6. Nguyễn Minh Hảo 2013092
7. Tô Phước Hào 1913229
8. Mai Huy Hoàng 1913432
9. Phạm Trương Tung Hoành 2211127
10. Nguyễn Xuân Hùng 2211344 Trang 1
MỤC LỤC
Trang
MỤC LỤC _______________________________________________________________________ 2
VỀ ĐỀ TÀI ______________________________________________________________________ 3
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT __________________________________________________ 4
I.1 CÁC KHÁI NIỆM VỀ MA TRẬN.________________________________________________ 4
I.1.1 Ma trận. _________________________________________________________________ 4
I.1.2 Các loại ma trận. __________________________________________________________ 4
I.1.3 Phép nhân hai ma trận. ______________________________________________________ 5
I.1.4 Hệ phương trình tuyến tính. __________________________________________________ 5
I.2 PHÂN TÍCH A = LU. __________________________________________________________ 5
I.2.1 Giới thiệu. _______________________________________________________________ 5
I.2.2 Phân tích A = LU. _________________________________________________________ 5
I.3 PHÂN TÍCH PA = LU. _________________________________________________________ 7
CHƯƠNG 2: CHƯƠNG TRÌNH PHÂN TÍCH A = LU __________________________________ 8
II.1 THUẬT TOÁN CƠ BẢN ______________________________________________________ 8
II.2 CHẠY CHƯƠNG TRÌNH ______________________________________________________ 8
II.3 NHẬN XÉT CHƯƠNG TRÌNH _________________________________________________ 9
CHƯƠNG 3: ỨNG DỤNG CỦA PHÂN TÍCH A = LU _________________________________ 10
III.1 GIẢI PHƯƠNG TRÌNH TUYẾN TÍNH. _________________________________________ 10
III.2 TÌM MA TRẬN NGHỊCH ĐẢO _______________________________________________ 11
III.3 TÍNH ĐỊNH THỨC CỦA MA TRẬN ___________________________________________ 12
TÀI LIỆU THAM KHẢO _________________________________________________________ 13

Trang 2
VỀ ĐỀ TÀI
ĐỀ 2
1/ Nêu cơ sở lý thuyết của phân tích A = LU và phân tích PA = PLU.
2/ Viết chương trình dùng để phân tích A = LU.
3/ Tìm các ứng dụng của phân tích A = LU.

Trang 3
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
I.1 CÁC KHÁI NIỆM VỀ MA TRẬN.
I.1.1 Ma trận.
Trong toán học, ma trận là một mảng chữ nhật – các số, ký hiệu, hoặc biểu thức,
sắp xếp theo hàng và cột – mà mỗi ma trận tuân theo những quy tắc định trước. Từng ô
trong ma trận được gọi là các phần tử hoặc mục. Ví dụ một ma trận có 2 hàng và 2 cột:
1 3
� �
−3 4
I.1.2 Các loại ma trận.
Ma trận tam giác và ma trận đường chéo.
Nếu mọi phần tử của A ở bên dưới đường chéo chính bằng 0, thì A được gọi là
ma trận tam giác trên. Tương tự, nếu mọi phần tử của A ở bên trên đường chéo chính
bằng 0, thì A được gọi là ma trận tam giác dưới. Nếu mọi phần tử nằm bên ngoài đường
chéo chính đều bằng 0, thì A được gọi là ma trận đường chéo.
Ma trận đơn vị.
Ma trận đơn vị In có số chiều n là một ma trận n × n trong đó mọi phần tử trên
đường chéo chính bằng 1 và tất cả những phần tử khác đều bằng 0, ví dụ
1 0 0
�0 1 0�
0 0 1
Ma trận bậc thang.
Ma trận A là ma trận bậc thang nếu thoả mãn hai điều kiện:
+ Các hàng bằng 0 (nếu có) ở dưới cùng của ma trận.
+ Phần tử cơ sở của hàng phía dưới ở bên phải so với phần tử cơ sở của hàng trên
Biến đổi về ma trận bậc thang thông qua phương pháp khử Gauss. Ví dụ
1 −3 2 0 1
0 0 2 5 1
� �
0 0 0 −1 2
0 0 0 0 0
Ma trận nghịch đảo.
+ Ma trận vuông A gọi là khả nghịch hay không suy biến nếu tồn tại một ma trận
B sao cho AB = BA = In.
+ Nếu B tồn tại, thì nó là duy nhất và được gọi là ma trận nghịch đảo của A, ký
hiệu bằng A−1.
+ Một số tính chất của ma trận khả nghịch:
(A−1) −1 = A (AB) −1 = B−1A−1 (AT) −1 = (A−1)T

Trang 4
I.1.3 Phép nhân hai ma trận.
Cho hai ma trận Am×n và Bn×p trong đó ma trận A có số cột bằng số dòng của ma
trận B. Tích của ma trận A và ma trận B là ma trận cấp m×p, được kí hiệu là AB. Ví dụ
phép tính ma trận 3×2 với ma trận 2×3:

𝐚𝐚 𝐛𝐛 a×g+b×j a×h + b×k a×i+b×l


𝐠𝐠 𝐡𝐡 𝐢𝐢
�𝐜𝐜 𝐝𝐝� × � � = � c × g + d × j c × h + d × k c × i + d × l�
𝐣𝐣 𝐤𝐤 𝐥𝐥
𝐞𝐞 𝐟𝐟 e×g+f×j e×h+f×k e×i+f×l
I.1.4 Hệ phương trình tuyến tính.
Một hệ phương trình tuyến tính là một tập hợp các phương trình tuyến tính có
cùng những biến số, ví dụ:
x1 − 2x2 − x3 + 5x4 = 1
−x + 3x2 + 4x3 − 3x4 = −1
� 1
−x1 + 4x2 + 7x3 − x4 = −1
2x1 − 5x2 − 5x3 + 8x4 = 2
Giải hệ phương trình bằng cách đưa về dạng AX = b sử dụng phương pháp khử
Gauss. Nếu các biến số của hệ phương trình tuyến tính là số thực hoặc số phức, thì chỉ
có ba trường hợp xảy ra: hệ vô nghiệm, hệ có duy nhất một nghiệm, hệ có vô số nghiệm.

I.2 PHÂN TÍCH A = LU.


I.2.1 Giới thiệu.
Một trong các ứng dụng của phép biến đổi sơ cấp là dùng để phân tích ma trận
A = LU. Phân tích này có rất nhiều ứng dụng: dùng để tính định thức, giải phương trình
tuyến tính, tìm ma trận nghịch đảo... Trong đó:
+ A là ma trận vuông cấp n.
+ L là ma trận tam giác dưới (L trong lower của lower triangle).
+ U là ma trận tam giác trên (U trong upper của upper triangle).
Sử dụng các phép biến đổi sơ cấp đưa A về ma trận phía trên U. Để tính ma trận
L cần dùng phép biến đổi sơ cấp ngược lại với các biến đổi trên và biến đổi I thành L.
I.2.2 Phân tích A = LU.
Tìm ma trận U.
Phép phân tích ma trận này khá đơn giản, đầu tiên ta thực hiện các phép biến đổi
trên dòng để đưa A thành một ma trận bậc thang. Lúc đó, ma trận bậc thang chính là ma
trận tam giác trên U. Lấy một ma trận có kích thước 3×3 để làm ví dụ:
1 5 2
A=� 3 6 4�
−2 2 7

Trang 5
Đầu tiên, ta cần tính toán hệ số để nhân dòng 1 (r1 ) rồi trừ cho dòng 2 (r2 ) để
A21 3
thực hiện loại trừ. Có thể tính được l = = = 3. Gọi hệ số này là l21 . Vậy phép
A11 1
biến đổi dòng đầu tiên là r2 − l21 .r1 = r2 − 3.r3 . Tương tự, ta cũng tính ra được
A31
l31 = = −2 và phép biến đổi dòng thứ hai là r3 − l31 .r1 = r3 + 2.r1 . Đến đây, ta có
A11
một ký hiệu chung lij là hệ số nhân cho dòng j và trừ cho dòng i.
1 5 2 r2 − 3r1 1 5 2 r3 + 2r1 1 5 2
�3 6 4� �⎯⎯⎯⎯� � 0 −9 −2� �⎯⎯⎯⎯� �0 −9 −2�
−2 2 7 −2 2 7 0 12 11
12 4
Tiếp tục các bước biến đổi, ta có l32 = =−
−9 3

1 5 2 r3 + 4� r2 1 5 2
3
�0 −9 −2� �⎯⎯⎯⎯⎯⎯� �0 −9 −2 �
0 12 11 0 0 25�
3
Vậy kết quả thu được là ma trận tam giác trên U:
1 5 2
U = �0 −9 −2 �
0 0 25�
3

Tiếp theo cần phải xác định ma trận tam giác dưới L.
Tìm ma trận L.
Ta có phân tích A = LU nên có thể tìm L thông qua công thức L = AU−1.
−1
1 5 2 1 5 2
L = � 3 6 4� �0 −9 −2 �
−2 2 7 0 0 25�3
Trên thực tế không cần thực hiện phép tính trên, ma trận L có thể tìm được như sau:
1 0 0 1 0 0
L = �l21 1 0� = � 3 1 0�
l31 l32 1 −2 −4 �3 1

Những phần tử trong mỗi dòng của L giúp đảo lại các phép toán trên dòng mà ta đã làm.
Ví dụ với dòng 2 của ma trận U có được từ việc trừ đi l21 .r1 thì ở dòng 2 của ma trận L
ta đã khôi phục lại, lấy dòng 2 của U và cộng thêm vào dòng 1 để lấy lại dòng 2 ban đầu:
1 5 2
(l21 1 0) �0 −9 −2 �
0 0 25�
3
= l21 (1 5 2) + (0 −9 −2) = (3 6 4)

Trang 6
1 0 ⋯ 0
l21 1 ⋯ 0
L có thể được biểu diễn như sau: L = � �
⋮ ⋱
lm1 lm2 ⋯ 1
Vậy kết quả của phân tích trên là
1 0 0 1 5 2
A = LU = � 3 1 0� �0 −9 −2 �
−2 −4� 1 0 0 25�
3 3
I.3 PHÂN TÍCH PA = LU.
Đôi khi chúng ta cần phải thay đổi các dòng với nhau mới có thể thực hiện loại
trừ. Trong trường hợp đó ta không thể sử dụng cách phân tích A = LU đã nói trên được
vì LU bây giờ là kết quả của phép phân tích trên ma trận A đã được đổi dòng (tạm gọi
là A′). Lúc này ta phải sử dụng thêm một ma trận P để thực hiện các phép hoán đổi dòng
trên A. Lúc này: A′ = LU ⇔ PA = LU.

Trang 7
CHƯƠNG 2: CHƯƠNG TRÌNH PHÂN TÍCH A = LU
II.1 THUẬT TOÁN CƠ BẢN
Cho một ma trận m×m A = (an,n), đặt A(0) :=A và lặp với n = 1, 2, ..., m−1. Khử
các phần tử bên dưới đường chéo chính của cột thứ n của A(n–1) bằng cách cộng vào
dòng thứ i của ma trận này với dòng thứ n và nhân thêm hệ số li,n, với i = n + 1, n + 2,
…, m.

Sau m−1 bước, ta đã khử tất cả các phần tử bên dưới đường chéo chính, và nhận
được ma trận tam giác trên A(m–1). A(m–1) là ma trận tam giác trên U. Có thể sử dụng ma
trận nghịch đảo để tìm L một các đơn giản bằng công thức L = AU−1.

II.2 CHẠY CHƯƠNG TRÌNH


1 3 4
Ví dụ 1: Cho A là ma trận cấp 2×3, A = � �. Phân tích A = LU.
−3 0 5

Hình 1. Chương trình báo lỗi.


Do ma trận A là ma trận cấp 2×3 nên chương trình không thể chạy. Để chương trình
phân tích có thể chạy cần nhập vào một ma trận vuông cấp n.
1 2 −1
Ví dụ 2: Cho A là ma trận vuông cấp 3, A = �2 5 −3�. Kết quả của phân tích
3 7 1
A = LU như hình 2.

Hình 2. Cửa sổ Command Window của phân tích ma trận A = LU.

Trang 8
1 1 2 1
2 3 5 4
Ví dụ 3: Cho A là ma trận vuông cấp 4, A = � �. Phân tích A = LU.
3 2 7 6
4 5 9 3

Hình 3. Cửa sổ Command Window của phân tích ma trận A = LU.


II.3 NHẬN XÉT CHƯƠNG TRÌNH
Chương trình phân tích A = LU bằng Matlab giúp phân tích nhanh ma trận A
thành ma trận tam giác trên U và ma trận tam giác dưới L. Từ đó có thể ứng dụng vào
các bài toán khác nhau. Thuận tiện cho việc làm bài tập cũng như tính toán.
Tuy nhiên để có thể viết ra chương trình cần có kiến thức cơ bản về lập trình cũng
như các code trong Matlab. Vì vậy cần có thời gian tìm hiểu và tìm tòi các thuật toán.
Nên sử dụng phân tích cho các bài tập có khối lượng tính toán nhiều. Ngoài ra chương
trình còn chưa giải được một số trường hợp đặc biệt cần hoàn thiện hơn.

Trang 9
CHƯƠNG 3: ỨNG DỤNG CỦA PHÂN TÍCH A = LU
III.1 GIẢI HỆ PHƯƠNG TRÌNH TUYẾN TÍNH.
Từ phương trình tuyến tính, ta có Ax = b (với A và b cho trước). Từ A ta có thể
phân tích thành A = LU. Khi đó nghiệm của phương trình có thể được tính toán theo 2
bước sau:
1. Giải Ly = b => Tìm y.
2. Giải Ux = y => Tìm x.
Ví dụ: Giải hệ phương trình
−x1 + 1x2 − 1x3 = −5
17x1 + 10x2 = 19
19x1 + 6x3 = −19
Từ hệ phương trình trên ta biến đổi thành:
−1 1 −1 x1 −5
A = � 17 10 0 � x = �x 2 � b = � 19 �
19 0 6 x3 −19
Phân tích ma trận A = LU:
1 0 0 −1 1 −1
A = LU = �−17 1 0� � 0 27 −17 �
−19 19�27 1 0 0 −28�
27

Hình 4. Kết quả phân tích ma trận A bằng Matlab.


Giải Ly = b:
1 0 0 y1 −5
Ly = b ⇔ � −17 1 0� �y2 � = � 19 �
−19 19� 1 y3 −19
27
y1 −5
⇔ �y2 � = � −66 �
y3 −608�
9
Giải Ux = y:
−1 1 −1 x1 −5
Ux = y ⇔ � 0 27 −17 � �x2 � = � −66 �
−28� −608�
0 0 27 x3 9
x1 −151
⇔ �x2 � = 1�7 � 270 �
x3 456
−151 270 456
Vậy nghiệm của hệ đã cho là x1 = , x2 = , x3 = .
7 7 7

Trang 10
III.2 TÌM MA TRẬN NGHỊCH ĐẢO
Khi giải hệ phương trình, thường thì b được xem là vector có chiều dài bằng số
dòng của A. Nếu thay vì vector b, ta có ma trận B, với B là ma trận kích thước n×p, thì
ta sẽ phải tìm ma trận X (cũng có kích thước n×p): AX = LUX = B.
Có thể sử dụng cùng phương pháp Ly = b, Ux = y để giải cho mỗi cột của ma
trận X. Với giả sử rằng B là ma trận đơn vị với kích thước n thì X khi đó là nghịch đảo
của A.
1 2 2
Ví dụ cho ma trận A = �2 5 6�. Tìm ma trận nghịch đảo.
1 1 3
Gọi ma trận A, B, X:
1 2 2 1 0 0 x11 x12 x13
A = �2 5 6 � B = �0 1 0� X = �x21 x22 x23 �
1 1 3 0 0 1 x31 x32 x33
Phân tích A = LU:
1 2 2 1 0 0 1 2 2
A = LU ⇔ �2 5 6 � = � 2 1 0� �0 1 2�
1 1 3 1 −1 1 0 0 3
Giải Ly = Bi, với i là các cột của ma trận B.
1 0 0 y11 1
Ly = B1 ⇔ �2 1 0� � 21 � = �0� y
1 −1 1 y31 0
y11 1
y
⇔ � 21 � = �−2�
y31 −3

Giải Ux = y
1 2 2 x11 1
UX = y ⇔ �0 1 2� �x21 � = �−2�
0 0 3 x31 −3
x11 3
⇔ �x21 � = � 0 �
x31 −1
Thực hiện tương tự với B2 và B3, tìm được
x12 −4 x13 2
1
�x22 � = �3 � 1 � �x23 � = 1�3 �−2�
x32 1 x33 1
9 −4 2
1
⇒ Vậy X = �3 �0 1 −2� là ma trận nghịch đảo của A.
3 1 1
Trang 11
III.3 TÍNH ĐỊNH THỨC CỦA MA TRẬN
Các ma trận L và U có thể được dùng để tính định thức của ma trận A rất hiệu
quả vì det(A) = det(L) det(U) và định thức của các ma trận tam giác đơn giản là tích các
phần tử trên đường chéo của nó. Đặc biệt, nếu L là ma trận tam giác đơn vị thì:

1 1 2 1
2 3 5 4
Ví dụ: Tính định thức ma trận A = � �.
3 2 7 6
4 5 9 3
1 0 0 0 1 1 2 1
2 1 0 0 0 1 1 2
Ta có A = LU =� �� �.
3 −1 1 0 0 0 2 5
4 1 0 1 0 0 0 −3

Hình 5. Kết quả phân tích ma trận A bằng Matlab.


⇒ det(A) = det(L) × det(U) = (1×1×1×1) × (1×1×2×(−3)) = −6
Vậy det(A) = −6

Trang 12
TÀI LIỆU THAM KHẢO
[1] Đặng Văn Vinh, Giáo trình Đại Số Tuyến Tính, Nhà Xuất Bản Đại Học Quốc Gia,
2020.
[2] https://vi.wikipedia.org/wiki/Phân_tích_LU.
[3] https://tailieuvnu.com/wp-content/uploads/2020/11/19/Slide-2-Dai-so-Tuyen-Tinh-
Ma-Tran-nghich-dao-va-phan-tich-LU-Le-Xuan-Thanh-UET.pdf.
[4] https://rootonchair.blogspot.com/2019/06/phep-phan-tich-ma-tran-alu.html.
[5] Vũ Thị Hương Trang, Phân Tích Ma Trận Và Một Số Ứng Dụng, Đại Học Thái
Nguyên, 2016.

Trang 13

You might also like