How to solve the problem Ax=b, when A is (14400,14400) and b (14400,1)?

2 visualizzazioni (ultimi 30 giorni)
When I try to solve this problem with x=A\b or rref a message saying "Out of memory" is shown.

Risposte (3)

Star Strider
Star Strider il 27 Gen 2015
You have not said what your matrices are. If they are sparse, consider one of the sparse matrix routines, such as lsqr.
  2 Commenti
Orlando Rojas
Orlando Rojas il 29 Gen 2015
Yes it's a spare matrix and I've tried lsqr, but still it won't work.
Star Strider
Star Strider il 29 Gen 2015
As John and Matz mention, your matrices do not seem to be so large as to cause the problem you are having. I suggest you put ‘A’ and ‘b’ in a .mat file, then use the Edit option in your original Question and the ‘paperclip’ icon to attach it there, so we can experiment with it to see what the problem might be.

Accedi per commentare.


John D'Errico
John D'Errico il 27 Gen 2015
This is not that huge of a problem.
If your matrix is sparse and you are not storing it as such (as matrices of that size are so frequently sparse on these problems) then why are you not using a sparse form?
Have you tried using an iterative solver? There are several of them to be found in MATLAB, LSQR for example.
Finally, make sure you have sufficient memory, AND you are using a current release of MATLAB, which will use 64 bit addressing.
Problems with 14k unknowns are simply not that difficult to solve anymore, so you need to explain more about what you are doing, and what you are doing wrong.

Matz Johansson Bergström
Matz Johansson Bergström il 27 Gen 2015
If A is full \ has to perform a Gaussian elimination. A is ~1.5GB in double precision and it seems that \ requires at least that amount of RAM during GE.
How much RAM do you have?

Categorie

Scopri di più su Sparse Matrices in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by