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à
Trang 1Trang 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
TP HỒ CHÍ MINH, tháng 05 năm 2023
Trang 2Trang 1
ĐẠ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
2013092
6 Nguyễn Minh Hảo
2211127 2211344
7 Tô Phước Hào
8 Mai Huy Hoàng
9 Phạm Trương Tung Hoành
10 Nguyễn Xuân Hùng
1913229 1913432
Trang 3Trang 2
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 4Trang 3
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 5Trang 4
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 4�3
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 00 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ụ
�
�
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 = I n
+ 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 6Trang 5
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
−x1+ 3x2+ 4x3− 3x4 = −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ụ:
A = � 13 5 26 4
−2 2 7�
Trang 7Trang 6
Đầ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) để
thực hiện loại trừ Có thể tính được l = A21
A11 = 31 = 3 Gọi hệ số này là l21 Vậy phép 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
l31 = A31
A11 = −2 và phép biến đổi dòng thứ hai là r3 − l31.r1 = r3 + 2.r1 Đến đây, ta có
một ký hiệu chung lij là hệ số nhân cho dòng j và trừ cho dòng i
� 13 5 26 4
−2 2 7�
r2 − 3r1
�⎯⎯⎯⎯� � 10 −9 −25 2
r3 + 2r1
�⎯⎯⎯⎯� �10 −9 −25 2
0 12 11� Tiếp tục các bước biến đổi, ta có l32 = 12
−9 = − 43
�10 −9 −25 2
0 12 11�
r3 + 4 3 � r2
�⎯⎯⎯⎯⎯⎯� �
0 0 25�3� Vậy kết quả thu được là ma trận tam giác trên U:
U = �10 −95 −22
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
L = � 13 5 26 4
−2 2 7� �
0 0 25 3�
−1
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:
L = � l211 0 01 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:
(l21 1 0) �
0 0 25�3�
= l21(1 5 2) + (0 −9 −2) = (3 6 4)
Trang 8Trang 7
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à
A = LU = � 13 01 00
−2 −4 3� 1� �
0 0 25�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 9Trang 8
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
Ví dụ 1: Cho A là ma trận cấp 2×3, A = � 1 3 4−3 0 5� Phân tích A = LU
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
Ví dụ 2: Cho A là ma trận vuông cấp 3, A = �1 2 −12 5 −3
3 7 1 � Kết quả của phân tích
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 10Trang 9
Ví dụ 3: Cho A là ma trận vuông cấp 4, A = �
1 1 2 1
2 3 5 4
3 2 7 6
4 5 9 3
� Phân tích A = LU
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 11Trang 10
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:
A = �−1 1 −117 10 0
x1
x2
−5 19
−19� Phân tích ma trận A = LU:
A = LU = �
−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:
Ly = b ⇔ �
−19 19 27� 1� �
y1
y2
y3� = �
−5 19
−19�
⇔ �yy12
y3
� = �
−5
−66
−608
9
� � Giải Ux = y:
Ux = y ⇔ �
0 0 −28 27� � �
x1
x2
x3� = �
−5
−66
−608
9
�
⇔ �xx12
x3� = 1 7� �−151270
456 � Vậy nghiệm của hệ đã cho là x1 =−1517 , x2 =2707 , x3 =4567
Trang 12Trang 11
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
Ví dụ cho ma trận A = �1 2 22 5 6
1 1 3� Tìm ma trận nghịch đảo
Gọi ma trận A, B, X:
A = �1 2 22 5 6
1 0 0
0 1 0
x11 x12 x13
x21 x22 x23
x31 x32 x33
� Phân tích A = LU:
A = LU ⇔ �1 2 22 5 6
1 1 3� = �
1 −1 1� �
1 2 2
0 1 2
0 0 3� Giải Ly = Bi, với i là các cột của ma trận B
Ly = B1 ⇔ �12 01 00
1 −1 1� �
y11
y21
y31� = �
1 0
0�
⇔ �yy1121
y31� = �
1
−2
−3� Giải Ux = y
UX = y ⇔ �1 2 20 1 2
0 0 3� �
x11
x21
x31
� = �−21
−3�
⇔ �xx1121
x31
� = � 30
−1� Thực hiện tương tự với B2 và B3, tìm được
�xx1222
x32� = 1 3� �−41
x13
x23
x33� = 1 3� �−22
1 �
⇒ Vậy X = 1 3� �9 −40 1 −22
3 1 1 � là ma trận nghịch đảo của A
Trang 13Trang 12
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ì:
Ví dụ: Tính định thức ma trận A = �
1 1 2 1
2 3 5 4
3 2 7 6
4 5 9 3
�
Ta có A = LU =�
3 −1 1 0
� �
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 14Trang 13
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