您的位置:首页 > 编程语言 > C语言/C++

c/c++/c# 快速计算 Cumulative Normal Distribution 正态累积函数CDF

2016-09-05 12:01 1881 查看
链接:

http://stackoverflow.com/questions/2328258/cumulative-normal-distribution-function-in-c-c

http://www.johndcook.com/blog/cpp_phi/

个人使用的是如下的代码:

static double CND(double d)
{
const double       A1 = 0.31938153;
const double       A2 = -0.356563782;
const double       A3 = 1.781477937;
const double       A4 = -1.821255978;
const double       A5 = 1.330274429;
const double RSQRT2PI = 0.39894228040143267793994605993438;

double
K = 1.0 / (1.0 + 0.2316419 * fabs(d));

double
cnd = RSQRT2PI * exp(- 0.5 * d * d) *
(K * (A1 + K * (A2 + K * (A3 + K * (A4 + K * A5)))));

if (d > 0)
cnd = 1.0 - cnd;

return cnd;
}


此函数版权属于NVIDIA
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++ cdf 正态分布