Библиотека специальных математических функций Java - программирование
Подтвердить что ты не робот

Библиотека специальных математических функций Java

Я ищу библиотеку Java для вычисления специальных функций гаммы, бета, erf, bessel (и некоторых связанных) для включения в наш собственный синтаксический анализатор формул. Цифровая точность - главный приоритет - это научная программа. И он должен быть открытым и бесплатным для коммерческого использования (например, лицензии Apache и BSD).

Я предположил, что быстро найду "классическую", "ссылочную" реализацию, такую ​​как библиотека JAMA, для матричных операций, но пока не могу найти. Нам нужна только специальная оценка функций и не нужны никакие дополнительные функции библиотеки.

Первое, что я нашел, это Apache Common Math, но я вижу ужасную точность для бета-функции: http://commons.apache.org/proper/commons-math/userguide/special.html.

Затем я нашел Colt. Кажется, это хорошо, но я не уверен, что он был правильно протестирован разработчиками и пользователями (некоторые редко используемые коды могут быть скопированы откуда-то с ошибками и т.д.).

Любые предложения будут оценены.

4b9b3361

Ответ 1

Прежде всего: не обманывайте себя домашним видом веб-страницы и старой датой выпуска библиотеки Colt (а также библиотеки JET и JAS, которые на ней основаны). Он использовался в бесконечных исследовательских проектах, и код был проверен сотнями очень талантливых людей.

Конечно, если на вас поставлено доверие к вашему собственному продукту, вы не должны просто взять слово за это. Вот две идеи, как вы могли сами почувствовать правильность:

  • Прочитайте исходный код. JavaDoc of Colt содержит ссылки на документы, в которых опубликованы численные методы. Найдите другую работу, которая ссылается на эти документы, и посмотрите, были ли обнаружены проблемы с используемым методом позже.
  • Используйте коммерческое числовое программное обеспечение, которому вы доверяете (например, Mathematica), генерируете значения для интересующих вас системных или случайных функций и сравнивайте их со значениями, генерируемыми Colt. Если вы дадите такой пробный прогон достаточно долго, вы получите довольно хорошее представление о качестве номеров.

Если вы действительно не хотите использовать Colt (на мой взгляд, это ваш вопрос), я предлагаю портировать код C/С++ из книги числовых рецептов (http://www.nrbook.com). Обычно не требуется слишком много усыновления, но вам все равно нужно подумать о том, как вы хотите протестировать его.

Ответ 2

Jtem:

http://www3.math.tu-berlin.de/jtem/downloads.html

Это из Института Берлинского математика, вы можете получить несколько пакетов для разных функций.