2010-02-27 3 views
7

Каковы некоторые из лучших библиотек для решения больших разреженных итерационных (сопряженных градиентов, MINRES, GMRES и т. Д.) Решений линейной алгебры? Я часто кодировал свои собственные подпрограммы, но мне интересно узнать, какие «готовые» пакеты предпочитают люди. Я слышал о PETSc, TAUCS, IML ++ и некоторых других. Мне интересно, как они складываются, и что еще там. Мои предпочтения касаются простоты использования и свободного программного обеспечения.Общие разреженные библиотеки итерационных решателей

ответ

0

Я бы выбрал Microsoft Solver Foundation. Это бесплатно для дешевых даже для довольно больших проблем. Неограниченная версия - промышленная сила и основана на Gurobi и, конечно, не дешевая.

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

+1

Из вашей ссылки кажется, что Microsoft Solver Foundation представляет собой линейную и нелинейную библиотеку оптимизации, которая связана с числовой линейной алгеброй, но не является правильным инструментом для решения линейной системы 'Ax = b' для вектора' x 'учитывая разреженную матрицу' A' и вектор 'b'. – las3rjock

4

Вы также можете посмотреть на Trilinos http://trilinos.sandia.gov/

Он разработан какой-то большим программным ремесленника, используя современные методы проектирования .

Кроме того, изнутри Trilinos вы можете позвонить в PetsC, если хотите.

2

NIST имеет некоторое разреженное программное обеспечение линейной алгебры вы можете скачать здесь: http://math.nist.gov/sparselib++/ и здесь: http://math.nist.gov/spblas/

Я не использовал эти пакеты сам, но я слышал хорошие вещи о них.

+2

SparseLib ++ - это только редкая библиотека классов матриц. Соответствующая библиотека итеративного решателя - это IML ++ (http://math.nist.gov/iml++/), о котором упоминалось в вопросе. – las3rjock

2

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

UMFPACK представляет собой набор подпрограмм для решения несимметричные разреженных линейных систем , Ах = B, используя метод несимметричных MultiFrontal. Написано в ANSI/ISO C, с интерфейсом MATLAB (версия 6.0 и выше). Появляется как встроенная процедура (для lu, обратная косая черта, и косая черта) в MATLAB. Включает интерфейс MATLAB, C-вызываемый интерфейс и интерфейс Fortran, вызываемый . Обратите внимание, что «UMFPACK» - , произносимый в двух слогах «Umph Pack». Это не «You Em Ef Pack».

Я использую его для кода FEM.

+2

Спасибо, хотя я считаю, что UMFPACK - это прямой решатель (не итеративный решатель). – batty

+0

Отличная точка. – ccook

Смежные вопросы