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

1 view (last 30 days)
When I try to solve this problem with x=A\b or rref a message saying "Out of memory" is shown.

Answers (3)

Star Strider
Star Strider on 27 Jan 2015
You have not said what your matrices are. If they are sparse, consider one of the sparse matrix routines, such as lsqr.
  2 Comments
Orlando Rojas
Orlando Rojas on 29 Jan 2015
Yes it's a spare matrix and I've tried lsqr, but still it won't work.
Star Strider
Star Strider on 29 Jan 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.

Sign in to comment.


John D'Errico
John D'Errico on 27 Jan 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 on 27 Jan 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?

Categories

Find more on Strategy & Logic in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!