Download as pdf or txt
Download as pdf or txt
You are on page 1of 20

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH

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


KHOA KHOA HỌC ỨNG DỤNG

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


ĐẠI SỐ TUYẾN TÍNH

PHÂN TÍCH LU

Nhóm: 12 - L12
Giảng viên hướng dẫn: ThS. Nguyễn Xuân Mỹ

Họ và tên MSSV
1 Trần Danh Quang 2312810
2 Trần Hoàng Lâm 2311830
3 Trạc Minh Nhựt 2312552
4 Thân Hoàng Long 2311927
5 Trần Anh Khôi 2311699
6 Tôn Văn Gia Bảo 2310259
7 Trần Lê Gia Thoại 2313323
8 Trần Hữu Nguyên Sơn 2312981
9 Trần Nguyễn Khánh Bảo 2310264
10 Thái Minh Nghi 2312248

Tp. Hồ Chí Minh, 5/2024


BTL Đại số tuyến tính L12 - Nhóm 12

Danh sách thành viên

Họ Tên MSSV Phân công công việc


1 Trần Danh Quang 2312810 Tổng hợp, Latex, Matlab
2 Trần Hoàng Lâm 2311830 PowerPoint
3 Trạc Minh Nhựt 2312552 Cơ sở lý thuyết, ứng dụng LU
4 Thân Hoàng Long 2311927 Giới thiệu báo cáo, PowerPoint
5 Trần Anh Khôi 2311699 Latex, ứng dụng LU
6 Tôn Văn Gia Bảo 2310259 Cơ sở lí thuyết
7 Trần Lê Gia Thoại 2313323 Latex, ứng dụng LU
8 Trần Hữu Nguyên Sơn 2312981 Tổng hợp PowerPoint
9 Trần Nguyễn Khánh Bảo 2310264 PowerPoint, ứng dụng LU
10 Thái Minh Nghi 2312248 Ứng dụng LU, PowerPoint

Nội dung đề tài

1. Giới thiệu phương pháp phân tích LU.

2. Viết chương trình Matlab áp dụng phân tích LU vào giải hệ phương trình
tuyến tính.

3. Ứng dụng của phương pháp LU/PLU trong thực tế.

4. Tổng kết.

1
BTL Đại số tuyến tính L12 - Nhóm 12

Nhận xét của giáo viên hướng dẫn

2
BTL Đại số tuyến tính L12 - Nhóm 12

Lời cảm ơn
Để hoàn thành bài tập lớn là kết quả của sự hợp tác và không ngừng cố gắng
của các thành viên trong nhóm, cùng với đó là cả sự hỗ trợ rất lớn đến từ giảng
viên là cô Nguyễn Xuân Mỹ. Vì thế, nhóm chúng em muốn gửi lời cảm ơn chân
thành đến cô Nguyễn Xuân Mỹ vì đã hỗ trợ chúng em để nhóm có thể đạt được
thành quả này.

Dù vậy, đây là một chủ đề hoàn toàn mới mà lần đầu nhóm chúng em được tiếp
xúc nên sẽ không tránh khỏi những thiếu sót. Vì thế, nhóm chúng em xin được
nhận góp ý từ cô Mỹ và mọi người để chúng em có thể hoàn thiện thêm. Chúc cô
và mọi người có trải nghiệm tốt.

Chúng em xin chân thành cảm ơn!

3
Mục lục

LỜI CẢM ƠN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
GIỚI THIỆU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1 GIỚI THIỆU PHƯƠNG PHÁP PHÂN TÍCH LU 6


1.1 Khái quát về phân tích LU . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2 Cở sở lý thuyết của phương pháp phân tích LU . . . . . . . . . . . . 7
1.3 Điều kiện để phân tích LU . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4 Áp dụng phương pháp phân tích LU vào giải hệ phương trình tuyến
tính . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.5 Đánh giá phương pháp phân tích LU và phương pháp Gauss . . . . 9

2 MATLAB 11
2.1 Tổng quan về Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2 Mô tả thuật toán được sử dụng trong phân tích LU: . . . . . . . . . 11

3 ỨNG DỤNG 14
3.1 Đề bài 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.2 Đề bài 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

4 TỔNG KẾT 19
4.1 Kiến thức . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.2 Tài liệu tham khảo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

4
GIỚI THIỆU

Lời mở đầu
Trong cuộc sống ngày càng phát triển, các máy móc, công nghệ không ngừng
được nâng cao, dẫn đến sự phát triển mạnh mẽ của khoa học kỹ thuật và các mô
hình tính toán phục vụ cho đời sống sinh hoạt hằng ngày. Khi đó, vấn đề về một
phương pháp để đo lường hiệu suất ngày càng được chú trọng.

