Difference between revisions of "Solving sparse systems"

From Medusa: Coordinate Free Mehless Method implementation
Jump to: navigation, search
(Created page with "There are many methods available for solving sparse systems. We compare some of them here.")
 
Line 1: Line 1:
 
There are many methods available for solving sparse systems. We compare some of them here.
 
There are many methods available for solving sparse systems. We compare some of them here.
 +
 +
Mathematica has the following methods available (https://reference.wolfram.com/language/ref/LinearSolve.html#DetailsAndOptions)
 +
* direct: banded, cholesky, multifrontal (direct sparse LU)
 +
* iterative: Krylov
 +
 +
Matlab has the following methods:
 +
* direct: https://www.mathworks.com/help/matlab/ref/mldivide.html#bt42omx_head
 +
* iterative: https://www.mathworks.com/help/matlab/math/systems-of-linear-equations.html#brzoiix, including bicgstab, gmres
 +
 +
Eigen has the following methods: (https://eigen.tuxfamily.org/dox-devel/group__TopicSparseSystems.html)
 +
* direct: sparse LU
 +
* iterative: bicgstab, cg
 +
 +
Solving a simple sparse system $A x = b$ with $A = \begin{bmatrix} \ddots & \ddots & \ddots && \\ & 1 & 1 & 1 & \\ && \ddots & \ddots & \ddots$ and $b = \begin{bmatrix} 1 \\ \vdots \\ 1 \end{bmatrix}$ with dimension $n$
 +
has the following timings:

Revision as of 14:50, 15 March 2017

There are many methods available for solving sparse systems. We compare some of them here.

Mathematica has the following methods available (https://reference.wolfram.com/language/ref/LinearSolve.html#DetailsAndOptions)

  • direct: banded, cholesky, multifrontal (direct sparse LU)
  • iterative: Krylov

Matlab has the following methods:

Eigen has the following methods: (https://eigen.tuxfamily.org/dox-devel/group__TopicSparseSystems.html)

  • direct: sparse LU
  • iterative: bicgstab, cg

Solving a simple sparse system $A x = b$ with $A = \begin{bmatrix} \ddots & \ddots & \ddots && \\ & 1 & 1 & 1 & \\ && \ddots & \ddots & \ddots$ and $b = \begin{bmatrix} 1 \\ \vdots \\ 1 \end{bmatrix}$ with dimension $n$ has the following timings: