Đồng thời nó cũng được sử dụng trong hệ thống xử lí tín hiệu và hệ thống MIMO,… Phân rã QR có rất nhiều phép biến đổi khác nhau,như biến đổi bằng trực giao hóa Gram Schmidt, phép biến đổ
Trang 11
ĐẠI HỌC QU ỐC GIA THÀNH PHỐ Ồ H CHÍ MINH
NĂM HỌC 2022- 2023
MÔN HỌC: ĐẠI SỐ TUYẾN TÍNH
BÁO CÁO BÀI TẬP LỚN
ĐỀ TÀI SỐ 4: PHÉP PHÂN TÍCH A = QR BẰNG PHÉP BIẾN
ĐỔI HOUSEHOLDER
GVHD : NGUY ỄN XUÂN MỸ
L ỚP : L08 TPHCM, THÁNG 12 NĂM 2022
Trang 22
MỤC L C Ụ D ANH SÁCH THÀNH VIÊN 3
L ỜI MỞ ĐẦU 4
1 CƠ SỞ LÝ THUYẾT CỦA PHÂN TÍCH A = QR 5
1.1 ĐỊNH NGHIA: 5
1.2 P HÂN TÍCH: 5
1.2.1 Quy trình Gram-Schmidt: 5
1.2.2 Ph n chi u Householder ả ế 6
1.3 LÝ THUYẾT VA CAC BƯỚC HIỆN TH C THUỰ ẬT TOAN: 7
1.3.1 Đối với ma trận vuông: 7
1.3.2 Đối với ma trận hình chữ nhật: 7
1.3.3 Thuật toán phép ến đổ bi i Householder: 8
2 XÂY DỰNG CHƯƠNG TRÌNH MATLAB ĐỂ BIẾN ĐỔI A = QR B NG BIẰ ẾN D ỔI HOUSEHOLDER 9
2.1 TỔNG QUAN VỀ MATLAB: 9
2.2 P HẦN CODE MATLAB : 9
3 NG D NG CỨ Ụ ỦA PHÉP PHÂN TÍCH A = QR 11
TÀI LIỆU THAM KH O Ả 13
Trang 33
D ANH SÁCH THÀNH VIÊN
Trang 4
4
LỜI MỞ ĐẦU
Cuộc sống ngày càng phát triển, nhu cầu của con người ngày càng phong phú, dẫn đến các thuật toán được đặt ra ngày càng nhiều và được nghiên cứu để phục
vụ cho khoa học kĩ thuật, ứng dụng vào đời sống của con người Có rất nhiều các thuật toán đã được nghiên cứu thành công và đưa vào ứng dụng cho đời sống của con người Trong số đó phân rã A = QR đã được đem vào ứng dụng rất nhiều phục vụ cho việc nghiên cứu khoa học Phân tích A = QR thường được ứng dụng trên máy học, chẳng hạn như việc tự động xóa một đối tượng khỏi hình ảnh Đồng thời nó cũng được sử dụng trong hệ thống xử lí tín hiệu và hệ thống MIMO,… Phân rã QR có rất nhiều phép biến đổi khác nhau,như biến đổi bằng trực giao hóa Gram Schmidt, phép biến đổi HouseHolder Và trong bài báo cáo này, nhóm xin được phép giới thiệu về
“Phép phân tích A = QR bằng phép biến đổi HOUSEHOLDER”
Mong thầy cô và các bạn theo dõi, góp ý để chủ đề của chúng em được hoàn thiện hơn
Trang 55
1 CƠ SỞ LÝ THUYẾT CỦA PHÂN TÍCH A = QR 1.1 Định nghĩa:
• Cho ma trận A ∈ Mmxn(ℝ) Phân tích QR của ma trận A là biểu diễn A = QR với Q
là ma trận trực giao (QT=Q-1) và R là ma trận tam giác trên (rij=0, i > j) ∀
1 2 Phân tích:
1.2.1 Quy trình Gram-Schmidt:
Phân hủy QR có công thức sau: A = QR
Trong đó:
• A là ma trận ban đầu mà chúng ta muốn phân rã
• Q là ma trận trực giao
• R là ma trận tam giác trên
− Điều kiện: Họ các véctơ cột của A là họ độc lập
− 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
− Ma trận trực giao Q có các cột là véctơ trực chuẩn vừa tìm được
− Ma trận R (ma trận chuyển cơ sở từ Q sang E)=QTA
Để tạo vectơ trực giao, chúng ta có thể sử dụng thông tin sau Vectơ a là vectơ đầu tiên và chúng ta có thể so khớp nó với vị và phải trực giao với vectơ v , vì vậy 1 chúng ta nên chiếu vectơ b lên vạ để b trực giao với a (vi) Phép chiếu của vectơ b lên a (v1) được cho bởi:
𝑣1𝑇 𝑏
𝑣1𝑇 𝑣1v1
Phép chiếu vecto
Trang 66
Bây giờ chúng ta cần chiếu b lên v, để có được tính trực giao giữa a và b Đối với điều này, chúng tôi có thể sử dụng e, là lỗi chiếu của chúng tôi và có thể được tính bằng công thức sau:
e=b−𝑣1𝑇𝑏
𝑣1𝑇 𝑣 1v1
Cần lưu ý một điều là e có cùng độ dài và cùng chiều với v Chúng ta có thể kết 2
luận:
v 2 = b−𝑣1𝑇𝑏
𝑣1𝑇 𝑣 1v1
Về cơ bản đây là cách hoạt động của quá trình Gram Schmidt Đối với nhiều hơn hai -chiều (giả sử chúng ta có vectơ a, b và c), chúng ta có thể tính toán quá trình theo cách sau:
v3= c−𝑣1𝑇𝑏
𝑣1𝑇 𝑣1v1−𝑣1𝑇𝑏
𝑣1𝑇 𝑣1v2
Điều đang xảy ra trong nhiều chiều hơn là chúng ta đang trừ các hướng vectơ cho các thành phần trước đó (V1, V2 và v.v nếu chúng ta có nhiều thứ nguyên hơn) Bây giờ chúng ta biết cách lấy ma trận Q
Để tính toán ma trận R, chúng ta có thể sử dụng các thay đổi sau trong công thức QR:
A = QR,
QTA=QTQR (vì Q là trực giao QT = Q-1)
QA = R, do đó R=QA
1.2.2 Phản chiếu Householder
Gram-Schmidt có thể không ổn định về mặt số học, có nghĩa là đầu vào thay đổi nhỏ có thể dẫn đến thay đổi tương đối lớn trong đầu ra ( nguồn ) Cách ổn định hơn là sử dụng phản chiếu của Householder Householder chiếu vectơ qua một “tấm gương” Chúng ta có vectơ x mà chúng ta muốn phản ánh vectơ Qx Để phản ánh, chúng ta sẽ sử dụng ma trận trực giao Q
Nội dung phản ánh
Từ trước, chúng ta biết rằng hình chiếu x lên u là: 𝑢𝑇𝑥
𝑢 𝑇 𝑢u
Từ biểu đồ phản chiếu của Householder, chúng ta có thể thấy rằng nếu chúng
ta lấy x trừ đi hai lần thành phần song song với u, chúng ta sẽ nhận được Qx : Qx = x
- 2x||
Thành phần song song là hình chiếu x của chúng ta với u, vì vậy chúng ta có thể viết:
Qx= - 2x 𝑢𝑢𝑇𝑇𝑢𝑥u
Trang 77
Vì tính kết hợp của phép nhân ma trận:
u(u T x) = (uu ) x T
Chúng t có thể viết:a
Qx= (uu )x - 2T 𝑢 𝑇 𝑥
𝑢 𝑇 𝑢x
Trở thành:
Qx=(I − 2𝑢𝑇𝑥
𝑢 𝑇 𝑢)x
Và cuối cùng chúng ta có:
Q= I - 2𝑢𝑇𝑥
𝑢 𝑇 𝑢
1.3 Lý thuyết và các bước hiện thực thuật toán:
1.3.1 Đối với ma trận vuông:
Bất kì ma trận vuông thực A có thể phân tách thành: A=QR
Trong đó:
- Q là một ma trận trực giao (các cột của nó là các vectơ đơn vị trực giao, có
nghĩa là QTQ=QQT=1)
- R là ma trận tam giác trên (còn gọi là ma trận tam giác vuông)
Nếu A là khả nghịch, thì việc phân tích này là duy nhất nếu chúng ta yêu cầu các phần tử đường chéo của R dương Nếu thay vào đó A là một ma trận vuông phức, thì
có một phép phân tách A=QR, trong đó Q là một ma trận đơn vị (vì vậy Q*Q=QQ*
=1)
Nếu A có n cột độc lập tuyến tính, thì n cột đầu tiên của Q tạo thành cơ sở trực giao cho không gian cột của A Tổng quát hơn, các cột k đầu tiên của Q tạo thành cơ sở trực giao cho nhịp của các cột k đầu tiên của A cho bất kì 1 ≤ k ≤n Thực tế là bất kì cột k nào của A chi phụ thuộc vào các cột k đầu tiên của Q chịu trách nhiệm cho dạng tam giác của R
1.3.2 Đối với ma trận hình chữ nhật:
Nói chung, chúng ta có thể tính đến một ma trận m×n phức tạp A, với m ≥ n, là tích của ma trận đơn nhất M×m Q và ma trận hình tam giác trên m×n R Vì các hàng dưới cùng (m−n) của ma trận hình tam giác trên mxn bao gồm hoàn toàn các số không, nó thường hữu ích cho phân vùng R hoặc cả R và Q:
A = QR = Q[𝑹𝟏
𝟎] = [Q1,Q2] [𝑹𝟏
𝟎] = Q1R1
Trang 88
ma trận 0 (m − n) × n, Q là m × n, Q 2là m × (m
− n), Q và Q1 2đều có cột trực giao
Phản chiếu Trình quản lý nội bộ để phân rã QR: Mục tiêu là tìm một phép biến đổi tuyển tính thay đổi vectơ x thành vectơ cùng độ dài và cùng phương với e Chúng ta
-về mặt số nếu các vectơ x gần với trực giao Thay vào đó, phản xạ của Householder
phản ánh qua đường chấm (được chọn để chia đôi góc giữa x và e,) Góc tối đa với phép biến đổi này là 45 độ
1.3.3 Thu ật toán phép biến đổi Householder:
Giả sử u ∈ Mnx1(ℝ) là vector khác không tuỳ ý,
khi đó hình chiếu vuông góc của vector v lên
không gian con F sinh bởi vector u là:
pru(v) = uu v T
Phép biến đổi là phép chiếu vuông góc của một
vector tuỳ ý lên không gian con sinh bởi vector
u
Vector v được phân tích thành v=a+b, với a là
hình chiếu vuông góc của lên F bù vuông gócu
và b là hình chiếu vuông góc của v lên F
Ta có: 𝑂𝑁 = 𝑂𝐻 + 𝐻𝑁 => y = 𝑂𝑁 = ( I − 𝑢𝑢𝑇
𝑢 𝑇 𝑢)v− 𝑢𝑢𝑇
𝑢 𝑇 𝑢v = (I − 2 𝑢𝑢𝑇
𝑢 𝑇 𝑢)v Phép biến đổi là phép chiếu vuông góc của 1 vector lên không gian con F bù vuông góc Phép đối xứng qua F┴ là I-2 𝑢𝑢𝑇
𝑢 𝑇 𝑢 ( phép biến đổi này được gọi là phép biến đổi Householder)
* Cách thực hiện:
Giả sử A*1 ≠ 0 là cột thứ nhất của ma trận A
Trang 99
Ta cần tìm một ma trận trực giao P để P1 1A*1 =(
? 0
⋮ 0 )
Ma trận P tương ứng với phép biến đổi trực giao nên nó bảo toàn độ dài vector Vậy 1
độ dài của P1A*1 bằng độ dài của A*1
Do đó ta chọn P1A*1 = ||A ||e*1 1
Đặt vector 𝑂𝑀 = A*1 , 𝑂𝑁 = ||A ||e*1 1
Khi đó 𝑂𝑀 = 𝑂𝑁 + 𝑁𝑀 𝑁𝑀 = 𝑂𝑀- 𝑂𝑁
Đặt u = 𝑁𝑀 = A - *1 ||A ||e*1 1
Dùng vector này tạo ra phép biến đổi Householder u P = I-21 𝑢𝑢 𝑇
𝑢 𝑇 𝑢 và phép biến đổi này
sẽ khử tất cả các phần tử trong cột thứ nhất của ma trận A ngoại trừ phần tử đầu tiên
2 XÂY DỰNG CHƯƠNG TRÌNH MATLAB ĐỂ BIẾN
ĐỔI A = QR BẰNG BIẾN DỔI HOUSEHOLDER
2 1 Tổng quan về Matlab:
- 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
- Là phần mềm cung cấp môi trường tính toán số và lập trình, do công ty MathWorks thiết kế MATLAB cho phép tính toán số với ma trận, vẽ đồ thị hàm số hay biểu đồ thông tin, thực hiện thuật toán, tạo các giao diện người dùng và liên kết với những chương trình máy tính viết trên nhiều ngôn ngữ lập trình khác
-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
2 2 Phần code Matlab :
•Phần code
function [Q,R] = qrfactor(A)
[m,n] = size(A);
Q=eye(m);
Trang 1010
for k = 1:n
z = A(k:m,k);
v = [ -sign(z(1))*norm(z) - z(1); -z(2:end) ];
v = v / sqrt(v'*v);
for j = 1:n
A(k:m,j) = A(k:m,j) - v*( 2*(v'*A(k:m,j)) );
end
for j = 1:m
Q(k:m,j) = Q(k:m,j) - v*( 2*(v'*Q(k:m,j)) );
end
end
Q = Q';
R = triu(A);
end
• Phần kết quả
• Giải thích code:
- [m,n] = size (A) : A là ma trận có m hàng và n cột ( ma trận cỡ m x n)
- Q = eye(m) : ma trận đơn vị cấp m
- For k = 1:n
Trang 1111
…
end
Vòng lặp được lặp lại từ 1 đến n lần
- z = A(k:m,k) : ma trận z = lấy các phần tử cột k từ vị trí k đến m của ma trận A
- sign: dấu ma trận
- norm(v): độ dài vecto v tính theo tích vô hướng
- z(2:end): chọn phần tử cuối cùng hàng 2 của ma trận z
- sqrt(v’*v): căn bậc 2 của ( ma trận v chuyển vị nhận ma trận v)
- triu A: ma trận trên của A
3 ỨNG DỤNG CỦA PHÉP PHÂN TÍCH A = QR
• Phân rã QR có thể hữu ích trong các ứng dụng học máy Một ví dụ về việc sử dụng phân rã QR trong học máy là tự động xóa một đối tượng khỏi hình ảnh Hãy tưởng tượng bạn muốn cắt hình ảnh của một chiếc ô tô từ một video clip Sử dụng những gì được gọi là phân rã giá trị đơn lẻ, nó trở nên tương đối đơn giản Nói tóm lại, bằng cách chia video thành các khung hình riêng lẻ, chuyển các khung hình thành vectơ 1D
và tạo ma trận các vectơ tương ứng với mỗi hình ảnh, sau đó người ta có thể chạy một phân tách giá trị duy nhất trên video Sự phân hủ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ừ video một cách đơn giản
* Ví dụ minh họa:
Trang 1212
• Phân tách QR được sử dụng trong hệ thống xử lý tín hiệu và hệ thống MIMO
• Phân hủy QR bằng đường chéo và ứng dụng để thiết kế mã cho trước
• Phân tích phân biệt trọng số dựa trên hạt nhân với phân rã QR và ứng dụng của nó
để nhận dạng khuôn mặt
Một số lược đồ thủy vẫn mới dựa trên phân tích QR
ng d ng trong MIMO:Ứ ụ
- Trong radio, nhiều đầu vào và nhiều đầu ra, hay MIMO, là việc sử d ng ụ nhiều ăng-ten
ở cả máy phát và máy thu để cải thiện hiệu su t truyấ ền thông
- MIMO là một trong nhi u dề ạng công nghệ ăng ten thông minh
- MIMO cung c p s ấ ự gia tăng đáng kể về thông lượng dữ liệu và phạm vi liên kết mà không cần thêm băng thông hoặc công suất truyền
- MIMO là một ph n quan tr ng cầ ọ ủa các tiêu chuẩn truyền thông không dây hiệ đại như IEEE 802.11n (Wifi) và 4G.n
- Trong hệ thống MIMO, một máy phát sẽ ử g i nhi u lu ng b ng nhiề ồ ằ ều ăng-tenphát Các luồng truyền đi qua một kênh ma trận bao g m tồ ất cả các đường dẫn
N Nt r giữa các ăng ten phát Nt ở máy phát và Nr ăng-ten thu ở máy thu
- Sau đó, máy thu nhận các vectơ tín hiệu đã nhận bởi nhiều ăng-ten thu
và giả mã các vectơ tín hiệi u nhận được thành thông tin ban đầu
* Nh ận xét:
- Sự phân rã QR cung cấp một cách thay thế để giả ệ phương trình Ax i h
= b mà không cần nghịch đảo ma trận A Thực tế là Q là trực giao có nghĩa là
QTQ = I,do đó A x = b tương đương với R x = Q b, dT ễ giải hơn vì R là ma trận tam giác
- Việc s dử ụng các phép biến đổi Householder vốn dĩ là đơn giản nhất trong s ố các thuật toán phân rã QR ổn định v s ề ố lượng do s dử ụng ph n x ả ạ làm
Trang 1313
cơ chế ạo ra các số t 0 trong ma trận R Tuy nhiên, thuật toán phản chiếu Householder n ng vặ ề băng thông và không thể song song hóa, vì mọi phản xạ tạo ra ph n t 0 mầ ử ới sẽ thay đổi toàn bộ ma trận Q và R
TÀI LIỆU THAM KHẢO
[1] Giáo trình đại số tuyến tính của thầy Đặng Văn Vinh, Trường Đại học Bách Khoa TP.HCM
application to face recognition - Jianqiang Gao
(https://dl.acm.org/doi/abs/10.5555/2064828.2064831)
[3] Implementation comparisons of the QR decomposition for MIMO detection - Gabriel Luca Nazar, Christina Gimmler-Dumont, Norbert When
(https://www.researchgate.net/publication/220850919_Implementation_compari sons_of_the_QR_decomposition_for_MIMO_detection)
[4] QR Decomposition and Machine Learning
(https://deepai.org/machine-learning-glossary-and-terms/qr-decomposition) [5] Giáo trình matlab cơ bản – Trần Văn Chính
[6] https://sandev.vn/tin-tuc/tim-hieu-ve-function-trong-matlab