Implementation of Matrix Division in Matalb
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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.
0 commentaires
Réponse acceptée
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.
0 commentaires
Plus de réponses (1)
Voir également
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!