java - library - common math 3
Bibliotecas de matriz de Java (5)
Algunas bibliotecas de Java para álgebra lineal son:
- Apache Commons Math: http://commons.apache.org/proper/commons-math/
- jeigen - un contenedor para eigen - https://github.com/hughperkins/jeigen (incluye características complejas y raramente encontradas como exponencial de matriz y logaritmo de matriz)
- jblas http://mikiobraun.github.io/jblas/ (también presenta funciones más complejas como la matriz exponencial, también muy rápida).
- Colt http://acs.lbl.gov/software/colt/
- JAMA http://math.nist.gov/javanumerics/jama/
- UJMP - http://sourceforge.net/projects/ujmp/
EDITAR quizás podamos extender esta lista cada vez que uno se encuentre y, usted sabe, el mundo sigue avanzando:
- ojAlgo - http://ojalgo.org/ tiene puntos de referencia prometedores
- Biblioteca de matriz de Java eficiente (EJML) - http://ejml.org
- ParallelColt - https://sites.google.com/site/piotrwendykier/software/parallelcolt
- la4j - http://la4j.org/
- MTJ - https://github.com/fommil/matrix-toolkits-java
- nd4j - https://nd4j.org/ permite elegir implementaciones nativas subyacentes como cuda o openBlas
Nota: Personalmente: uso Apache Commons Math y Colt en mi propio proyecto ( http://www.finmath.net ). Mientras que los matemáticos comunes se desarrollan activamente, descubrí que Colt es aún más rápido en algunas tareas (como la descomposición de valores propios). Por esa razón, uso algún tipo de envoltorio que me permite cambiar rápidamente la biblioteca subyacente (solo necesito algunas cosas como resolver sistemas de ecuaciones y descomposición de valores propios).
Me preguntaba si alguna de las bibliotecas de matriz bien conocidas para Java, como Colt o EJML, ¿realmente ofrecen una funcionalidad similar a la de MatLab? Por ejemplo, parece que no puedo encontrar en ninguna parte de la definición de su método simple de API para sumar o restar dos matrices / vectores entre sí, lo que parece ser la operación más común utilizada. ¿Me estoy perdiendo de algo?
Puedes usar este . Es muy siple y suministra operaciones matriciales básicas.
Puedes sumar / restar / multiplicar, etc. matrices y vectores en 2D.
También existe la biblioteca http://la4j.org/ que admite funciones de programación funcional como functores. Puede utilizar el método transform () con la función de orden manual.
La interfaz de COLT le proporciona un OP genérico: assign(matrix, function)
, que puede usar para agregar o restar matrices y vectores.
Como dice el javadocs para assign()
:
Asigna el resultado de una función a cada celda;
x[row,col] =function(x[row,col],y[row,col])
.
Entonces, al usar una función de suma como function
, puedes agregar matrices.
Prueba la biblioteca de matemáticas Apache Commons. El paquete org.apache.commons.math3.linear contiene las funciones que desea. Página de inicio