TRƯỜNG ĐẠI HỌC QUỐC GIA TP.HCM TRUONG DAI HOC BACH KHOA BK TP.HCM Môn Học: Đại Số Tuyến Tính Giáo Viên Hướng Dẫn : Nguyễn Xuân Mỹ Đề Tài 5 : Nêu cơ sở lý thuyết của A=QR bằng ph
Trang 1
TRƯỜNG ĐẠI HỌC QUỐC GIA TP.HCM
TRUONG DAI HOC BACH KHOA
BK
TP.HCM
Môn Học: Đại Số Tuyến Tính
Giáo Viên Hướng Dẫn : Nguyễn Xuân Mỹ
Đề Tài 5 : Nêu cơ sở lý thuyết của A=QR bằng phương pháp quay Given.Viết chương trình dùng phân tích A=QR bằng phép quay Given Tìm các ứng
dụng của phân tích A=QR
m | Ch
ú
3 | 22127 | Nguyén Hoang | Quân
99
4 | 21144 Huynh Phat Phuc
Trang 2
6 | 22126 La Thi Truc Phươn
7 | 20141 Lé Van Phi
69
TP HO CHI MINH, NAM 2023
BAO CAO KET QUA LAM VIEC NHOM
phép quay
Given
thuật toán QR
211443 | Huynh Phat Phuc Lich str gidi
tinh phan tich
QR
221285 | Cao Thanh | Quyén | Lam phần code
3
2 g ứng dung cua phan tich QR
Trang 3
201410 Lê Văn Phi Tổng hợp báo
trình
hỗ trợ các bạn hoàn thành nhiệm vụ
MỤC LỤC
Phần 1 : Cơ sở lý thuyết của phân tích A=QR
Trang 4¬
Khái niệm phân tích A=QR, thuật toán QR
2.1 Dùng để tính bình phương nhỏ nhất tuyến tính
Phần 3y: Ứng dụng của matlab phân tích A=QR
Trang 53.2.2 Thuật toán phân tích A=QR của matlab
PHAN MO DAU
1.TINH CAP THIET CUA DE TAI
Phân tích A=QR có rất nhiều ứng dụng trong thực tế từ iệc nó làm nền tản của thuật toán QR, đến giải phương trình bình phương tối thiểu Nhưng do nhận thấy là ít người biết đến cũng như quan tâm về phân tích A=QR, nhóm
5 môn ĐẠI SỐ TUYỂN TÍNH lớp-L04 đã chọn đề tài “Nêu cơ sở lý thuyết của phân tích A=QR bằng phép quay Given Viết chương trình đúng phân tích A=QR bằng phép quay Given Tìm ứng dụng của phân tích A=QR” để làm rõ cơ sở
lý thuyết A=QR bằng phép quay Given cũng
Trang 6như khám phá các ứng dụng của phân tích A=QR đồng thời viết một ứng dụng để phân tích A=QR bằng phép quay Given trong trương trình matlab
2 ĐỐI TƯỢNG NGHIÊN CỨU: phân tích A=QR, phép quay Given, ứng dụng phân tích A=QR
3 PHẠM VI NGHIÊN CỨU
Không gian: Việt Nam
Thời gian: 2023
4 MỤC TIÊU NGHIÊN CỨU
Thứ nhất, nêu khái niệm phân tích A=QR, lịch
sử thuật toán QR, các phương pháp tính phân tích A=QR bao gồm các tính phân tích A=QR bằng phép quay Given
Thứ hai, nêu ứng dụng phân tích A=QR Thứ ba, viết ứng dụng phân tích A=QR bằng phép quay Given
5 PHƯƠNG PHÁP NGHIÊN CỨU
Đọc và phân tích lý thuyết cũng như thử nghiệm các viết chương trình bằng chương trình matlab
6.KẾT CẤU CỦA ĐỀ TÀI
Ngoài mục lục, phần mở đầu và kết luận, đề tài gồm 3 phần:
Trang 7Phần 1 : Cơ sở lý thuyết của phân tích A=QR bằng phép quay Given
Phần 2 : Ứng dụng của phân tích A=QR Phần 3 : Ứng dụng matlab phan tichsA=QR bằng phép quay Given
Phần 1 : Cơ sở lý thuyết của phân tích A=QR
bằng phép quay Given
1.1.Khái niệm phân tích A=QR, thuật toán QR 1.1.1.Khái niệm phân tích A=QR
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 phâ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 giá trị riêng cụ thể, thuật toán QR
Trang 8Các trường hợp
*Ma trận vuông:
- Mọi ma trận vuông thực A có thể được phân tích thành A=QR, trong đó Q là ma trận trực giao( các cột của nó là vector đơn vị trực giao nghĩa là Q'=Q*) và 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 khả nghịch, thì thừa số là duy nhất nếu chúng ta yêu cầu các phần tử đường chéo của
R là số dương
vuông phức, thì có một sự phân rã A=QR trong
đó Q là một ma trận đơn nhất (do đó Q”=Q')
- 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 chuẩn cho không gian cột của A Nói chung, k cột đầu tiền của Q tạo thành cơ sở trực chuẩn cho khoàn của k cột đầu tiền của cho bất kì 1 £ k £
n Thực tế là 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 sẽ có dạng tam giác của R
*Ma trận hình chữ nhật: R;
- Tổng quát hơn, chúng ta có thể nhân tử
ma trận phức m*n A, với mỏn, là tích của ma trận đơn nhất m*m Q là ma trận tam giác trên m*n R Vì (m-n) hàng dưới cùng của ma trận tam giác trên m*n bao gồm hoàn toàn 0, nó
Trang 9thường hữu ích để phân vùng R, hoặc cả R và Q
ma trận tam giác trên n*n, 0 là ma trận không (m-n) *n, Q; là m*(m-n) và Q; và Q; đều có một trực giao
- Gọi Q:R¡ là kẻ mỏng QR của thừa số hóa của A, đây là quá trình phân tích nhân tử QR giảm Nếu A có hạng n đầy đủ và chúng ta yêu cầu rằng các phần tử đường chéo của R: và Q¡
là duy nhất, nhưng nói chung Q; thì không Khi
đó R; bằng hệ số tam giác trên của phép nhân tích Choleski của A*A ( = A'*A nếu A là thực ) 1.1.2 Khái niệm thuật toán QR
Trong đại số tuyến tính, thuật toán QR lặp lại QR la một thuật toán giá trị riêng, tức là một thủ tục để tính toán các giá trị riêng và hiệu riêng của một ma trận
Lịch sử:
- Thuật toán QR có tiền than là thuật toán
LR, su dung phan tich LU thay vì phân tích QR Thuật Toán QR ổn địng hơn, vì vậy thuật toán
LR hiếm khi được sử dụng ngày nay Tuy nhiên,
nó có thể là một bước quan trọng trong sự phát triển của thuật toán QR
Trang 10- Thuật toán LR đucợ phát triển vào đầu những năm 1950 bởi Heinz Rutishauser, người làm việc tại thời điểm đó với tư cách là trợ lý nghiên cứu của Eduard Stiefel tại ETH Zurich Stiefel gợi ý rằng Rutishauser sử dụng chuỗi khoảnh khắc yj*A**x¿*k=0,1, (trong đó xạ và
Yo là các vector tùy ý) để tìm các giá trị riêng của A Rutishauser đã lấy một thuật toán của Alexander Aitken cho nhiệm vụ này và phát triển nó vào thuật toán chênh lệch thương số hoặc thuật toán qd Sau khi sắp xếp phép tính theo một hình dạng phù hợp, ông phát hiện ra rằng thuật toán qd thực chất là phép lặp Ac=L.Ux (phan tich LU), Aci=UxLk, duoc ap dung trên ma trận tam giác, từ đó thuật toán LR tuân theo
1.2 Các phương pháp tích phân tích QR 1.2.1 Tính bằng Gram-Schmidt process
- Trong toán học, đặc biệt là trong lĩnh vực đại số tuyến tính và giải tích số, quá trình Gram-Schmidt là một phương pháp trực chuẩn hóa một tập học các vector trong một không gian tích trong tiêu chuẩn Quá trình Gram- Schmidt xử lý một tập hợp vector hữu hạn và độc lập tuyến tính S= |v,, ,v,) vai k < n va tao
ra từ tập đã cho một tập vector trực giao
Trang 11S’ = lu,, ,u¿ị sinh ra không gian con k chiều của R" tương tự không gian sinh bởi tập
S
Áp dụn quá trình Gram-Schmidt vào các vector cột của một ma trạn với hạng cột đầy
đủ, ta có phép nhân rã QR to ( ma trận đó đucợ phân rã thành một ma trận trực giao và tam giác)
Vậy phân tích QR có thể được tính bằng Gram-Schmiidt
1.2.2 Tính bằng householder reflections Phản xạ Householder ( hay chuyển đổi Householder) là một phép biến đổi nhận một vector và phản ánh nó về một mặt phẳng hoặc siêu phẳng nào đó Chúng ta có thể sử dụng phép toán này để tính thừa số QR của a trận A m-by-n với m =n
Q có thể được sử dụng để phản nhs một vector theo các mà tất cả các tọa độ, trừ một tọa độ biến mất
Vậy phân tích QR cũng có thể tính bằng Householder reflections
1.2.3, Tính bằng phép quay Given Phân tích QR cũng có thể được tính bằng phép quay Given và đây cũng chính là đề tài của nhóm
Trang 12Biểu diễn
- Phép quay Given được biểu diễn bằng một ma trận có dạng
DO 2 N số TCễ o—Sö 00 216616 *s6:66:ÿ0¿ 2Sš 6Cš
có 2T cối 6 0 OS
Trong đó c=cosØ và s=sin Ø xuất hiện tại các giao điểm tại mỗi hàng và cột thứ ¡ và j, Nghĩa là, với ¡ ¿j cố định, các phần tử khác 0 của
ma trận Givens được cho bởi :
gi= B= Cc = cos k=i,j
8y = -By = S = SinØ # k=i,j
Bá = 1
- Tích Gi,j,Ø) x đại diện cho chuyển động ngược chiều kim đồng hồ của vector x trong mặt phẳng (i,j) của Ø radian, do đó có tên gọi là phép quay Givens
Tính toán, phân tích
- Các phần tử của ma trận quay để quay một vector ngược chiều kim đồng hồ một góc @ la:
cos@ —siné
[Qo] = sin8 cos@
- Khi mét ma tran xoay Givens, G(i,j,8) ta nhan được một ma trận khác ta được :
2,2
x,†+x
‡ —L “2_ 2, 2 Xf] CX, FG SX, |_| FG —| VXi†X;
fay *]=] 22% LÍ,
X} | SX, + CX, 0
12
Trang 13trận [A] thành tích của ma trận [Q] và ma trận [R] tức A=QR bằng cách làm cho các phần tử lần lượt bằng 0 cho đến khi có được ma trận tam giác trên
Phần 2 : Ứng dụng của phân tích A=QR 2.1 Dùng để tính bình phương nhỏ nhất tuyến tính Bình phương nhỏ nhất tuyến tính (títíS) là sự xấp xỉ bình phương nhỏ nhất của các hàm tuyến tính đối với dữ liệu Nó là một tập hợp các công thức để giải quyết các vấn đề thống kê liên quan đến hồi quy tuyến tính, bao gồm các biến thể cho phần dư thông thường (không trọng số), có trọng số và tổng quát(tương quan) Các phương pháp số cho bình phương nhỏ nhất tuyến tính bao gồm đảo ngược ma trận của các phương trình thông thường và các phương pháp phân tích trực giao
Ba công thức bình phương nhỏ nhất tuyến tính chính là :
- Binh phương nhỏ nhất thông thường(OtíS) là công cụ ước lượng phổ biến nhất Các ước tính OtíS thường được sử dụng để phân tích cá dữ liệu thực nghiệm và dữ liệu quan sát
- Bình phương nhỏ nhất có trọng số(WtíS) được sử dụng khi phương sai thay đổi có trong điều khoản sai số mô hình
- Bình phương nhỏ nhất tổng quát(GtíS) là một phần mở rộng của phương pháp OtS, cho phép ước tính hiệu quá của B khi phương sai thay đổi hoặc tương quan, hoặc cả hai đều có mặt trong các thuật ngữ sai số của mô hình, miễn là biết dạng phương sai thay đổi và tương quan, độc lập với dữ liệu Để xử lý phương sai thay đổi khi các thuật ngữ sai số không trung quan với nhau, GtíS giảm thiểu một lượng giá trị tương tự có trong số thành tổng các phần dư bình phương từ hồi quy OtíS, trong đó trọng số của thứ ¡ tỷ lệ nghịc với var(e i) Trường hợp đặc biệt này của GtíS được gọi là “ bình phương nhỏ nhất có trọng số”
Trang 14Thuật toán QR được phát triển vào cuối những năm 1950 bởi John GF Francis và Vera N.Kublanovskaya, hoạt động độc lập Ý tưởng
cơ bản là thực hiện phân rã QR, viết ma trận dưới dạng tích của ma trận trực giao và ma giận tam giác trên, nhân các thừa số theo thứ tự ngược và lặp lại
Một biến thể của thuật toán QR, thuật toán Golub-Kahan- Reinsch bắt đầu bằng việc giảm ma trận chung thành ma trận hai cạnh Biến thể này của thuật toán QR để tính toán các giá trị đơn lẻ lần đầu tiền đucợ mô tả bởi Golub & Kahan(1965)
Chương trình con tíAPACK DBDSOR thực hiện phương pháp lặp này với một số sửa đổi để giải quyết trường hợp các giá trị đơn lẻ rất nhỏ(Demmel & Kahan1990) Cùng với bước đầu tiên sử dụng phản xạ Householder và nếu thích hợp, phân tách QR, điều này tạo thành quy trình DGESVD để tính toán phân tách giá trị đơn lẻ Thuật Toán QR cũng có thể được thực hiện trong các chiều vô hạn với kết quả hội tụ tương ứng
Phần 3: Ứng dụng matlab phân tích A=QR bằng phép quay
Given 3.1 Giải thuật của ứng dụng:
Bước 1: Nhập ma trận A
Trang 15địa
Ara Vòng lặp chạy theo hướng mmữi Ba tên qua những phân tử inàu xanh
Amn
- Như hình trên ta chạy vòng lặp từ hàng h=2 đến hàng h=m từ cột k=1 đến cột k=n-1 từ trên xuống dưới, từ trái qua phải Trường hợp tại vị trí số hàng lớn hơn số cột hai đơn vị trở lên ta sẽ cho chạy từ cột k=1 đến k=n để tránh xét thiếu trường hợp, có thể xem ma trận dưới đây để rõ hơn :
a an a
8 822 833 Nếu chỉ dừng ở việc xét đên h-1 thi 8i 8s: 833 tai hang h=5 => k=S-1=4 => vòng lặp sẽ Asx3 = âj an ag chạy từ cột 1 đên cột4, điêu này SAT vỉ asi 83 a v ma trận của chúng ta chỉ có 3 cột, vậy để
61 862 63 cho đúng thỉ k phải chạy đến n=3
Bước 3 : Tìm ma trận B
- Gán : B bằng ma trận đơn vị cấp m Q bằn ma trận đơn vị cấp m
R=A
- Tại mỗi vị trí theo thứ tự của vòng lặp ta xét xem phần tử tại đó có bằng 0 chưa, nếu chưa thì ta tạo một ma trận P nhân với A để phần
tử lại đó bằng 0 P là ma trận vuông bậc m được tạo thành từ việc thay 4 phần tử cos(a), sin(a), -sin(a), cos(a) vào 4 vị trí thích hợp của
15
Trang 16phần tử có vị trí (h,k) của ma trận A, ta có :
=> i=k [ta kit v; da vao vi voi tị là phân tử năm trên đường
1 chéo có vị trí là (Ä„&)j
Bu=-sin(a)
B=cos(a)
Bu=cos(a)
Bu=sin(a)
Bu=cos(a)
Bước 4: Gán
- Brx=-sin(a)
~ Bu=cos(a)
- Buu=sin(a)
~ Biu=cos(a)
- R bằng B nhân R
-Q bằng B' nhân Q
Bước 5: Xuất ra màn hình phần ma trận Q và ma trận R
- Xuất ma trận trực giao Q chính là Q vừa tính
- Ma trận tam giác trên R chính là R vừa tính
3.2 CODE
3.2.1 Bài làm của nhóm
Trang 17
3.3 DEMO
KET tiUAN
Nhóm đã thành công trong việc hoàn thành các mục tiêu đề ra: Thứ nhất, nêu khái niệm phân tích A = QR, lịch sử thuật toán QR, cách phương pháp tính phân tích A = QR bao gòm cách tính phân tích A =
QR bằng phép quay Given ở phần 1
Thứ hai, nêu ứng dụng phân tích A = QR ở phần 2
Thứ ba, viết ứng dụng phân tích A = QR bằng phép quay Given và so sánh bài làm của nhóm với thuật toán chuẩn của matlab ở phần 3