- Viết chương trình dùng để phân tích A = QR bằng phương pháp Gram-Schmidt.. -Tìm hiểu các lệnh Matlab dùng để viết chương trình phân tích A = QR bằng phương pháp Gram-Schmidt... Nêu cơ
Trang 1ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA
..
BÁO CÁO BÀI TẬP LỚN
ĐẠI SỐ TUYẾN TÍNH
Đề tài 3: Phân tích A=QR bằng phương pháp
Gram-Schmidt
GVHD:Nguyễn Xuân Mỹ Lớp: L08
Nhóm 3
1
Trang 2MỤC LỤC
VIÊN……… 3
4
ĐỀ TÀI 5
5
II Điều kiện 5
BÀI TẬP LỚN 5
Câu 1 6
I Định nghĩa 6
II Phân tích ……… 6
III Ví dụ ……… 6 Câu 2 ……… 8
I Giới thiệu………8
II Giải toán bằng matlab……… 8 III Kết quả chạy được từ Command window……… 9
……… 10
Phương pháp bình phương cực tiểu ……… 10
Phân tích QR và Máy học ……… 11
Trang 3Danh sách sinh viên MSSV
Nguyễn Khánh Duy 2210516 Nguyễn Ngọc Trường Duy 2210524
Võ Hoàng Duy 2210545 Nguyễn Duy Đăng 2210734
Lê Minh Đạt 2210678 Trần Tấn Dũng 2210598 Phạm Văn Dũng 2210591 Phan Ánh Dương 2210621
3
Trang 4LỜI CẢM ƠN
Nhóm 3 chúng em xin chân thành cảm ơn cô Nguyễn Xuân Mỹ
trường Đại học Bách Khoa TP.HCM – Đại Học Quốc Gia TP.HCM Cô đã trang bị cho em những kiến thức cơ bản để hoàn thành đề tài được giao Trong quá trình làm việc nhóm để hoàn thành bài tập lớn này, do kiến thức vẫn còn hạn chế nên chúng em còn nhiều thiếu sót trong quá trình tìm hiểu, đánh giá và trình bày
để tài Chúng em rất mong nhận được sự quan tâm, góp ý của cô
để tài của chúng em được đầy đủ và hoàn chỉnh hơn
Xin chân thành cảm ơn cô!
Trang 5
ĐỀ TÀI
I Yêu cầu :
- Nêu cơ sở lí thuyết của phân tích A = QR bằng phương pháp Gram-Schmidt
- Viết chương trình dùng để phân tích A = QR bằng phương pháp Gram-Schmidt
- Tìm các ứng dụng của phân tích A = QR
II Điều kiện :
-Sinh viên cần có kiến thức về lập trình cơ bản trong Matlab -Tìm hiểu các lệnh Matlab dùng để viết chương trình phân tích A
= QR bằng phương pháp Gram-Schmidt
5
Trang 6BÀI TẬP LỚN
1 Nêu cơ sở lý thuyết của phân tích A=QR bằng phương pháp Gram-Schmidt:
I Định nghĩa.
Phân tích ma trận A ∈ Mm x n (R) Phân tích A=QR là biểu diễn ma trận A với Q là ma trận trực giao ( tức Q-1=QT) và
R là ma trận phía trên (tức là rij= 0, ∀ i < j).
II Phân tích cách giải bài tập phân tích A=QR bằng phương pháp Gram-Schmidt.
Giả sử họ vecto cột của A: {e ; e ; …; e } là họ độc lập 1 2 n tuyến tính
Dùng quá trình trực giao hóa Gram-Schmidt ta được họ trực giao và chia mỗi véctơ cho độ dài của nó ta có họ trực chuẩn
Lập ma trận trực giao Q có các cột là các véctơ trực chuẩn vừa tìm được
Theo định nghĩa, ta có ma trận chuyển cơ sở từ Q sang E là:
R = ( [q | [q | … | [q ).1]E 2]E n]E
Theo cách xây dựng họ trực giao, ma trận R là ma trận phía trên
Mặt khác ma trận chuyển cơ sở Q sang E là
Q-1 E = Q E = Q A T T
Suy ra Q A = R A = QR.T ⟺
III Ví dụ vận dụng.
1/ Ví dụ 1: Phân tích QR của ma trận A = (1 1 1
1 2 1
1 1 2) Gọi F { f , f , f } là họ trực giao đang cần tìm.1 2 3
Từ ma trận A ta có: e = (11 ; 1; 1), e2 = (1; 2; 1), e3 = (1; 1; 2) Chọn f = e = (11 1 ; 1; 1)
Trang 7Ta có: f = e - 2 2
(e 2 , f 1) (f 1 , f 1)f 1 = (1; 2; 1) - 3 (1; 1; 1) = (−13 ;
3;−1
3)
Chọn f = (-12 ; 2; -1)
f = e – 3 3 (e 3 , f 1)
(f 1 , f 1)f 1 – ((e 3 , f 2 f 2 , f 2))f 2 = (1; 1; 2) – 4
3 (1; 1; 1) – −16 ( -1; 2; -1) =
(−1
2 ; 0 ;21)
Chọn f (-13 ; 0; 1)
Họ trực giao F = { (1; 1; 1), (-1; 2; -1), (-1; 0; 1) }
Họ trực chuẩn Q = {√13( 1; 1 ; 1);1
√ 6 (−1;2 ;−1); 1
√ 2 (− 1; 0 ; 1)}
Q = ( 1
√ 3
−1
√ 6
−1
√ 2
1
√ 3
2
√ 6
0
1
√ 3
−1
√ 6
1
√ 2) R=Q A= T (3
√ 3
4
√ 3
4
√ 3
√ 6
−1
√ 6
√ 2)
7
Trang 82 Viết chương trình dùng để phân tích A = QR bằng phương pháp Gram-Schmidt
I Giới thiệu
-Matlab (viết tắt của matrix laborary) là một ngôn ngữ lập trình bậc cao bốn thế hệ, môi trường để tính toán số học, trực quan và lập trình Được phát triển bởi MathWorks
-Nó cho phép thao tác với ma trận, vẽ biểu đồ với hàm và số liệu, hiện thực thuật toán, tạo ra giao diện người dùng, bao gồm C,C++, Java và Fortran ; phân tích dữ liệu, phát triển thuật toán, tạo các kiểu mẫu và ứng dụng
-Nó có rất nhiều lệnh và hàm toán học nhằm hỗ trợ đắc lực cho bạn trong việc tính toán, vẽ các hình vẽ, biểu đồ thông dụng và thực thi các phương pháp tính toán
II Giải bài toán bằng matlab
%(phan tich mt bang thuat gramsmidt)
A=input( ' nhap A= ' );
[m,n] = size(A);
if (n== 2)
f1=A(:,1);
e2 =A(:,2);
f2=e2-(dot(e2,f1)/dot(f1,f1))*f1 ;
Q1= f1/norm(f1);
Q2= f2/norm(f2);
Q=[Q1 Q2]
R= Q' * A
f1=A(:,1);
e2 =A(:,2);
f2=e2-(dot(e2,f1)/dot(f1,f1))*f1;
e3= A(:,3);
f3=e3-dot(e3,f1)/dot(f1,f1)*f1-dot(e3,f2)/dot(f2,f2)*f2; Q1= f1/norm(f1);
Q2= f2/norm(f2);
Q3= f3/norm(f3);
Q=[Q1 Q2 Q3]
R= Q'*A
Trang 9
f1=A(:,1);
e2 =A(:,2);
f2=e2-(dot(e2,f1)/dot(f1,f1))*f1;
e3= A(:,3);
e4= A(:,4);
f3=e3-dot(e3,f1)/dot(f1,f1)*f1-dot(e3,f2)/dot(f2,f2)*f2; f4=e4-dot(e4,f1)/dot(f1,f1)*f1-dot(e4,f2)/dot(f2,f2)*f2-dot(e4,f3)/dot(f3,f3)*f3;
Q1= f1/norm(f1);
Q2= f2/norm(f2);
Q3= f3/norm(f3);
Q4= f4/norm(f4);
Q=[Q1 Q2 Q3 Q4]
R=Q'*A
end
Kết quả chạy được từ Command window
9
Trang 103 Ứng dụng của phép phân tích A=QR
Phương pháp bình phương cực tiểu
Đề bài: Cho bảng dữ liệu
Trong đó, cột thời gian ( hoành độ) cho biết thời gian tính bằng phút mà bạn Kiên học trong đêm trước ngày thi của các môn học
và cột điểm số ( tung độ) cho biết số điểm ( thang điểm 100) mà bạn Kiên đạt được
1/ Xấp xỉ bảng dữ liệu trên bởi một hàm bậc nhất
2/ Giả sử bạn Kiên giành ra 10 phút để học vào đêm trước ngày thi môn Pháp luật Đại cương Hãy dự đoán xem bạn Kiên sẽ được bao nhiêu điểm ở môn này?
Lời giải
1/ Hàm cần tìm là f(t) = b + at
Ta có ma trận A = (1 g 1
1 g 2
1 g 3
1 g 4) = (1 45
1 15
1 39
1 35), b = (86
72 90
78)
Trang 11Khi đó A A = T (134 4996)và A b = T (11190)
Giải hệ A AX =A b, ta được nghiệm X = T T (63.732 ;0.5305)T
Vậy hàm f(t) = 63.732 + 0.5305t
2/ Ta có f(10) = 69.037 Như vậy bạn Kiên có khả năng đạt được 69.037 điểm ở môn Pháp luật Đại cương
Phân tích QR và Máy học ( Machine Learning )
Phân tích QR rất có ích trong ứng dụng của Máy học Một ví dụ về
sử dụng phân tích QR trong Máy học là tự động cắt, xóa một đối tượng ra khỏi một hình ảnh, một video Nếu ta muốn cắt hình ảnh chiếc ô tô ra khỏi một video clip, ta sẽ sử dụng cái được gọi là phân rã các giá trị đơn lẻ, thì việc này sẽ trở nên tương đối đơn giản Nói ngắn gọn, bằng cách chia video thành các khung hình riêng lẻ, chuyển đổi các khung hình thành các vectơ 1D và tạo ra
ma trận các vectơ tương ứng với mỗi hình ảnh, sau đó ta có thể chạy phân tích các giá trị đơn lẻ trên video Sự phân tách này cho phép tách các đối tượng nền trước khỏi không gian nền trong hình ảnh từ một video một cách đơn giản
Phân tích QR cũng được sử dụng trong hệ thống xử lí tín hiệu và
hệ thống đa đầu vào đa đầu ra (MIMO)
Phân tích phân biệt trọng số dựa trên hạt nhân với phân tích QR
và ứng dụng của nó dùng để nhận dạng khuôn mặt
11