У програмному проекті, над яким я працюю, певні обчислення значно простіші для щільних матриць низького рангу. Деякі проблемні випадки включають щільні матриці низького рангу, але вони мені надаються в повному обсязі, а не як фактори, тому мені доведеться перевірити рангову та факторну матрицю, якщо я хочу скористатись структурою низького рангу. .
Матриці, про які йдеться, як правило, повністю або майже повністю щільні, з n становлять від ста до кількох тисяч. Якщо матриця має низький ранг (скажімо, менше 5 - 10), то для обчислення SVD та використання його формують низькорозрядну факторизацію варто зусиль. Однак, якщо матриця не має низького рангу, тоді зусилля будуть витрачені даремно.
Таким чином, я хотів би знайти швидкий і досить надійний спосіб визначити, чи низький рівень чи ні, перш ніж вкладати зусилля, щоб зробити повну SVD-факторизацію. Якщо в будь-який момент стане зрозуміло, що ранг вище відрізаного, процес може негайно припинитися. Якщо процедура помилково оголошує матрицю низького рангу, якщо її немає, це не є величезною проблемою, оскільки я все ще буду робити повний SVD для підтвердження низького рангу та знаходження низького рангу.
Опції, які я розглядав, включають ранг, що виявляє LU або QR-факторизацію з подальшим повним SVD як перевірку. Чи є інші підходи, які я повинен розглянути?