Có rất nhiều mô hình như vậy với rất nhiều thuật toán, biến đổi toán học đã được
nghiên cứu. Trong số đó, phương pháp phân tích LU hiện nay đang được xem là
một mô hình rất nổi tiếng và được ứng dụng rộng rãi trong các lĩnh vực như kinh
tế tài chính, khoa học dữ liệu, truyền thông và viễn thông,...

Trong bài báo cáo này, chúng em xin phép được giới thiệu về: “Phương pháp phân
tích LU”.

5
Chương 1

GIỚI THIỆU PHƯƠNG PHÁP


PHÂN TÍCH LU

1.1 Khái quát về phân tích LU


Phương pháp phân tích LU, là một kỹ thuật quan trọng trong lĩnh vực quản
lý và ra quyết định. Được phát triển từ năm 1970 bởi các nhà kinh tế học và nhà
quản lý William W. Cooper, Abraham Charnes và Edwardo Rhodes, phân tích LU
đã trở thành một công cụ quan trọng để đo lường hiệu suất và hiệu quả của các
tổ chức và quy trình.
Về cơ bản, phân tích LU tập trung vào việc đánh giá sự hiệu quả của các đơn
vị sản xuất hoặc hoạt động trong tổ chức, dựa trên các yếu tố như đầu vào và đầu
ra. Phương pháp này không chỉ giúp xác định các điểm mạnh và yếu của từng đơn
vị, mà còn cho phép so sánh chúng với nhau để đưa ra quyết định thông minh về
việc phân bổ tài nguyên và tối ưu hóa hoạt động.
Phương pháp phân tích LU được phát triển vào những năm của thế kỷ 20, thời
kì mà máy tính trở nên phổ biến và mạnh mẽ, việc thực hiện các phép tính phức
tạp trở nên dễ dàng hơn. Nhiều nhà toán học, bác học đã nhìn thấy tiềm năng của
phương pháp này khi mà nó có thể ứng dụng mạnh trong nhiều lĩnh vực thực tế
từ toán khoa học đến tính toán kỹ thuật, kinh tế học, chỉnh sửa ảnh. Trước khi
phương pháp LU phát triển, giải hệ phương trình tuyến tính thường tốn kém rất
nhiều về mặt tính toán và thực hiện thủ công. Phương pháp LU đã giải quyết một
số vấn đề này bằng cách đưa ra một phương pháp giải hệ phương trình tuyến tính
một cách hiệu quả và nhanh chóng hơn.

6
BTL Đại số tuyến tính L12 - Nhóm 12

1.2 Cở sở lý thuyết của phương pháp phân tích LU


 
 a11 a12 a13 
Ma trận vuông: A =  a21 a22 a23  có thể được phân tích thành hai ma trận
 
 
a31 a32 a33
vuông L và U sao cho A=LU:
     
 a11 a12 a13   l11 0 0   1 u12 u13 
 =  l21 l22 0  ×  0 1 u23
     
 a21 a22 a23 
     
a31 a32 a33 l31 l32 l33 0 0 1

trong đó:  
 1 u12 u13 
U =  0 1 u23
 

 
0 0 1

là ma trận tam giác có phần tử đường chéo là 1 (có thể tìm bằng cách áp dụng
Phương pháp Gauss với ma trận A).
 
 l11 0 0 
L =  l21 l22 0 
 
 
l31 l32 l33

là ma trận tam giác dưới.

1.3 Điều kiện để phân tích LU


Không phải mọi ma trận vuông đều có phân tích LU.
Ta có 1 ma trận khả nghịch 2 × 2
 
0 1
A= 
1 0

Giả sử A có thể phân tích thành A = LU với


   
l11 0 u11 u12
L=  và U =  
l21 l22 0 u22

Khi đó

7
BTL Đại số tuyến tính L12 - Nhóm 12

 
l11 u11 l11 u12
A = LU =   và l11 u11 = 0
l21 u11 l21 u12 + l22 u22

Tương đương với có ít nhất 1 trong 2 l11 và u1 1 = 0. Như vậy 1 trong 2 ma trận
L và U là không khả nghịch (Ma trận tam giác chỉ khả nghịch khi mọi phần tử
thuộc đường chéo chính đều khác 0).
Điều này mâu thuẫn với việc A là ma trận khả nghịch và L,U phải là ma trận khả
nghịch.

(AB)−1 = B −1 A−1

Điều này cũng chứng minh :

• Nếu có thể đưa ma trận vuông ( A ) thành dạng bậc thang mà không cần
hoán đổi hàng, thì ( A ) sẽ có phân tích LU.

