Java 统计函数中的双底流(正态分布的CDF)

Java 统计函数中的双底流(正态分布的CDF),java,statistics,double,normal-distribution,underflow,Java,Statistics,Double,Normal Distribution,Underflow,我在Java项目中使用的是正态分布的CDF,但是当我计算非常小的区间的CDF时,我经常会遇到非常小的数字,这些距离平均值非常远。(例如,平均值为1000的正态分布的cdf(-10000.02,-10000.01),标准值为0.1)。这将导致double的下溢,因为64位double可以处理的最小数字仅为e-308左右。 我在谷歌上搜索了一下,但没有找到可以处理这个问题的软件包 import org.apache.commons.math3.distribution.NormalDistr

我在Java项目中使用的是正态分布的CDF,但是当我计算非常小的区间的CDF时,我经常会遇到非常小的数字,这些距离平均值非常远。(例如,平均值为1000的正态分布的cdf(-10000.02,-10000.01),标准值为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));
        }
    }
有什么想法吗? 谢谢


彭都

你能添加一些代码吗?!你能添加一些代码吗?!