C# erf函数、erfc函数代码实现
2020-03-30 本文已影响0人
向祥祥
高斯误差函数是一个非基本函数,定义为


代码实现根据的公式

class NumeralCaculate
{
//erfc函数
public static double Erfc(double x)
{
return 1-Erf(x);
}
//erf函数
public static double Erf(double x)
{
double result = 0;
int index = 0;
do
{
index++;
} while (x / Math.Pow(10, index) > 1e-3);//设置计算精度
int maxIndex =(int) Math.Pow(10, index);
double deltaX = x / maxIndex;
for (int i = 0; i <=maxIndex; i++)
{
if (i > 0 && i<maxIndex)
{
result += 2 * Math.Exp(-Math.Pow(deltaX * i, 2));
continue;
}
else if (i == maxIndex)
{
result += Math.Exp(-Math.Pow(deltaX * i, 2));
continue;
}
else if(i==0){
result += Math.Exp(-Math.Pow(deltaX * i, 2));
continue;
}
}
return result*deltaX/Math.Pow(Math.PI,0.5);
}
}