Próbuję wygenerować serię liczb symulować Levy Spacer w R. Obecnie używam następujący kod:Levy Spacer symulacja w 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)
}
kod działa zgodnie z oczekiwaniami i jestem w stanie generować liczby zgodnie z moimi wymaganiami. Poniższy rysunek pokazuje na takim Levy Spacer:
Poniższy histogram potwierdza, że liczby generowane (czyli f) rzeczywiście należą do prawa energetycznego:
Moje pytanie jest następujące: Wygenerowane długości kroków (tj. F) są dość duże. Czy mogę zmodyfikować kod tak, aby długość kroku mieściła się tylko w granicach [fmin, fmax]?
P.S. Celowo nie wektoryzowałem kodu.
Dzięki Ferdinand. Nadal muszę dowiedzieć się, dlaczego działa. – DotPi