Implementation of Matrix Division in Matalb

1 vue (au cours des 30 derniers jours)
s m
s m le 20 Mai 2011
Hi, I am trying to solve a sparse linear system of more than 3 million equations(obtained from a Laplacian matrix). I tried iterative solvers like cgs, bicg, etc but matlab's matrix division takes less time then iterative solvers. Does anybody knows how matrix division is implemented in Matlab? Can you suggest me any fast solvers for my problem. I tried CUDA based libraries like CUSP, OpenNL, etc.

Réponse acceptée

Ivan van der Kroon
Ivan van der Kroon le 20 Mai 2011
Sleijpen and Van der Vorst 1996 estimate the computation costs of direct methods as N^2.3 with memory costs N^1.7, while iterative methods yield N^1.2 and N^1 respectively for N by N systems (tested for three-dimensional elliptic boundary-value problems).
Now direct methods always have some black-box and are generally not suited for large sparse matrices. I really cannot answer why your system gives you better division costs. However, I saved the following flowchart from one of my courses. It is on the last page of http://www.netlib.org/templates/templates.pdf .
For instance, cgs is for non symmetric matrices where the transpose is not available and you have little memory. If division is still faster and you find out why, let me know; strangely I find it really interesting.

Plus de réponses (1)

Andrew Newell
Andrew Newell le 20 Mai 2011
I think most of MATLAB's linear algebra is based on LAPACK (see MATLAB incorporates LAPACK ).
EDIT: But not general sparse systems, according to James. Maybe you could try ScaLAPACK.
  1 commentaire
James Tursa
James Tursa le 20 Mai 2011
Not the sparse solvers.

Connectez-vous pour commenter.

Catégories

En savoir plus sur GPU Computing dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by