哪个java库计算累积标准正态分布函数?

发布于 2024-07-11 10:45:51 字数 97 浏览 12 评论 0原文

对于一个项目,我有一个带有公式的规范,我必须实施。 在这些公式中存在累积标准正态分布函数,它采用浮点数并输出概率。 该函数用 Φ 表示。 是否存在计算此函数的 Java 库?

For a project I have a specification with formulas, I have to implement. In these formulas a cumulative standard normal distribution function exists, that takes a float and outputs a probability. The function is symbolized by a Φ. Exists a Java-library, that computes this function?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

很糊涂小朋友 2024-07-18 10:45:51

Apache Commons - Math 有您正在寻找的东西。

更具体地说,请查看 NormalDistribution 类。

Apache Commons - Math has what you are looking for.

More specifically, check out the NormalDistribution class.

九歌凝 2024-07-18 10:45:51

如果您想要确切的代码,这个函数似乎与 OpenOffice Calc 中使用的函数相同(我对其进行了一些更改以使其在 java 中工作):

// returns the cumulative normal distribution function (CNDF)
// for a standard normal: N(0,1)
double CNDF(double x)
{
    int neg = (x < 0d) ? 1 : 0;
    if ( neg == 1) 
        x *= -1d;

    double k = (1d / ( 1d + 0.2316419 * x));
    double y = (((( 1.330274429 * k - 1.821255978) * k + 1.781477937) *
                   k - 0.356563782) * k + 0.319381530) * k;
    y = 1.0 - 0.398942280401 * Math.exp(-0.5 * x * x) * y;

    return (1d - neg) * y + neg * (1d - y);
}

在这里找到它: http://www.codeproject.com/Messages/2622967/Re-NORMSDIST-function.aspx

If you want the exact code, this one seems to be the same function used in OpenOffice Calc (I've made some changes for it to work in java):

// returns the cumulative normal distribution function (CNDF)
// for a standard normal: N(0,1)
double CNDF(double x)
{
    int neg = (x < 0d) ? 1 : 0;
    if ( neg == 1) 
        x *= -1d;

    double k = (1d / ( 1d + 0.2316419 * x));
    double y = (((( 1.330274429 * k - 1.821255978) * k + 1.781477937) *
                   k - 0.356563782) * k + 0.319381530) * k;
    y = 1.0 - 0.398942280401 * Math.exp(-0.5 * x * x) * y;

    return (1d - neg) * y + neg * (1d - y);
}

Found it here: http://www.codeproject.com/Messages/2622967/Re-NORMSDIST-function.aspx

川水往事 2024-07-18 10:45:51

一位同事建议使用 colt,就像他以前使用的那样。 此函数与参考文档中的示例结果完全相同。

A co-worker suggested colt, as he used it before. This function has exactly the result as the example in the reference document.

若水微香 2024-07-18 10:45:51

您可以使用幂级数公式,它只占用大约 10 行代码...例如参见 http://introcs.cs.princeton.edu/java/22library/Gaussian.java.html(函数Phi

You could use the power series formula, which only takes up about 10 lines of code... see for example http://introcs.cs.princeton.edu/java/22library/Gaussian.java.html (the function Phi)

隱形的亼 2024-07-18 10:45:51

SuanShu,Java 数值分析库,计算正态分布和许多其他统计分布。

SuanShu, a Java numerical analysis library, computes the normal distribution and many other statistical distributions.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文