• Trong một số trường hợp, có thể cần phải hoán vị các hàng của ma trận trước
khi thực hiện phân tích LU. Điều này được gọi là phân tích LU với hoán vị
một phần (LUP), trong đó P là ma trận hoán vị (chỗ này có hoán vị toàn
phần (PAQ) khi có thêm cả hoán vị cột).

1.4 Áp dụng phương pháp phân tích LU vào giải hệ phương trình
tuyến tính
Phân tích LU cho phép giải hệ phương trình bằng cách thay thế hệ ban đầu
(AX = b) bằng hai hệ có ma trận hệ số tam giác (LUx = b), từ đó giải (Ly = b)
để tìm (y ) và sau đó giải (Ux = y ) để tìm (x).
Cho một tập hợp các phương trình tuyến tính, trước tiên hãy chuyển chúng
thành dạng ma trận.

Ax = b

Trong đó:

• A là ma trận hệ số.

• x là ma trận biến số.

• b là ma trận các số ở vế phải của phương trình.

8
BTL Đại số tuyến tính L12 - Nhóm 12

Đầu tiên ta đưa ma trận A về ma trận bậc thang bằng phương pháp Gauss, mà
không hoán vị hàng, ta thu được ma trận bậc thang U.
Để tìm L:

• Khi nhân vào U số (a) nào đó để đưa các phần tử trên đường chéo của U về
1, thì nghịch đảo của số (a) sẽ là 1 phần tử ở vị trí tương ứng trên đường chéo
của L.

• Khi nhân vào U số (b) nào đó để đưa các phần tử phía dưới đường chéo của
U về 0, thì số trừ của số (b) sẽ là 1 phần tử ở vị trí tương ứng của L.

Hệ phương trình đã cho:

Ax = b

Thay

A = LU

Do đó:

LUx = b

Đặt

y = Ux
Trong đó: y là ma trận các biến 3 × 1.

Và giải tìm y trong

Ly = b

Rồi giải tìm x trong

Ux = y

1.5 Đánh giá phương pháp phân tích LU và phương pháp Gauss
Phân tích LU:

• Ưu điểm:

– Phương pháp này tách biệt ma trận A khỏi b, cho phép sử dụng lại phân
tích cho các hệ phương trình có cùng ma trận A nhưng b khác nhau.

9
BTL Đại số tuyến tính L12 - Nhóm 12

– Ngoài ra khi giải các hệ tuyến tính dài, bộ nhớ của máy tính rất quan
trọng các số 0 phía dưới đường chéo chính của U có thể được loại bỏ và
không gian mở sẽ dùng để lưu trữ các giá trị tương tự trên L.

– Nếu A là một ma trận lớn gồm chủ yếu các giá trị 0, và nếu các giá trị
khác không tập trung trong một "dải" xung quanh đường chéo chính, thì
có các kỹ thuật có thể được sử dụng để giảm chi phí của phương pháp LU,
mang lại ưu điểm rõ rệt hơn so với phương pháp Gauss.

• Nhược điểm:

– Không phải mọi ma trận vuông đều có thể áp dụng phân tích LU. Nếu
không thể biến đổi ma trận A thành dạng hàng bậc thang mà không cần
hoán đổi hàng, thì A sẽ không có phân tích LU.

Phương pháp Gauss:

• Ưu điểm:

– Đơn giản và dễ hiểu: Phương pháp Gauss có quy trình rõ ràng và dễ hiểu.

• Nhược điểm:

– Số phương trình và số biến: Hệ phương trình phải có số phương trình bằng


hoặc ít hơn số biến.

– Tính tuyến tính: Hệ phương trình phải là hệ phương trình tuyến tính.

10
Chương 2

MATLAB

2.1 Tổng quan về Matlab


MATLAB (Matrix Laboratory) là một phần mềm khoa học được thiết kế để
cung cấp việc tính toán số và hiển thị đồ họa bằng ngôn ngữ lập trình cấp cao.
MATLAB cung cấp các tính năng tương tác tuyệt vời cho phép người sử dụng thao
tác dữ liệu linh hoạt dưới dạng mảng ma trận để tính toán và quan sát. Các dữ liệu
vào của MATLAB có thể được nhập từ "Command line" hoặc từ "mfiles", trong
đó tập lệnh được cho trước bởi MATLAB. MATLAB cung cấp cho người dùng các
toolbox tiêu chuẩn tùy chọn. Người dùng cũng có thể tạo ra các hộp công cụ riêng
của mình gồm các "mfiles" được viết cho các ứng dụng cụ thể.

