Solving large linear systems, Ax = b

4 views (last 30 days)
Peter
Peter on 22 Apr 2011
I'm working on a finite difference program, and need to solve Ax = b, where A is of dimension N^2 x N^2 and b is N^2x1. I'm working in the realm of N = 500, but I'd like to boost capabilities to N >= 1000 (which I can do already, but is a bit slow). A is very sparse I'm currently using mldivide to solve the system. However, I understand that iterative methods are more ideal for large sparse matrices - yet it seems that mldivide is if anything better (at least for N~ 500). Can anyone point me in the right direction for what algorithms for iterative methods use? I do not think I can use the conjugate gradient method, as the matrix I set up is not symmetric? Also, it seems that these methods are all dependent on generating a preconditioner; what is the best way to do that? I tried ilu, but that is a bit slow. In general, does anyone have a rough idea of the performance limits of a 64bit mac, 3.06 Ghz core 2 duo (how large of a system, how fast, etc)? Thanks
  1 Comment
Peter
Peter on 22 Apr 2011
To clarify, what is the best way to invert a 1e6 x 1e6 sparse system. mldivide seems to be able to do so in ~ 2 min. Is there a faster way?

Sign in to comment.

Answers (1)

Matt Fig
Matt Fig on 23 Apr 2011
I recommend you read this whole post, and pay particular attention to the comments by Tim Davis at the end. He co-wrote some of the SPARSE routines in MATLAB.

Categories

Find more on Sparse Matrices 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!