Algorithm to extract linearly dependent columns in a large scale [-1,1] matrix ( 10^5 by 10^6)

1 vue (au cours des 30 derniers jours)
I am trying to find an efficient algorithm for extracting linear independent collumns ( an old problem) but on a Very large matrix ( 10^5 rows, 10^6 columns) with all +-1 Real elements.... so , a dense matrix.
these matrcies are so large that I have no hope to put them in memory all at once, and then use the standard QR algorithm (or other real matrix decompositions that I have found) .
I know the choice of spanning collumns are not unique. I just want a subset "Q" of N colums of the Matrix A, such that rank(A) = N = rank(Q)
I have been looking for a clever random algorithm with bounded error.
  5 commentaires
Bruno Luong
Bruno Luong le 4 Jan 2023
Modifié(e) : Bruno Luong le 4 Jan 2023
SVD cannot find independent set of columns, QR does.
Do not use Gram Schmidt, it is numerically unstable. Use Housholder, and Q-less QR algorithm with permutation, until the projection is numerically 0.
But still storing R required few hundred Gb. It is doable on HD but it will take very long to compute.

Connectez-vous pour commenter.

Réponses (1)

Joss Knight
Joss Knight le 7 Jan 2023
You might consider using distributed arrays on an HPC cluster.


En savoir plus sur Descriptive Statistics dans Help Center et File Exchange


Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by