资源简介

该源代码采用C语言实现了误差函数erf(),其精度可根据参数ERF_N来调节(默认100),并且由于使用单次循环同时累加和累乘,因而避免了调用pow()函数,使得算法速度更快。该实现采用的是麦克劳林展开方法再逐项求积分。 另外,还包含了标准正态分布函数的计算函数norm_cdf(),该函数调用了erf()函数。

资源截图

代码片段和文件信息

#include 

#define ERF_PI 3.141592653589793
#define ERF_N 100


double erf(double x)////erf(x) = the cumulation of { 2/sqrt(pi)*exp(-z*z) } from 0 to x; //error function
{ // 2/sqrt(pi) * { ∑[(-1)^n / n! * x^(2n+1)/(2n+1)] + x }
double res = x;
double factorial = 1; //n!
double x_pow = x;
int one

评论

共有 条评论