Если , как показывает ваш вопрос, вы можете сохранить некоторую работу, сначала выбрав набор индексов из (скажем) случайных строк и используя ортогональную факторизацию . (QR-факторизация - это та, где - это квадрат, а - прямоугольник с рангом , а оставшиеся столбцы в равны нулю. Использование перестановочной QR-факторизации повысит стабильность; перестановка должна быть затем учтена более подробно. рецепт приготовления.)m≫nIp≈5nATI:=QRQRrn−rR
Как правило, это даст вам гораздо ниже мерное подпространство , натянутое на столбцы , последние столбцов . Это подпространство содержит нулевое пространство . Теперь выбрать другой, непересекающийся случайный набор индексов и вычислить QR разложение . Умножьте полученное нулевое пространство слева на чтобы получить улучшенное возможно, даже меньшего размера. Итерируйте, пока размерность больше не уменьшится. Тогда вы , вероятно, правильное пространство нуля и можете проверить путем вычисления A N . Если это еще не незначительно, выполните дальнейшие итерации с наиболее значимыми строками.n - r Q A ( A I : N ) T N N NNn−rQA(AI:N)TNNNAN
Изменить: Как только у вас есть , вы можете найти максимальное множество J линейно независимых столбцов A путем ортогональной факторизации N T = Q R с поворотом. Действительно, множество J индексов, не выбранных в качестве опорных точек, будет обладать этим свойством.NJANT=QRJ