diff --git a/src/main/java/me/hatter/math/NormalDistribution.java b/src/main/java/me/hatter/math/NormalDistribution.java index 41b08fc..25a5fea 100644 --- a/src/main/java/me/hatter/math/NormalDistribution.java +++ b/src/main/java/me/hatter/math/NormalDistribution.java @@ -30,16 +30,17 @@ public class NormalDistribution { } public static BigDecimal nd(BigDecimal mu, BigDecimal sigma, BigDecimal x) { - // \frac{1}{\sigma \times \sqrt{2\times \pi}} + // p_a=\frac{1}{\sigma \times \sqrt{2\times \pi}} BigDecimal pa = BigDecimal.ONE.divide( sigma.multiply(MathUtil.sqrt(BigDecimal.valueOf(2).multiply(MathUtil.PI), 100)) , 100, RoundingMode.HALF_UP ); - // \frac{(x-\mu)^2}{2\times \sigma^2} + // p_b=\frac{(x-\mu)^2}{2\times \sigma^2} BigDecimal pb = x.subtract(mu).pow(2).divide( BigDecimal.valueOf(2).multiply(sigma.pow(2)) , 100, RoundingMode.HALF_UP ); + // f(x)=p_a\times e^{-p_b} return pa.multiply(MathUtil.pow(MathUtil.E, BigDecimal.ZERO.subtract(pb))) .setScale(100, RoundingMode.HALF_UP); }