High dimension matrix algebra

Hi there,
I'm trying to solve a set of linear equations by using Matlab syntax '\'. This properly works for dimensions less than 100000-by-100000. But for higher orders it starts to produce an error regarding the lack of enough memory and for dimensions greater than one million it says maximum variable size is exceeded.
Please help me to see how can I tackle this problem. I have a 10000000-by-10000000 set of equations to solve.

 Risposta accettata

Jan
Jan il 16 Nov 2014

0 voti

To store a 10000000-by-10000000 matrix you need 800TB Memory - assuming that it is full. As a rule of thumb the double size of free memory is recommended.
Do you see the problem?

4 Commenti

I see the problem. but how do they tackle such issues in fluid dynamics? It usually happens in systems with small grid cells.
Does it make sense if the coefficient matrix is sparse?
Jan
Jan il 16 Nov 2014
Yes, Pouya, sparsity is the magic word here.
But Matlab doesn't even allow me to make a Matrix of zeros of that size!
Matt J
Matt J il 1 Feb 2015
That's what the sparse() command is for...so you don't have to allocate all the zeros occurring in your matrix.

Accedi per commentare.

Più risposte (1)

Matt J
Matt J il 16 Nov 2014

0 voti

You may have to use pcg() or some other iterative method.

2 Commenti

I can't workaround your suggestion because Matlab even doesn't allow me to use zeros for pre-allocating this space to the coefficient matrix.
Matt J
Matt J il 16 Nov 2014
Modificato: Matt J il 16 Nov 2014
This properly works for dimensions less than 100000-by-100000.
I'm pretty amazed you were able to get this to work on non-sparse matrices of that size. You must have a tonne of RAM.

Accedi per commentare.

Categorie

Prodotti

Richiesto:

il 16 Nov 2014

Commentato:

il 1 Feb 2015

Community Treasure Hunt

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

Start Hunting!

Translated by