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

3 vues (au cours des 30 derniers jours)
Wayne Shanks le 3 Jan 2023
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.
Cheers
##### 5 commentairesAfficher 3 commentaires plus anciensMasquer 3 commentaires plus anciens
Wayne Shanks le 4 Jan 2023
I store these matricies as blocks of binary files, When I load them into memory to process , I convert the [0,1] bts to [-1,1] single floats
I am starting to read some articles on "out of core SVD" algorithms,
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 le 7 Jan 2023
You might consider using distributed arrays on an HPC cluster.
##### 0 commentairesAfficher -2 commentaires plus anciensMasquer -2 commentaires plus anciens

Connectez-vous pour commenter.

### Catégories

En savoir plus sur Linear Algebra 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