正态分布累积函数及其反函数 C/C++

/////////////////////////////////////////////////////////////////////////////////////////利用梯形法生成符合标准正态分布的累积函from Dain////////////////////////////////////////////////////////////////////////////////
摘要由CSDN通过智能技术生成
//
///利用梯形法生成符合标准正态分布的累积函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)
  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值