Dalam proyek perangkat lunak yang saya kerjakan, perhitungan tertentu jauh lebih mudah untuk matriks peringkat rendah yang padat. Beberapa contoh masalah melibatkan matriks peringkat rendah yang padat, tetapi mereka diberikan kepada saya secara penuh, bukan sebagai faktor, jadi saya harus memeriksa peringkat dan faktor matriks jika saya ingin mengambil keuntungan dari struktur peringkat rendah .
Matriks yang dimaksud biasanya sepenuhnya atau hampir sepenuhnya padat, dengan n berkisar dari seratus hingga beberapa ribu. Jika sebuah matriks memiliki peringkat rendah (katakanlah kurang dari 5 sampai 10), maka menghitung SVD dan menggunakannya membentuk faktorisasi peringkat rendah yang sepadan dengan usaha. Namun, jika matriksnya bukan peringkat rendah, maka upaya itu akan sia-sia.
Jadi saya ingin menemukan cara yang cepat dan cukup andal untuk menentukan apakah peringkatnya rendah atau tidak sebelum menginvestasikan upaya untuk melakukan faktorisasi SVD lengkap. Jika pada suatu saat menjadi jelas bahwa peringkat berada di atas cutoff, prosesnya dapat segera berhenti. Jika prosedur tersebut secara keliru menyatakan bahwa matriksnya berpangkat rendah ketika tidak, ini bukan masalah besar, karena saya masih akan melakukan SVD penuh untuk mengkonfirmasi peringkat rendah dan menemukan faktorisasi peringkat rendah.
Opsi yang saya pertimbangkan termasuk peringkat yang mengungkapkan LU atau faktorisasi QR diikuti oleh SVD lengkap sebagai cek. Apakah ada pendekatan lain yang harus saya pertimbangkan?