如何创建一个从Lua中的LEVY分布返回随机数的函数?

时间:2014-06-18 06:58:52

标签: random lua distribution

正如标题所说,我可以在Lua中制作一个简单的函数,根据 Levy概率密度函数绘制一个随机数?

我计划使用Levy-flight更有效地在搜索空间中进行粒子探索(大步)。

3 个答案:

答案 0 :(得分:1)

rejection sampling [来自用户的回答:lhf]

的图表上使用Lévy PDF

代码示例:

function rejectionSampling()
repeat 
    local x = random.uniform(1)
    local y = random.uniform(1.5)       -- PDF maximum peak at x=1/3 --> y~1.45
    fx = math.sqrt(1/(2*math.pi))*math.exp(-1/(2*x))/(x^1.5)  --PDF
until y < fx

return x
end

答案 1 :(得分:0)

rejection sampling

的图表上使用Lévy PDF

答案 2 :(得分:0)

一个解决方案可能是:

  1. John Nolan RobustAnalysis
  2. 讲课
  3. 购买/试用C库,这里是documentation
  4. 使用luaJit ffi库并将c函数和数据结构映射到lua。
  5. ......这并不难,但你需要时间。

    外面的lua(是的,我知道问题是关于lua ),但你可以尝试在lua和Wolfram Mathematica之间进行交互,稳定分布是built-in