Không gian của một ma trận dày đặc hình chữ nhật


16

Cho ma trận dày đặc cách tốt nhất để tìm cơ sở không gian rỗng của nó trong phạm vi dung sai gì?ε

ARm×n,m>>n;max(m)100000
ϵ

Dựa trên cơ sở đó, sau đó tôi có thể nói rằng một số cols nhất định phụ thuộc tuyến tính trong không? Nói cách khác, có cơ sở không gian rỗng được tính toán, những cột nào của phải được loại bỏ để có được ma trận không tính toán?MộtϵA

Tài liệu tham khảo được đánh giá cao.

Câu trả lời:


12

Các phương pháp tiêu chuẩn để xác định không gian rỗng của ma trận là sử dụng phân tách QR hoặc SVD. Nếu độ chính xác là tối quan trọng, SVD được ưu tiên; phân tách QR nhanh hơn.

Sử dụng SVD, nếu , thì các cột của tương ứng với các giá trị số ít (nghĩa là các mục chéo nhỏ của ) tạo cơ sở cho không gian null. Dung sai có liên quan ở đây là những gì người ta coi là một giá trị số ít "nhỏ". Chẳng hạn, MATLAB có kích thước nhỏ là , trong đó có liên quan đến độ chính xác của máy (xem ở đây trong tài liệu của MATLAB ).A=UΣVHVΣεmax(m,n)εε

Sử dụng phân tách QR, nếu và thứ hạng của là , thì các cột cuối cùng của tạo nên khoảng trống của , giả sử rằng phân tách QR được tiết lộ thứ hạng. Để xác định , hãy tính số lượng mục trên đường chéo chính của có cường độ vượt quá dung sai (tương tự như mục được sử dụng trong phương pháp SVD).A r n - r Q A r RAT=QRArnrQArR

Đừng sử dụng phân rã LU. Trong số học chính xác, đó là một cách tiếp cận khả thi, nhưng với số học dấu phẩy động, việc tích lũy các lỗi số làm cho nó không chính xác.

Wikipedia bao gồm các chủ đề ở đây .


Geoff, nói về QR, giả sử tôi có sự phân tách, làm thế nào để tôi liên quan đến cơ sở không gian null và các cột trong ma trận gốc? Nói cách khác, tôi nên xóa những cột nào khỏi để thoát khỏi không gian rỗng? Vấn đề ở đây là làm việc với chính chứ không phải với sự phân hủy của nó. AAA
Alexander

Các thường trình tính toán phân tách QR thường bao gồm một tùy chọn để trả về một vectơ hoán vị cho biết cách các cột được hoán vị để có được hệ số QR. Các mục nhập cuối cùng của vectơ hoán vị đó sẽ tương ứng với các hàng của (các cột của ) nằm trong nullspace. Các mục đầu tiên của vectơ đó tương ứng với các cột của độc lập tuyến tính. Tôi không chắc ý của bạn là gì khi "thoát khỏi không gian rỗng". Bạn có nghĩa là bạn muốn loại bỏ các cột của để có được một ma trận không có nghĩa? A A T r A T AnrAATrATA
Geoff Oxberry

Vâng, ý tôi là thế Tôi sẽ xem xét hoán vị, cảm ơn.
Alexander

Đó là một câu hỏi khác nhau. Vậy thì bạn sẽ làm gì thay vào đó là tính toán phân hủy QR (hoặc SVD) của . Nếu bạn tính toán phân tách QR của , bạn có thể tính thứ hạng của như trong câu trả lời ở trên (không cần hoán đổi ma trận), và sau đó các mục nhập đầu tiên (trong đó là thứ hạng của ) của vectơ hoán vị tương ứng vào các cột độc lập . Loại thuật toán tương tự áp dụng cho SVD; nếu bạn có thể trả về một vectơ hoán vị cùng với sự phân tách, điều đó sẽ cung cấp thông tin cần thiết. A A r r A AAAArrAA
Geoff Oxberry

8

Nếu , như câu hỏi của bạn chỉ ra, bạn có thể lưu một số công việc bằng cách trước tiên chọn một bộ chỉ số của (giả sử) các hàng ngẫu nhiên và sử dụng hệ số nhân trực giao . (Hệ số QR là một trong đó là sqare và là hình chữ nhật của thứ hạng và các cột còn lại của bằng cách sử dụng hệ số QR được hoán vị sẽ tăng cường tính ổn định; sau đó phải tính toán chi tiết hơn công thức.)tôi p 5 n Một T I : = Q R Q R r n - r RmnIp5nAI:T=QRQRrnrR

Thông thường, điều này sẽ cung cấp cho bạn một thấp hơn nhiều chiều không gian con kéo dài bởi các cột của , cuối cùng cột của . Không gian con này chứa các không gian rỗng của . Bây giờ chọn khác, rời nhau thiết lập chỉ số ngẫu nhiên và tính toán Phân tích nhân QR của . Nhân không gian null kết quả ở bên trái với để có được cải thiện có thể có kích thước thậm chí thấp hơn. Lặp đi lặp lại cho đến khi kích thước của không còn giảm nữa. Sau đó, bạn có thể có không gian null chính xác và có thể kiểm tra bằng cách tính . Nếu điều này chưa đáng kể, hãy lặp lại với các hàng quan trọng nhất.n - r Q A ( A I : N ) T N N N A NNnrQA(AI:N)TNNNAN

Chỉnh sửa: Khi bạn có , bạn có thể tìm thấy một tập hợp tối đa gồm các cột độc lập tuyến tính của bằng hệ số nhân trực giao của với xoay vòng. Thật vậy, tập hợp của các chỉ số không được chọn làm pivots sẽ có thuộc tính này.J A N T = Q R JNJANT=QRJ


+1 cho một cách hiệu quả để xác định nullspace của ma trận lớn. Tôi sẽ phải nhớ tham khảo câu trả lời này sau này khi tôi cần.
Geoff Oxberry

Thật vậy, nghe có vẻ hợp lý, tuy nhiên ma trận của tôi phù hợp với 16 GB RAM, vì vậy tôi sẽ ở lại với matlab qr tiêu chuẩn.
Alexander

Giáo sư Neumaier, tôi đã quyết định thử nghiệm thuật toán đó, nhưng tôi không hiểu chính xác là gì và "tính toán hệ số QR của " nghĩa là gì? Bạn có thể vui lòng giải thích thêm một chút ( A I : N ) TN(AI:N)T
Alexander

Tôi chỉnh sửa câu trả lời của tôi một chút. được tính theo công thức của Geoff Oxberry. N
Arnold Neumaier

Cảm ơn bạn. Tôi đã thực hiện nó. Tuy nhiên, theo như tôi thấy, thuật toán này không cho phép xác định cho tôi một tập hợp các cột độc lập tuyến tính của (vì chúng tôi phân tách thay vì ), nhưng chỉ giúp ước tính nullspace cơ sở chính nó? A T I : A I :AAI:TAI:
Alexander
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.