我想生成一个具有指数密度函数的随机变量:
f(x)= e ^ x /(e - 1),0 <= x <= 1
我知道我可以使用一个统一的随机数生成器,使用反转方法来实现像(e ^ -x)这样的简单函数。但是,我不确定如何在上面给出的函数中使用它们。
有什么建议吗?
答案 0 :(得分:1)
Per Wolfram Alpha,从0
到a
的密度函数的积分是(e^a-1)/(e-1)
,它反转为y=log((e-1)*x+1)
。所以逆变换方法应该可以正常工作。
在更一般的情况下,积分没有平移或反演没有平移,随机抽样方法是最广泛适用的方法,用于在给定概率密度的情况下对随机变量进行采样。最容易理解和实现的是拒绝采样。在那之后,你会看到Metropolis-Hastings,它非常强大,但不一定是最容易理解的。
答案 1 :(得分:0)
第一步是将f(x)
从0
整合到x
以确定cumulative distribution function,调用此函数U
。当您(伪)随机选择一个数字时,将其放入此函数U
并找到满足此要求的x
。
您的功能似乎很简单,直接反转将起作用。如果您的功能更复杂,则必须使用Newton-Raphson method来解决给定x
的{{1}}。