gpt4 book ai didi

java - 使用 Java 计算正态分布

转载 作者:搜寻专家 更新时间:2023-11-01 01:00:53 25 4
gpt4 key购买 nike

编辑:

其实我意识到我需要的是X的值。让我说得更清楚。假设我知道概率 P = 0.95,因为我想使用两个标准差。我知道 P(-500 < x <500) 的范围,这意味着我知道 y 和 z ,我也知道均值和标准差。如果我想知道 x 的值是多少,我应该使用哪种方法。我找到了一个calculator做这样的事情但无法理解要使用哪个公式。

原始问题:

I want to calculate normal distribution probability of random variables using Java. Was not sure which formula to use to code to solve a problem like this. If I know the value of mean and Standard deviation and want to find the probability of being x's value between 2 certain values y and z (P(-500

谁能帮帮我?

最佳答案

您可以使用 error function , 可用在 org.apache.commons.math.special.Erf ,正如所讨论的herehere .

附录:@Brent Worden 的 answer 中提出的方法大大简化了此类问题的解决方案。作为一个具体的例子,下面的代码显示了如何解决 examples你指的是哪个。此外,我发现比较定义 here 很有帮助。执行cumulativeProbability()使用 Erf.erf .还要注意如何执行 inverseCumulativeProbability()概括了所需的迭代方法。

import org.apache.commons.math.MathException;
import org.apache.commons.math.distribution.NormalDistribution;
import org.apache.commons.math.distribution.NormalDistributionImpl;

/**
* @see http://stattrek.com/Tables/Normal.aspx#examples
* @see https://stackoverflow.com/questions/6353678
*/
public class CumulativeProbability {

private static NormalDistribution d;

public static void main(String[] args) throws MathException {
// Problem 1; µ = 1000; σ = 100
d = new NormalDistributionImpl(1000, 100);
System.out.println(d.cumulativeProbability(1200));
// Problem 2; µ = 50; σ = 10
d = new NormalDistributionImpl(50, 10);
System.out.println(d.inverseCumulativeProbability(0.9));
}
}

控制台:

0.977249868051820862.81551565546365

讨论:

问题 1. 在具有平均持续 1000 小时且标准差为 100 小时的正态分布生命周期的设备中,~97.7% 会在 1200 小时内失效。

问题 2。在拥有平均重复 50 次且标准差为 10 次重复的正态分布技能的人中,一个人可以超过 90% 的人群,重复 63 次。

关于java - 使用 Java 计算正态分布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6353678/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com