Solving large linear systems, Ax = b

6 次查看(过去 30 天)
Peter
Peter 2011-4-22
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 个评论
Peter
Peter 2011-4-22
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?

请先登录,再进行评论。

回答(1 个)

Matt Fig
Matt Fig 2011-4-23
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.

类别

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