@Matlab: Не поддерживает четырехмерную точность.
Multiprecision Computing Toolbox for MATLAB предлагает процедуры для вычислений линейной алгебры с произвольной точностью.
Он охватывает многие другие области - базовую математику, численные методы (интеграция, ode, оптимизацию), специальные функции и анализ основных данных.
Кроме того, он позволяет запускать существующие программы Matlab произвольной точностью с минимальными (или без каких-либо) модификациями исходного кода.
Update (27 марта 2013): Теперь набор инструментов также включает в себя режим точности быстрый четырехместный, что почти в 100 раз быстрее по сравнению с альтернативами. См. Fast Quadruple Precision Computations in MATLAB для сравнения и деталей.
Критика предложенных альтернативы:
Символический Math Toolbox (MATLAB) из Mathworks ориентирована на символьные вычисления. Как таковой, ему не хватает многих существенных функций, необходимых для произвольной точности численных вычислений.
Например, сравнивать цифры vpa()
не представляется возможным, так как они имеют «символический» тип (по дизайну). Это ограничение ограничивает 99% алгоритмов численного анализа.
Другие основные функции линейной алгебры, отсутствующие в Symbolic Math Toolbox: norm, cond, max, min, sort, lu, qr, chol, schur
.
Бесплатно Многоточечный набор инструментов (MATLAB).
Кроме того, что он чрезвычайно медленный (он выполняет преобразование чисел в строках в каждой арифметической операции: +, -, ...
) и не имеет существенной функциональности (eig, det, cond, \, ...
), он дает неправильные результаты в своих функциях.
Э.Г. неправильные результаты, полученные функцией svd
, сделали мое исследование бессмысленным в какой-то момент, и ошибка была болезненной для поиска.
mpmath (Python)
основном ориентирован на специальные функции вычисления (гипергеометрическое семейство, в частности). И не поддерживает более или менее продвинутых числовых алгоритмов. Имеет очень небольшую поддержку матриц. Хотя, похоже, есть логарифм матрицы, который вы ищете в последней версии.
На самом деле все эти недостатки подтолкнула меня разработать собственные расширения для MATLAB, чтобы включить его с помощью произвольной точности вычислений (именуемых в начале - Multiprecision Computing Toolbox for MATLAB). Мне просто нужно это для моей работы.
Он находится в активной разработке (но уже исправил все перечисленные проблемы с другими альтернативами). - Буду признателен за любые отзывы.
Попробуйте следующее: [http://code.google.com/p/mpmath/] (http://code.google.com/p/mpmath/) –
Я забыл упомянуть ранее, mpmath не поддерживает несколько -регулярная диагонализация и матричные функции. Тем не менее, это делает почти все остальное. –
@BenCriger - для чего это стоит, я думаю, что основная проблема в случае numpy состоит в том, что большинство реализаций BLAS не поддерживают 128-битную точность float. –