//
///利用梯形法生成符合标准正态分布的累积函from Dain//
//
#include "iostream.h"
#include "fstream.h"
#include "math.h"
#include "errno.h"
const double PI=3.1415926;
double Normal(double z)
{
double temp;
temp=exp((-1)*z*z/2)/sqrt(2*PI);
return temp;
}
/***************************************************************/
/* 返回标准正态分布的累积函数,该分布的平均值为 0,标准偏差为 1。 */
/***************************************************************/
double NormSDist(const double z)
{
// this guards against overflow
if(z > 6) return 1;
if(z < -6) return 0;
static const double gamma = 0.231641900,
a1 = 0.319381530,
a2 = -0.356563782,
a3 = 1.781477973,
a4 = -1.821255978,
a5 = 1.330274429;
double k = 1.0 / (1 + fabs(z) * gamma);
double n = k * (a1 + k * (a2 + k * (a3 + k * (a4 + k * a5))));
n = 1 - Normal(z) * n;
if(z < 0)
正态分布累积函数及其反函数 C/C++
最新推荐文章于 2023-11-15 14:10:53 发布
本文介绍了如何使用C/C++编程实现标准正态分布的累积函数NormSDist和其逆函数normsinv。通过梯形法生成符合标准正态分布的累积函数,并提供代码示例,输出到Excel文件中。
摘要由CSDN通过智能技术生成