Lý do mà sử dụng LAPACK là gì


9

LAPACK 'QR thường xuyên lưu trữ Q dưới dạng phản xạ của Chủ nhà. Nó chia tỷ lệ vectơ phản xạ v với 1/v1 , vì vậy phần tử đầu tiên của kết quả trở thành 1 , vì vậy nó không phải được lưu trữ. Và nó sẽ lưu một riêng biệt τ vector, trong đó có các yếu tố quy mô cần thiết. Vì vậy, một ma trận phản xạ là như thế này:

H= =Tôi-τvvT,

trong đó v không được chuẩn hóa. Trong khi, trong sách giáo khoa, ma trận phản xạ là

H= =Tôi-2vvT,

trong đó v được chuẩn hóa.

Tại sao LAPACK chia tỷ lệ v với 1/v1 , thay vì bình thường hóa nó?

τv1Hτ2v2/v

(Lý do câu hỏi của tôi là tôi đang viết một thói quen QR và SVD, và tôi muốn biết lý do của quyết định này, cho dù tôi có cần tuân theo nó hay không)

Câu trả lời:


7

Đây là biến thể bị chặn của Householder-QR đang thúc đẩy thiết kế này. Nếu bạn xem trong cuốn sách của Golub và Van Loan (Ch 5.2 hoặc hơn), họ sẽ nói về cách lặp đi lặp lại của thuật toán với nhau bằng cách tích lũy các phản xạ riêng lẻ vào một phản xạ hạng k của dạng , trong đó cả và đều là ma trận "cao gầy" với kích thước . Thuật toán này thực hiện nhiều công việc hơn nhưng thực tế lại nhanh hơn vì nó rất giàu các lệnh gọi gemm (). Thật không may, nó là lãng phí trong lưu trữ do cần phải đại diện độc lập vàI+WYTWYn×kWY

Trong một bài báo sau (được trích dẫn bên dưới), Văn Loan mô tả cấu trúc dữ liệu "đối xứng" hiệu quả hơn, bộ phản xạ khối có dạng . Ở đây vẫn là , nhưng yêu cầu flop / lưu trữ để hình thành đã được loại bỏ bằng cách giới thiệu , một ma trận tam giác trên nhỏ . Mặc dù nhu cầu nhân với giới thiệu một lượng nhỏ công việc làm thêm, nhưng đó thường là một lợi ích ròng vì .I+YTYTYn×kWTk×kTk<<n

Trong LAPACK, thuật toán không bị chặn thực sự chỉ là một trường hợp giới hạn của thuật toán khối, tất cả đều tùy thuộc vào sự lựa chọn các ký hiệu (dẫn chúng ta đến , một phiên bản của Tam giác ).k1τ1×1T

Trích dẫn: Schreiber, Robert và Charles Van Loan. "Một đại diện WY hiệu quả lưu trữ cho các sản phẩm biến đổi Householder." Tạp chí SIAM về tính toán khoa học và thống kê 10.1 (1989): 53-57.


Cảm ơn câu trả lời! Tôi không thấy, mà chỉ là một -sized . Trong bài viết được trích dẫn, trong Thuật toán 5, là và là -2. Vì vậy, nó kết thúc như phiên bản sách giáo khoa, không phải là phiên bản LAPACK. Tôi có bỏ lỡ điều gì không? 1 × 1 T Y v Tτ1×1TYvT
geza

2

Bạn không phải lưu trữ , bạn có thể tính lại nó từ phần còn lại của vectơ. (Bạn có thể tính toán lại từ các mục khác trong phiên bản chuẩn hóa, nhưng rõ ràng đây là một tính toán không ổn định vì những phép trừ đó.)τv1

Trên thực tế, bạn có thể sử dụng lại phần tam giác dưới của để lưu trữ , để hệ số được tính toán hoàn toàn tại chỗ. Lapack quan tâm rất nhiều đến các phiên bản thuật toán tại chỗ này.Rv2,...vn


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.