@ Matlab: не поддерживает четверную точность.
Multiprecision Computing Toolbox для MATLAB предоставляет процедуры для вычислений линейной алгебры с произвольной точностью.
Он охватывает многие другие области - базовую математику, численные методы (интеграция, Ода, оптимизация), специальные функции и анализ основных данных.
Кроме того, он позволяет запускать существующие программы Matlab с произвольной точностью с минимальными (или без каких-либо) модификациями исходного кода.
Обновление (27 марта 2013 г.) : теперь набор инструментов также включает режим быстрой четверной точности , что почти в 100 раз быстрее по сравнению с альтернативами. См. Быстрые четырехкратные прецизионные вычисления в MATLAB для сравнений и деталей.
Критика предложенных альтернатив:
Symbolic 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 для MATLAB ). Мне просто нужно это для моей работы.
Он находится в стадии активной разработки (но уже исправляет все перечисленные проблемы с другими альтернативами) - буду признателен за любые отзывы.