2.2 Mô tả thuật toán được sử dụng trong phân tích LU:


Dựa trên phép khử Gauss:

1. Nhập ma trận B bất kì

2. Kiểm tra ma trận vừa nhập có phải là ma trận vuông hay không, nếu không,
thông báo lỗi, dừng thuật toán. Ngược lại, qua bước 3

3. Đưa ma trận vừa nhập về thành ma trận bậc thang, nếu rank(B) không bằng
cấp của B, tức là tồn tại 1 hàng bằng 0, thông báo lỗi và dừng thuật toán.
Ngược lại, qua bước 4

4. Ma trận B sau khi đưa về bậc thang chính là ma trận trên U, để tìm ma trận
dưới L, ta biến đổi công thức A=LU thành AU−1 =L. Đưa ra màn hình hai
ma trận L và U và kết thúc thuật toán.

11
BTL Đại số tuyến tính L12 - Nhóm 12

Đoạn code trên Matlab:

1 A = input ( ’ Nhap ma tran he so A : ’)


2 b = input ( ’ Nhap ma tran ket qua B : ’)
3 N = length ( b ) ;
4 L = zeros (N , N ) ;
5 U = zeros (N , N ) ;
6 for a = 1: N
7 U (a , a ) = 1;
8 end
9 L (: ,1) = A (: ,1) ;
10 U (1 ,:) = A (1 ,:) / L (1 ,1) ;
11 for i = 2: N
12 for k = i : N
13 L (k , i ) = A (k , i ) - L (k ,1: i -1) * U (1: i -1 , i ) ;
14 end
15 for j = i +1: N
16 U (i , j ) = ( A (i , j ) - L (i ,1: i -1) * U (1: i -1 , j ) ) / L (i , i ) ;
17 end
18 end
19 L,U
20 Y = zeros (N ,1) ;
21 Y (1) = b (1) / L (1 ,1) ;
22 for k =2: N
23 Y ( k ) = ( b ( k ) - L (k ,1: k -1) * Y (1: k -1) ) / L (k , k ) ;
24 end
25 Y
26 X = zeros (N ,1) ;
27 X ( N ) = Y ( N ) / U (N , N ) ;
28 for k =N -1: -1:1
29 X ( k ) = ( Y ( k ) - U (k , k +1: N ) * X ( k +1: N ) ) / U (k , k ) ;
30 end
31 X

12
BTL Đại số tuyến tính L12 - Nhóm 12

Ví dụ cụ thể:

• Màn hình nhập input:

• Kết quả chạy trên matlab:

• Nghiêm thu được:

13
Chương 3

ỨNG DỤNG

3.1 Đề bài 1
Một ví dụ cụ thể về ứng dụng của phương pháp phân tích LU là trong giải hệ
phương trình tuyến tính.
Trong hệ thống điện lưới, việc giải các hệ phương trình tuyến tính là rất quan
trọng để dự đoán và quản lý các dòng điện, điện áp và công suất trong các phần
tử của hệ thống, như dây dẫn, biến áp, và các thiết bị khác.

 hệ phương trình tuyến tính 3×3:


Xét một ví dụ đơn giản: giải


 2x1 + 3x2 + 4x3 = 1


Cho hệ phương trình sau: x1 + x2 + x3 = 2




3x + 4x + 4x = 3
1 2 3

Phương pháp giải:

Từ hệ phương trình ta lập được các ma trận:


     
2 3 4  x1  1
A = 1 1 1; x = x2 ; b = 2
     
     
3 4 4 x3 3

Khi đó:

Ax = b (1)

Đầu tiên ta đưa ma trận A về ma trận bậc thang bằng phương pháp Guass, mà
khi đó ta sẽ nhận thấy rằng cần phải hoán vị hàng đầu tiên và hàng thứ hai để
tránh việc chia cho 0.
Ma trận hoán vị hàng đầu tiên và hàng thứ hai:

14
BTL Đại số tuyến tính L12 - Nhóm 12

 
0 1 0
P = 1 0 0
 
 
0 0 1

Từ đó ta sẽ có:
     
0 1 0 2 3 4 1 1 1
P A = 1 0 0 × 1 1 1 = 2 3 4
     
     
0 0 1 3 4 4 3 4 4

Từ đây ta sẽ đưa ma trận PA về ma trận bậc thang, ta thu được ma trận U,


đồng thời cũng sẽ tìm được ma trận L:
   
1 1 1 1 0 0
P A = 2 3 4 · · 0
3 4 4 · · ·

H2 → H2 − 2H1

H3 → H3 − 3H1
   
1 1 1 1 0 0
0 1 2 2 1 0
0 1 1 3 · ·

