Báo cáo bài tập lớn Đại số tuyến tính, phân tích QR bằng 2 phương pháp GRAM-SMITH, GIVEN, Trường Đại học Bách Khoa, Đại học quốc gia TPHCM.
Giới thiệu về đề tài
Trong đại số tuyến tính, phân rã QR, còn được gọi là phân tích nhân tố QR hoặc phân tích nhân tố QU là phân rã ma trận A thành tích A = QR của ma trận trực giao Q và ma trận tam giác trên R Phân rã QR thường được sử dụng để giải quyết vấn đề bình phương tối thiểu tuyến tính và là cơ sở cho một thuật toán eigenvalue cụ thể, thuật toán QR Tronng đó là hai phép phân tích A=QR qua phép biến đổi Householder và Gram-Schmidt
Thuật toán phân rã A = QR bằng phép biến đổi Householder, Gram-Schmidt
• Ma trận hình chữ nhật
Sử dụng thuật toán để giải các bài toán, chạy chương trình Matlab để phân rã A = QR bằng phép biến đổi Householder, Gram-Schmidt
1.2.4 Mục đích nghiên cứu Đề tài nhằm đáp ứng nhu cầu học tập của học sinh, sinh viên Giải quyết các bài toán liên quan đến trực giao ma trận với sai số nhỏ nhằm giải quyết các bài toán và các ứng dụng thực tế chính xác hơn.
CƠ SỞ LÝ THUYẾT
Giới thiệu thuật toán A=QR
Phân rã QR, còn được gọi là phân tích nhân tố QR hoặc phân tích nhân tố QU là phân rã ma trận A thành tích A = QR của ma trận trực giao Q và ma trận tam giác trên R Phân tích thừa số A = QR của ma trận A là một kỹ thuật hữu ích để ước tính giá trị riêng Nó luôn tồn tại khi số hạng của A bằng số cột của A.Vì thế nếu A là ma trận vuông cấp n thì Q là ma trận trực giao cấp n
• A là ma trận ban đầu cần phân rã
• Q là ma trận có các cột trực giao (có nghĩa là 𝑄 𝑇 𝑄 = 𝑄𝑄 𝑇 = 𝐼)
• R là ma trận tam giác trên cấp m khả nghịch b Các phương pháp thực hiện phân rã A=QR
➢ Phép quay Given Ở bài báo cáo này chúng ta sẽ tìm jieeur sâu hơn về 2 phương pháp Gram-Schmidt và Householder.
Phương pháp Gram-Schmidt
• Tập hợp con M được gọi là họ trực giao, nếu x ⊥ y, ∀x, y ∈ M và x≠y
Tập hợp con M được gọi là họ trực chuẩn, nếu: M là họ trực giao ||x|| = 1, ∀x ∈ M Định lý 3.4.1:
Cho E = {e1,e2, ã ã ã ,en} là cơ sở trực chuẩn của khụng gian V
1/ ∀x ∈ V Giả sử [x]E = (x1; x2; ã ã ã ; xn) T Khi đú ∀i = 1 ã ã ã n, xi = (x,ei);
2/ Giả sử [x]E = (x1; x2; ã ã ã ; xn) T và [y]E = (y1; y2; ã ã ã ; yn) T Khi đú: (x, y) x1y1 + x2y2 + ã ã ã + xnyn Định lý 3.4.2:
Cho E = {e1,e2, ã ã ã ,en} là một họ độc lập tuyến tớnh Khi đú cú thể xõy dựng một họ trực giao F = {f1, f2, ã ã ã , fn} sao cho khụng gian con được sinh ra bởi F trựng với không gian con được sinh ra bởi E
• Xem xét quy trình Gram – Schmidt được áp dụng cho các cột của ma trận xếp hạng cột đầy đủ A=[a1,…,an], với sản phẩm bên trong 〈u,w〉=v T w (hoặc là 〈u,w〉=v * w đối với trường hợp phức tạp)
⋮ ⋮ uk = ak ∑ 𝑘=1 𝑗=1 proju1ak, ek= 𝑢 𝑘
Bây giờ chúng ta có thể thể hiện ai dựa trên cơ sở chuẩn mực mới được tính toán: a1=〈e1,a1〉e1 a2=〈e1,a2〉e1 + 〈e2,a2〉e2 a3=〈e1,a3〉e1 + 〈e2,a3〉e2 + 〈e3,a3〉e3
𝑗=1 ej,ak〉e j Ở đây 〈ei,ai〉=||ui|| Điều này có thể được viết dưới dạng ma trận:
Phép biến đổi Householder
Phép chiếu Householder cho phép thực hiện phân tích QR: Mục tiêu là tìm một phép biến đổi tuyến tính biến đổi vector X thành một vector có cùng độ dài và song song với e1 Chúng ta có thể sử dụng phép chiếu trực giao (Gram-Schmidt) nhưng điều này sẽ không ổn
Phép phản xạ Householder phản chiếu một vector qua một đường thẳng vuông góc với vector đơn vị sao cho đường thẳng này chia đôi góc giữa vector được phản xạ và một vector chuẩn khác Vì phép biến đổi này chỉ có thể xảy ra khi hai vector gần như vuông góc, nên góc phản xạ tối đa đạt 45 độ.
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 chiếu vectơ Qx Để phản chiếu, chúng ta sẽ sử dụng ma trận trực giao Q
Từ trước, chúng ta biết rằng hình chiếu x lên u là:
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
6 trừ đi hai lần thành phần song song với u, chúng ta sẽ nhận được Qx:
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:
Vì tính kết hợp của phép nhân ma trận:
Chúng ta có thể viết:
Và cuối cùng chúng ta có:
2.3.2 Lý thuyết và các bước hiện thực thuật toán: a) Đố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
- 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à Q T Q = QQ T = 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 ma trận A có n cột độc lập tuyến tính, thì n cột đầu tiên của ma trận Q tạo bởi phép phân tích QR tạo thành cơ sở trực giao cho không gian cột của A Tổng quát hơn, k cột đầu tiên của Q tạo thành cơ sở trực giao cho nhịp của k cột đầu tiên của A với mọi 1 ≤ k ≤ n Điều này thể hiện qua việc bất kỳ cột k nào của A chỉ phụ thuộc vào k cột đầu tiên của Q tương ứng với ma trận R dạng tam giác.
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 m×n 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:
Trong đó: R1 là n × m ma trận tam giác trên, 0 là ma trận 0 (m – n) × n, Q1 là m × n, Q2 là m × (m – n), Q1 và Q2 đều có cột trực giao c) Thuật toán phép biến đổi Householder:
Giả sử 𝑢 là vectơ khác không tùy ý, khi đó hình chiếu vuông góc của vectơ 𝑣 lên không gian con F sinh bởi vectơ 𝑢 là pru(𝑣) = 𝑢𝑢 𝑇 𝑣
Vectơ 𝑣 được phân tích thành 𝑣 = a + b, với a là hình chiếu vuông góc của 𝑢 lên F và b là hình chiếu vuông góc của 𝑣 lên F
Vậy ta có phép đối xứng qua 𝐹 ⊥ là:
(phép biến đổi này được gọi là phép biến đổi Householder)
MỘT SỐ VÍ DỤ
Phương pháp Gram-Schmidt
Xem xét sự phân hủy của
Nhớ lại rằng một ma trận trực chuẩn Q có giá trị
Sau đó, chúng ta có thể tính toán Q bằng Gram – Schmidt như sau:
Do đó, chúng ta có:
Phép biến đổi Household
) Đầu tiên, chúng ta cần dùng phép phản chiếu để biến đổi cột đầu tiên của ma trận A, vector a 1 = (12 3 4) T , có ‖a 1 ‖ = 13
*Chúng ta gần như đã có một ma trận hình tam giác, chúng ta chỉ còn cần số không hóa cho giá trị hàng 3 cột 2
Lấy (1,1) phụ hợp, sau đó áp dụng lại quy trình cho
−36/13 −146/13) Bằng phương pháp tương tự ở trên, ta có được ma trận của phép biến đổi Householder
11 b) Ma trận hình chữ nhật:
) Đầu tiên, chúng ta cần dùng phép phản chiếu để biến đổi cột đầu tiên của ma trận A, vector a 1 = (1 1 1 1) T , có ‖a 1 ‖ = 2
Bây giờ ta có: u = a 1 − ‖a 1 ‖e 1 = (−1 1 1 1) T Đặt v = u
Chúng ta tiếp tục để tìm được ma trận tam giác trên bên phải kích thước 3x3, còn hàng cuối sẽ là (0 0 0)
Lấy (1,1) phụ hợp, sau đó áp dụng lại quy trình cho
Bằng phương pháp tương tự ở trên, ta có được ma trận của phép biến đổi Householder
Trong quá trình biến đổi, chúng ta tình cờ thu được một ma trận R 4x3 với ma trận vuông 3x3 ở trên là ma trận tam giác trên bên phải, còn hàng 4 ở dưới cùng chỉ gồm số 0 Như vậy chúng ta đã tìm được ma trận R mà không phải làm bước biến đổi Householder lần thứ 3
*Lưu ý: Đây là trường hợp đặc biệt, ở những trường hợp khác sẽ có thể phải làm thêm 1 bước biến đổi Householder tương tự
ỨNG DỤNG
Ứng dụng phân tích QR cho hệ phương trình tuyến tính
- Phân tích QR có thể giải quyết trên cả ma trận vuông và ma trận hình chữ nhật
- Các phương pháp phân tích thừa số có thể sử dụng để giải quyết bài toán về ma trận, điển hình là giải hệ phương trình tuyến tính
- Nếu A ∈ 𝑅 𝑚 𝑥 𝑛 có các cột độc lập tuyến tính thì
Q: - Là m x n với các cột trực giao (𝑄 𝑇 𝑄 = I)
- Nếu A là ma trận vuông (m = n), thì Q trực giao (𝑄 𝑇 𝑄 = 𝑄𝑄 𝑇 = I)
R : - Là n x n, gồm các ma trận tam giác trên với các phần tử đường chéo ≠ 0
Có thể giải quyết hệ phương trình tuyến tính qua QR bằng 3 cách
Hệ phương trình tuyến tính:
- Là tập hợp của hai hay nhiều phương trình có cùng tập ẩn số Khi giải hệ phương trình, ta tìm các giá trị cho từng ẩn số thỏa mãn {
𝑎 11 , 𝑎 21 ,…, 𝑎 𝑚𝑛 : hệ số trong hệ phương trình tuyến tính
Ánh xạ tuyến tính trong phân tích mã QR
* Ánh xạ tuyến tính cho phép chuyển đổi một ma trận từ không gian n chiều sang không gian m chiều, với điều kiện n >= m
Trọng tâm: Phân tích mã QR bằng các phương pháp Gram-smith, Householder, Given sử dụng ánh xạ tuyến tính để giải quyết vấn đề xác định vectơ cột và ma trận Q
1.Phương pháp Gram-smith sử dụng ánh xạ tuyến tính để biến đổi ma trận đầu vào sao cho các vectơ trong ma trận đó trở thành đôi một vuông góc và có độ dài là 1 Kết quả của phương pháp này là một ma trận Q có các cột là những vectơ vuông góc có độ dài bằng 1 2.Phương pháp Householder cũng sử dụng ánh xạ tuyến tính để biến đổi ma trận đầu vào thành một ma trận tam giác trên Quá trình này tạo ra một ma trận Q thỏa mãn tính chất
Q.T = I, trong đó T là ma trận tam giác trên thu được sau khi biến đổi đầu vào và I là ma trận đơn vị
3.Phương pháp Given sử dụng ánh xạ tuyến tính để xác định kỹ thuật xoay Givens, giúp biến đổi ma trận đầu vào thành một ma trận tam giác trên hoặc tam giác dưới Quá trình này cho phép xác định ma trận Q với các cột tạo thành bởi các vectơ cột không thay đổi
=> Tóm lại, ánh xạ tuyến tính là một công cụ hữu ích trong phân tích mã QR bằng 2 trong
3 phương pháp Gram-smith, Householder, Given Nó cho phép biến đổi một ma trận đầu vào để thu được ma trận Q với các cột là các vectơ vuông góc hoặc thu được ma trận tam giác trên hoặc tam giác dưới.
Sử dụng phương pháp QR để tìm trị riêng của ma trận
Các công thức cần lưu ý:
] là ma trận 3 đường chéo, đối xứng
❖ Ta tính s1 bằng cách tìm trị riêng ma trận vuông 2x2 tạo bởi dòng thứ 2,3 và cột thứ 2, 3
❖ Ma trận trên có 2 giá trị riêng là μ1 = 2 và μ2 = 4
Ta phải chọn s1 là 1 trong 1 trị riêng gần với giá trị a3 = A33= 3
(ở đây chọn 2 hay 4 đều được)
❖ Sau khi có A 1 (i) ta tìm ma trận quay P2
❖ Từ dạng tổng quát của A k (i) ta sẽ có dạng của A 1 (i) là:
❖ Từ công thức sk và ck
❖ Ta có thể tính A3 (1) = P3A2 (1) nhưng không cần thiết
❖ Sau khi có P2 và P3, ta tìm ma trận A (2)
❖ Nhận xét nếu b2 (2) và b3 (2) đủ nhỏ thì có thể dừng lại, để tính toán các trị riêng
❖ Tiếp tục lặp lại các bước như trên
❖ Đầu tiên, ta tính s2 bằng cách tìm trị riêng ma trận vuông 2x2 tạo bởi dòng thứ 2,3 và cột thứ 2, 3 của ma trận A (2) vừa thu được
❖ Trị riêng của ma trận trên là 1
❖ Tính toán tương tự như trên 1 lần nữa ta sẽ được:
❖ Vì thấy b3 (2) = 0,030396964 đã đủ nhỏ, ta bắt đầu tính các giá trị riêng: λ 3 = a3 (3) + s1 + s2 = 1,586415
❖ Tiếp theo, từ ma trận A (3) ta bỏ đi hàng thứ 3 và cột thứ 3, rồi tính trị riêng của ma trận vừa thu được:
❖ Hai trị riêng của ma trận trên là
❖ Ta có 2 trị riêng còn lại của ma trận A đã cho là:
LẬP TRÌNH BẰNG PHẦN MỀM MATLAB
Phương pháp Gram-Schmidt
% Phan tich QR bang Gram-Schimidt
A=input(' Nhap ma tran A can phan tich ' );
Q(:, j) = v / R(j, j); end disp('ma tran A:'); disp(A); disp('ma tran Q:'); disp(Q); disp('ma tran R:'); disp(R);
Phép biến đổi Household
A = input('Nhap ma tran A can phan tich: ');
%tien hanh thuat toan householder for k = 1:min(m-1,n) x = R(k:m,k);
Qx = Qx * norm(x); u = x - Qx; u = u/norm(u);
Q = Q.'; disp('ma tran A:'); disp(A); disp('ma tran Q:'); disp(Q); disp('ma tran R:'); disp(R);