2010-02-27 13 views
7

Jakie są lepsze biblioteki rozwiązywania dużych, nielicznych iteracyjnych (sprzężonych gradientów, MINRES, GMRES itp.) Systemów algebry liniowej? Często kodowałem swoje własne procedury, ale chciałbym wiedzieć, które pakiety "z półki" ludzie wolą. Słyszałem o PETSc, TAUCS, IML ++ i kilku innych. Zastanawiam się, jak te stosy się liczą i co jeszcze tam jest. Preferuję łatwość użycia i swobodnie dostępne oprogramowanie.Ogólne rzadkie biblioteki solwerów iteracyjnych

Odpowiedz

0

Chciałbym sprawdzić Microsoft Solver Foundation. Za darmo nawet przy dużych problemach jest za darmo. Wersja nieograniczona jest siłą przemysłową i opiera się na Gurobi i oczywiście nie jest tania.

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

+1

Z linku wydaje się, że Microsoft Solver Foundation jest liniową i nieliniową biblioteką optymalizacji, która jest połączona z algebrą liniową numeryczną, ale nie jest odpowiednim narzędziem do rozwiązywania układu liniowego 'Ax = b' dla wektora' x 'podano rzadką macierz' A' i wektor 'b'. – las3rjock

4

Można również spojrzeć na Trilinos http://trilinos.sandia.gov/

Został on zaprojektowany przez jakiegoś wielkiego rzemieślnika oprogramowania, przy użyciu nowoczesnych technik projektowania .

Co więcej, z poziomu Trilinos możesz zadzwonić do PetsC, jeśli chcesz.

2

NIST ma jakiś rzadki oprogramowania algebry liniowej można pobrać tutaj: http://math.nist.gov/sparselib++/ i tutaj: http://math.nist.gov/spblas/

nie użyłem tych pakietów siebie, ale słyszałem wiele dobrych rzeczy o nich.

+2

SparseLib ++ to po prostu rzadka biblioteka klasy macierzy. Odpowiednią biblioteką solverów iteracyjnych jest IML ++ (http://math.nist.gov/iml++/), o której mowa w pytaniu. – las3rjock

2

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

UMFPACK jest zbiorem procedur dla rozwiązania niesymetryczne rzadki system liniowy Ax = b, przy użyciu metody niesymetryczne MultiFrontal. Napisany w ANSI/ISO C, z interfejsem MATLAB (wersja 6.0 i nowsza). Występuje jako wbudowana procedura (dla lu, ukośnika odwrotnego, i ukośnika w przód) w MATLAB. Zawiera interfejs z interfejsem MATLAB, interfejs C-Callable i interfejs oparty na języku Fortran. Zauważ, że "UMFPACK" to wymawiane w dwóch sylabach: "Umph Pack". To nie jest "You Em Ef Pack".

Używam go dla kodu MES.

+2

Dzięki, chociaż uważam, że UMFPACK jest bezpośrednim solver (nie jest to solwer iteracyjny). – batty

+0

Doskonały punkt. – ccook