H3 → H3 − H2
   
1 1 1 1 0 0
0 1 2  2 1 0
0 0 −1 3 1 ·

H3 → −H3
   
1 1 1 1 0 0
U = 0 1 2 L = 2 1 0
0 0 1 3 1 −1

Ta có:
     
1 1 1 1 0 0
 1 1 1
P A = LU (2) ⇔ 2 3 4 = 2 1 0  × 0 1 2
     
     
3 4 4 3 1 −1 0 0 1

Ta đặt:

y = U x (3) 
y1
 
Trong đó y = y2 
 
 
y3

15
BTL Đại số tuyến tính L12 - Nhóm 12

Từ (1), (2), (3) ta được:


       
1 0 0
 y1  0 1 0 1
Ly = P b ⇔ 2 1 0  × y2  = 1 0 0 × 2
       
       
3 1 −1 y3 0 0 1 3

Ta giải tìm được:


 
2
y = −3
 
 
0

Từ (3):
     
1 1 1 x1   2 
U x = y ⇔ 0 1 2 × x2  = −3
     
     
0 0 1 x3 0

Cuối cùng ta giải ra được:


 
5
x = −3
 
 
0

Vậy:

x1 = 5, x2 = −3, x3 = 0

16
BTL Đại số tuyến tính L12 - Nhóm 12

3.2 Đề bài 2
Trong nhiều thuật toán tối ưu hóa và phân tích dữ liệu, việc tính toán ma trận
nghịch đảo có thể là một phần quan trọng. Phương pháp phân tích LU có thể
được sử dụng trong các phương pháp như tối ưu hóa hàm mất mát (hàm cho phép
xác định mức độ sai khác của kết quả dự đoán so với giá trịthực cần dự đoán) và
phương pháp hồi quy tuyến tính.
Lưu ý: phương pháp này chỉ hoạt động khi ma trận A là khả nghịch và có thể
phân tích thành LU.
Xét một ví dụ sau đây:  
1 2 3
Tìm ma trận nghịch đảo của ma trận A = 0 1 4
 
 
5 6 0

Phương pháp giải:

Đầu tiên, ta phân tích ma trận A thành hai ma trận L và U:


     
1 2 3  1 0 0
 1 2 3
A = LU ⇔ 0 1 4 =  0 0 × 0 1 4
     
1
     
5 6 0 −5 −4 1 0 0 1

Khi đó:
   
1 0 0
 1 2 3
L= 0 0 ; U = 0 1 4
   
1
   
−5 −4 1 0 0 1

Tiếp theo, ta giải tìm y trong Ly = I , trong đó I là ma trận đơn vị.


   
1 0 0
 1 0 0
Ly = I ⇔ 0 0 × y = 0 1 0
   
1
   
5 −4 1 0 0 1

Ta giải tìm được:


 
1 0 0
y = 0 1 0
 
 
5 4 1

17
BTL Đại số tuyến tính L12 - Nhóm 12

Cuối cùng, ta giải tìm x trong U x = y với x là ma trận nghịch đảo A:


   
1 2 3 1 0 0
U x = y ⇔ 0 1 4 × x = 0 1 0
   
   
0 0 1 5 4 1

Ta giải tìm được:


 
−24 18 5 
x =  20 −15 −4
 
 
−5 4 1

Vậy ma trận nghịch đảo của ma trận A là:


 
−24 18 5 
A−1 =  20 −15 −4
 
 
−5 4 1

18
Chương 4

TỔNG KẾT

4.1 Kiến thức


• Hiểu hơn về phương pháp phân tích LU cũng như các ứng dụng của phương
pháp này trong các lĩnh vực đời sống.

• Tìm hiểu và sử dụng phần mềm Matlab viết chương trình dùng phương pháp
LU để giải hệ phương trình.

• Sau khi làm bài tập lớn, mọi người làm quen với nhau nhiều hơn.

• Có thêm kinh nghiệm khi làm việc nhóm.

• Biết phân chia công việc hợp lý và hoàn thành công việc đúng hạn.

• Biết thêm nhiều hơn về kiến thức Matlab, LaTeX, Word, Powerpoint, ...

• Biết giúp đỡ các bạn khác trong quá trình làm bài tập lớn trong bộ môn Đại
số tuyến tính cũng như các môn khác.

4.2 Tài liệu tham khảo


[1] Đặng Văn Vinh, "Giáo trình Đại số tuyến tính".
[2] [Online]https://www.statlect.com/matrix-algebra/lu-decomposition.
[3] [Online] https://ubcmath.github.io/MATH307/systems/lu.html.

19

You might also like