我想从给定形状和比例因子的威布尔分布中生成随机数。我使用了以下代码,但生成的值始终接近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/