@Matlab: No es compatible con la precisión cuádruple.
Multiprecision Computing Toolbox for MATLAB proporciona rutinas para cálculos de álgebra lineal con precisión arbitraria.
Cubre muchos otros campos: matemática básica, métodos numéricos (integración, oda, optimización), funciones especiales y análisis de datos básicos.
Además, permite ejecutar los programas existentes de Matlab con precisión arbitraria con modificaciones mínimas (o sin ninguna) en el código fuente.
Actualización (27 de marzo de 2013): Ahora caja de herramientas también incluye el modo de precisión cuádruple rápida, que es cerca de 100 veces más rápido en comparación con otras alternativas. Ver Fast Quadruple Precision Computations in MATLAB para comparaciones y detalles.
críticos sobre las alternativas sugeridas:
Symbolic Math Toolbox (MATLAB) de Mathworks dirigidos a cálculos simbólicos. Como tal, carece de muchas características esenciales necesarias para la computación numérica de precisión arbitraria.
Por ejemplo, ni siquiera es posible comparar dos números vpa()
ya que son de tipo "simbólico" (por diseño). Esta única limitación descarta el 99% de los algoritmos del análisis numérico.
Otras funciones básicas de álgebra lineal que faltan en Symbolic Math Toolbox son: norm, cond, max, min, sort, lu, qr, chol, schur
.
Gratis Multiple Precision Toolbox (MATLAB).
Además de ser extremadamente lento (realiza la conversión número a cadena de operandos en cada operación aritmética: +, -, ...
) y carece de la funcionalidad esencial (eig, det, cond, \, ...
), da resultados incorrectos en las funciones que tiene.
E.g. los resultados incorrectos entregados por la función svd
hicieron que mi investigación careciera de sentido en algún momento y el error fue doloroso de encontrar.
mpmath (Python)
Principalmente dirigido a las funciones de computación especial (familia hipergeométrica en particular). Y no tiene soporte para algoritmos numéricos más o menos avanzados. Tiene muy poco soporte para matrices. Aunque parece tener un logaritmo de matriz que está buscando en la última versión.
En realidad todos estos inconvenientes me empujó a desarrollar mi propia extensión para MATLAB para permitir que la computación con precisión arbitraria (en lo al principio - Multiprecision Computing Toolbox for MATLAB). Solo lo necesito para mi trabajo.
Está en desarrollo activo (pero ya corrige todos los problemas enumerados con otras alternativas) - Agradecería cualquier comentario.
Pruebe esto: [http://code.google.com/p/mpmath/] (http://code.google.com/p/mpmath/) –
Olvidé mencionarlo antes, mpmath no es compatible con múltiples -diagonalización de precisión y funciones de matriz. Aunque hace casi todo lo demás. –
@BenCriger - Por lo que vale, creo que el problema subyacente en el caso de numpy es que la mayoría de las implementaciones BLAS no admiten la precisión de flotación de 128 bits. –