1

我在我的 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));
        }
    }

有任何想法吗?谢谢!

杜鹏

4

0 回答 0