我正在尝试生成一系列数字来模拟 R 中的征费步行。目前我正在使用以下代码:
alpha=2
n=1000
x=rep(0,n)
y=rep(0,n)
for (i in 2:n){
theta=runif(1)*2*pi
f=runif(1)^(-1/alpha)
x[i]=x[i-1]+f*cos(theta)
y[i]=y[i-1]+f*sin(theta)
}
代码按预期工作,我能够根据我的要求生成数字。下图显示了这样的 Levy Walk:
以下直方图证实了生成的数字(即 f)实际上属于幂律:
我的问题如下:生成的步长(即 f)非常大。我可以修改代码以使步长仅在某个范围内 [fmin, fmax] 吗?
PS我故意没有对代码进行矢量化。