2010-02-25 16 views
61

Necesito una biblioteca C# para tratar las matrices. Debe implementar descomposición de valores singulares, inversión de matriz, etc.Recomendación para la biblioteca de matrices C#

He usado CSML anteriormente, pero esto no implementa algunas de las características que necesito.

Algunas de las características son:
descomposición de valor singular
Matrix inversión
traza
Determinantes

Bibliotecas sugeridos (de respuestas)

(la mayoría de ellos implementar las características indicadas anteriormente)

+4

Podría ser útil mencionar las características que CSML no tiene que usted requiera. – Nick

+2

http://accord-framework.net/ Implementa operaciones de matriz como métodos de extensión del tipo 'double [,]'. –

Respuesta

27

Math.NET Numerics es muy agradable, si es compatible con las operaciones que desee. El Mathrid Iridium anterior todavía admite más opciones. Además, dnAnalytics es bastante agradable, pero ya no se está desarrollando. (Esto, así como Iridium, se combinan en Math.NET Numerics.)

En el aspecto comercial, hay algunas opciones muy buenas y sólidas. El Extreme Optimization Numerical Libraries funciona muy bien. La biblioteca Visual Numerics también funciona muy bien (aunque con una distribución basada en regalías ...).

+0

Iridium hará el truco. No podría usar la clase de matriz de Math.NET ya que es abstracta, por lo que necesitaba derivarla. derecho ? – jose

+1

Proporcionan implementaciones concretas, pero dado que Math.NET Numerics no está completo, algunas de las implementaciones aún no se han completado. –

+0

Hay dos clases concretas: Matrix m = nueva DenseMatrix (...) o nueva SparseMatrix (...) según sus necesidades. –

6

Creo que Math.NET tiene la mayoría de las funciones que menciona. Yuu puede querer mirarlo y ver si se ajusta a tus necesidades.

Puede echar un vistazo al Iridium samples para ver la sintaxis y el código de ejemplo.

2

Además de las bibliotecas mencionadas en otras publicaciones, puedo decir algunas palabras cálidas acerca de la biblioteca FinMath. Es una biblioteca bastante nueva, pero según mi experiencia tiene varias ventajas. Es muy fácil de usar esta biblioteca. En primer lugar, tiene solo un archivo ejecutable (* .dll) para los sistemas operativos de 32 bits y de 64 bits. En segundo lugar, se basa en la reconocida Intel Math Kernel Library y, por lo tanto, proporciona un muy buen rendimiento. La API administrada de .NET proporcionada por esta biblioteca también es muy extensa y flexible. Pero, es un software propietario y cuesta una cantidad considerable de dinero. También carece de alguna funcionalidad (por ejemplo, en comparación con NMath del software CenterSpace). De todos modos, vale la pena probarlo.

5

He estado usando ILNumerics mucho. También hice algunas contribuciones al proyecto. It by know es la única biblioteca que conozco, que no gasta la mitad del tiempo de CPU en GC para serious computations. Es rápido y maduro. Vea el completo feature list.

+1

+1 ILNumerics tiene todas las características de otras librerías. Pero es mucho más rápido. –

Cuestiones relacionadas