Java特殊数学函数库

时间:2013-04-27 13:17:51

标签: java math

我正在寻找一个Java库来计算包含在我们自己的公式解析器中的gamma,beta,erf,bessel特殊函数(以及一些相关函数)。数字准确性是主要优先事项 - 它是一个科学计划。它必须是开源的,免费用于商业用途(如Apache和BSD许可证)。

我认为我会很快找到'经典',像JAMA库这样的'参考'实现是用于矩阵操作但是到目前为止我找不到。我们只需要特殊的功能评估,不需要任何额外的库功能。

我发现的第一个是 Apache Common Math ,但我发现beta函数的准确性很差: http://commons.apache.org/proper/commons-math/userguide/special.html

然后我找到 Colt 。它似乎很好,但我不确定它是否经过开发人员和用户的正确测试(一些很少使用的代码可能会从有错误的地方复制等)。

任何建议都将受到赞赏。

2 个答案:

答案 0 :(得分:3)

首先:不要被网页的自制外观和Colt库的旧发布日期(以及基于它的JET和JAS库)所欺骗。它已被用于无休止的研究项目,代码已经被数百名非常有才华的人所证实。

当然,如果您自己的产品的可信度受到威胁,您不应该只听我的话。以下是您可以自己感受正确性的两个想法:

  • 阅读源代码。 Colt的JavaDoc包含对发布数值方法的论文的引用。搜索引用这些论文的其他工作,并查看以后是否发现了所使用方法的问题。
  • 使用您信任的商业数字软件(例如Mathematica),系统地或随机地为您感兴趣的函数生成值,并将它们与Colt生成的值进行比较。如果你让这样的测试运行得足够长,你就会对数字的质量有一个很好的理解。

如果你真的不想使用Colt(我猜这是你的问题),我建议你自己从数字食谱书(http://www.nrbook.com)移植C / C ++代码。通常没有太多的采用必要,但你仍然需要考虑如何测试它。

答案 1 :(得分:0)

<强> Jtem:

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

来自柏林的Mathematik研究所,您可以获得多个不同功能的套餐。