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.
0 件のコメント
回答 (3 件)
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
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
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
2015 年 1 月 27 日
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?
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!