Trong một dự án phần mềm mà tôi đang làm việc, một số tính toán nhất định dễ dàng hơn rất nhiều cho các ma trận thứ hạng thấp dày đặc. Một số trường hợp vấn đề liên quan đến ma trận thứ hạng thấp dày đặc, nhưng chúng được trao cho tôi đầy đủ, chứ không phải là các yếu tố, vì vậy tôi sẽ phải kiểm tra thứ hạng và yếu tố ma trận nếu tôi muốn tận dụng cấu trúc xếp hạng thấp .
Các ma trận trong câu hỏi thường dày đặc hoặc gần như hoàn toàn dày đặc, với n từ một trăm đến vài nghìn. Nếu một ma trận có thứ hạng thấp (giả sử dưới 5 đến 10), thì việc tính toán SVD và sử dụng nó tạo thành một hệ số thứ hạng thấp là đáng để nỗ lực. Tuy nhiên, nếu ma trận không có thứ hạng thấp, thì nỗ lực sẽ bị lãng phí.
Do đó, tôi muốn tìm một cách nhanh chóng và hợp lý đáng tin cậy để xác định xem thứ hạng có thấp hay không trước khi đầu tư nỗ lực để thực hiện một nhân tố SVD đầy đủ. Nếu tại bất kỳ thời điểm nào, rõ ràng thứ hạng nằm trên ngưỡng, quá trình có thể dừng lại ngay lập tức. Nếu thủ tục tuyên bố nhầm ma trận là thứ hạng thấp khi không, thì đây không phải là vấn đề lớn, vì tôi vẫn đang thực hiện một SVD đầy đủ để xác nhận thứ hạng thấp và tìm ra yếu tố xếp hạng thấp.
Các tùy chọn mà tôi đã xem xét bao gồm xếp hạng tiết lộ hệ số LU hoặc QR theo sau là một SVD đầy đủ làm kiểm tra. Có những cách tiếp cận khác mà tôi nên xem xét?