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

2 次查看(过去 30 天)
When I try to solve this problem with x=A\b or rref a message saying "Out of memory" is shown.

回答(3 个)

Star Strider
Star Strider 2015-1-27
You have not said what your matrices are. If they are sparse, consider one of the sparse matrix routines, such as lsqr.
  2 个评论
Star Strider
Star Strider 2015-1-29
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.

请先登录,再进行评论。


John D'Errico
John D'Errico 2015-1-27
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
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?

类别

Help CenterFile Exchange 中查找有关 Sparse Matrices 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by