Java 统计函数中的双底流(正态分布的CDF)
我在Java项目中使用的是正态分布的CDF,但是当我计算非常小的区间的CDF时,我经常会遇到非常小的数字,这些距离平均值非常远。(例如,平均值为1000的正态分布的cdf(-10000.02,-10000.01),标准值为0.1)。这将导致double的下溢,因为64位double可以处理的最小数字仅为e-308左右。 我在谷歌上搜索了一下,但没有找到可以处理这个问题的软件包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
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));
}
}
有什么想法吗?
谢谢
彭都你能添加一些代码吗?!你能添加一些代码吗?!