【问题标题】:Java special math functions libraryJava 特殊数学函数库
【发布时间】:2013-04-21 13:58:08
【问题描述】:

我正在寻找一个 Java 库来计算 gamma、beta、erf、bessel 特殊函数(以及一些相关函数),以便包含在我们自己的公式解析器中。数值精度是首要任务——它是一个科学程序。并且它必须是开源的并且可以免费用于商业用途(如 Apache 和 BSD 许可证)。

我想我会很快找到像 JAMA 库这样的“经典”、“参考”实现是用于矩阵运算的,但到目前为止我还找不到。我们只需要特殊的函数评估,不需要任何额外的库特性。

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

然后我找到了柯尔特。看起来不错,但我不确定它是否经过开发人员和用户的正确测试(一些很少使用的代码可能是从有错误的地方复制的,等等)

任何建议将不胜感激。

【问题讨论】:

    标签: java math


    【解决方案1】:

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

    当然,如果您自己的产品的信誉受到威胁,您不应该只相信我的话。这里有两个想法可以让你自己感受一下正确性:

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

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

    【讨论】:

    • 感谢您的评论。事实上,我几乎已经准备好使用 Colt 库,并且需要一些真正的推荐。附言NRBook 是一部很棒的作品!
    猜你喜欢
    • 2022-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-08
    • 1970-01-01
    相关资源
    最近更新 更多