Sistema de ecuaciones lineales en C ++?

Necesito resolver un sistema de ecuaciones lineales en mi progtwig. ¿Existe una biblioteca de álgebra lineal simple para C ++, preferiblemente compuesta de no más de unos pocos encabezados? He estado buscando durante casi una hora, y todas las que encontré requieren problemas con Linux, comstackción de DLL en MinGW, etc., etc. (Estoy usando Visual Studio 2008).

Creo que Eigen es lo que estás buscando.

http://eigen.tuxfamily.org/index.php?title=Main_Page

Es una biblioteca de solo encabezados y comstack en muchos comstackdores. Incluso utiliza ensamblaje exótico para matemáticas más rápidas.

Esta es la página que muestra la api de resolución lineal.

http://eigen.tuxfamily.org/dox-2.0/TutorialAdvancedLinearAlgebra.html

Tiene unos pocos solucionadores con una simple api.

Boost tiene algunas cosas básicas de álgebra lineal.

Puede utilizar los enlaces C ++ de LAPACK . Un rápido google subió este enlace a algunas bibliotecas LAPACK para Windows. Sin embargo, dependiendo de qué tan grandes sean sus sistemas, todo esto podría ser excesivo.

Soy un gran fan de Armadillo, pero su comstackdor puede ser un problema aquí de acuerdo al final de la página de descarga :

Windows

El desarrollo y las pruebas de Armadillo se han realizado hasta ahora principalmente en plataformas similares a UNIX, sin embargo, debe haber poco o ningún código específico de la plataforma. Mientras que las pruebas rudimentarias se realizaron en una máquina con Windows, los desarrolladores están interesados ​​en escuchar qué tan bien funciona el armadillo en pruebas más exhaustivas.

Si tiene problemas con el comstackdor ‘MS Visual C ++ 2008 Express Edition’ (debido a su compatibilidad incompleta con el estándar C ++), es posible que desee probar los siguientes comstackdores alternativos gratuitos:

  • Comstackdor de C ++ de Intel
  • GCC (parte de MinGW)
  • GCC (parte de CygWin)

Vale la pena probarlo ya que esta es una biblioteca bien designada (y en su mayoría con plantillas).

De lo contrario, tal vez intente Eigen2 que enumera su comstackdor como compatible.

Edit: En respuesta al comentario, Armadillo no requiere Lapack pero funciona mejor con él (y mejor aún con Blas sintonizado):

P: ¿Qué otras bibliotecas necesito para hacer un uso completo de Armadillo?
A: Armadillo puede funcionar sin bibliotecas externas. Sin embargo, se recomienda instalar las bibliotecas LAPACK y ATLAS para obtener una funcionalidad adicional. Armadillo utilizará rutinas ATLAS en lugar de LAPACK siempre que sea posible.

P: ¿Qué tan bien funcionará Armadillo sin LAPACK / ATLAS?
R: La funcionalidad básica estará disponible (p. Ej., Adición de matriz y multiplicación), pero no estará disponible la descomposición de elementos propios. La multiplicación de matrices (principalmente para matrices grandes) no será tan rápida.