我在我的 Java 项目中使用正态分布的 CDF,但是当我计算非常远离平均值的非常小的区间的 CDF 时,我经常会遇到非常小的数字。(例如 cdf(-10000.02, -10000.01) 表示平均值为 1000,标准为 0.1 的正态分布)。这将导致 double 下溢,因为 64 位 double 可以处理的最小数字仅为 e-308 左右。我用谷歌搜索但未能找到可以处理此问题的软件包。
import org.apache.commons.math3.distribution.NormalDistribution;
public class NormalDistributionTest{
public static double CDF(double start, double end, double mean, double stdDev){
//NormalDistribution is from org.apache.commons.math3
NormalDistribution nd = new NormalDistribution(mean, stdDev);
double p = nd.probability(start, end);
return p;
}
static public void main(){
System.out.println(NormalDistributionTest.CDF(-12.04, -12.03,6.62, 0.41));
}
}
有任何想法吗?谢谢!
杜鹏