ในโครงการซอฟต์แวร์ที่ฉันกำลังดำเนินการการคำนวณบางอย่างง่ายขึ้นอย่างมากสำหรับเมทริกซ์ระดับต่ำที่หนาแน่น อินสแตนซ์ปัญหาบางอย่างเกี่ยวข้องกับเมทริกซ์อันดับต่ำหนาแน่น แต่พวกเขามอบให้ฉันเต็มแทนที่จะเป็นปัจจัยดังนั้นฉันจะต้องตรวจสอบอันดับและปัจจัยเมทริกซ์ถ้าฉันต้องการใช้ประโยชน์จากโครงสร้างระดับต่ำ .
โดยทั่วไปแล้วเมทริกซ์ในคำถามจะเต็มหรือเกือบจะหนาแน่นเกือบสมบูรณ์โดยมี n ตั้งแต่หนึ่งร้อยถึงไม่กี่พัน หากเมทริกซ์มีอันดับต่ำ (พูดน้อยกว่า 5 ถึง 10) การคำนวณ SVD และใช้รูปแบบการแยกตัวประกอบอันดับต่ำนั้นคุ้มค่ากับความพยายาม อย่างไรก็ตามหากเมทริกซ์ไม่ได้อยู่ในอันดับต่ำความพยายามก็จะสูญเปล่า
ดังนั้นฉันต้องการค้นหาวิธีที่รวดเร็วและเชื่อถือได้อย่างสมเหตุสมผลในการพิจารณาว่าอันดับอยู่ในระดับต่ำหรือไม่ก่อนที่จะลงทุนในการแยกตัวประกอบ SVD แบบเต็ม หาก ณ จุดใด ๆ เห็นได้ชัดว่าอันดับอยู่เหนือทางลัดกระบวนการสามารถหยุดได้ทันที หากโพรซีเดอร์แจ้งว่าเมทริกซ์อยู่ในระดับต่ำเมื่อไม่ผิดนี่ไม่ใช่ปัญหาใหญ่เพราะฉันยังคงทำ SVD แบบเต็มเพื่อยืนยันอันดับต่ำและค้นหาการแยกตัวประกอบต่ำ
ตัวเลือกที่ฉันถือว่ามีอันดับที่เปิดเผย LU หรือ QR ตัวประกอบตามด้วย SVD แบบเต็มเป็นเช็ค มีวิธีอื่นที่ฉันควรพิจารณาอีกหรือไม่