我想从给定形状和比例因子的威布尔分布中生成随机数。我使用了以下代码,但生成的值始终接近beta。如何更改数值范围?

public double weibull(double eta, double beta)
{
    RandomGenerator rg = new JDKRandomGenerator();
    WeibullDistribution g= new WeibullDistribution(rg, eta, beta, WeibullDistribution.DEFAULT_INVERSE_ABSOLUTE_ACCURACY);
    return g.sample();
}

最佳答案

如果这是Apache commons发行版中的WeibullDistribution,则您使用的构造函数的第二个和第三个参数分别是shape参数和scale参数。形状参数的值大于2左右将趋于使结果接近于比例参数。如果您不想这样做,请更改shape参数。

请注意,您不应在每次调用方法时都构造一个新的rg和新的WeibullDistribution对象。使这两个static都重新使用。

关于java - Java中具有Weibull分布的随机数生成,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30305852/

10-13 09:15