0

我的点 x ∈ [0,R] 的密度是指数的: ρ(x)~e^x 我如何从那里采样 N 个点?

谢谢,

4

2 回答 2

1

使用反向采样:您生成均匀分布的值并将它们映射到分布的 cdf 的输出。

于 2013-10-10T02:13:37.347 回答
1

从表面上看你的要求,如果你想要一个 x ∈ [0,R] 呈指数增长的密度函数,累积分布函数结果是(exp(x) - 1) / (exp(R) - 1)。要通过反演生成此值,请将 CDF 设置为等于 aUniform(0,1)并求解x. 反转结果是:

ln(1 + (exp(R) - 1) * U)

其中 U 表示对 Uniform(0,1) PRNG 的调用。

如果您真正想要的是大多数概率人们所知的指数分布的截断形式,我们需要确定与截断点相对应的随机数的上限R。在这种情况下,反转是:

-ln(1 - [1 - exp(-lambda * R)] * U) / lambda

和以前一样,U 代表对 Uniform(0,1) PRNG 的调用。这将生成速率为 的指数lambda,最大截断为R

于 2013-10-10T23:25:06.653 回答