2010-02-27 15 views
7

¿Cuáles son algunas de las mejores bibliotecas para la resolución de sistemas de álgebra lineal dispersa de gran tamaño (conjugado de gradiente, MINRES, GMRES, etc.)? A menudo he codificado mis propias rutinas, pero me interesa saber qué paquetes "listos para usar" prefieren. He oído hablar de PETSc, TAUCS, IML ++ y algunos otros. Me pregunto cómo se acumulan estas cosas, y qué más hay por ahí. Mi preferencia es por la facilidad de uso y el software disponible gratuitamente.Librerías de solución iterativa dispersas generales

Respuesta

0

Me gustaría ver la Fundación Solver de Microsoft. Es gratis, incluso para problemas bastante grandes. La versión ilimitada es resistencia industrial y está basada en Gurobi y, por supuesto, no es barata.

http://code.msdn.microsoft.com/solverfoundation

+1

De su enlace, parece que la Solver Foundation de Microsoft es una biblioteca de optimización lineal y no lineal, que está conectada al álgebra lineal numérica, pero no es la herramienta correcta para resolver el sistema lineal 'Ax = b' para el vector' x 'dado una matriz dispersa' A' y el vector 'b'. – las3rjock

4

También es posible que desee ver Trilinos http://trilinos.sandia.gov/

Está diseñado por algún gran artesano de software, utilizando modernas técnicas de diseño .

Además, desde dentro de Trilinos, puede llamar a PetsC si lo desea.

2

NIST tiene algún software de escasa Álgebra Lineal se puede descargar aquí: http://math.nist.gov/sparselib++/ y aquí: http://math.nist.gov/spblas/

No he utilizado esos paquetes a mí mismo, pero he oído cosas buenas sobre ellos.

+2

SparseLib ++ es solo una biblioteca de clases de matriz dispersa. La biblioteca de resolución iterativa relevante es IML ++ (http://math.nist.gov/iml++/), que se mencionó en la pregunta. – las3rjock

2

http://www.cise.ufl.edu/research/sparse/umfpack/

UMFPACK es un conjunto de rutinas para resolver asimétricas dispersas sistemas lineales, Ax = b, utilizando el método multifrontal asimétricas . Escrito en ANSI/ISO C, con una interfaz MATLAB (Versión 6.0 y posterior). Aparece como una rutina integrada (para lu, barra invertida, y barra diagonal) en MATLAB. Incluye una interfaz MATLAB, una interfaz C-invocable y una interfaz Fortran-callable . Tenga en cuenta que "UMFPACK" es pronunciado en dos sílabas, "Umph Pack". No es "You Em Ef Pack".

Lo estoy usando para el código FEM.

+2

Gracias, aunque creo que UMFPACK es un solucionador directo (no un solucionador iterativo). – batty

+0

Excelente punto. – ccook

Cuestiones relacionadas