如何调整以下 netlogo 代码,使其实际执行相关的随机游走

How to tweak the following netlogo code so that it actually executes a correlated random walk

考虑以下用于 NetLogo 中相关随机游动的代码。它分别从包裹的 Cauchy 和 weibull 分布中获取随机转角和随机步长,并执行相关的随机游走。

turtles-own [ orient step ]

  
to-report turning-angle-range [ #min #max ] 
 report #min + random-float ( #max - #min ) 

end 

to-report turning-angles-dist [ #correlation #mean-turning-angle] 

let turning-angle ( ( 1 - #correlation ^ 2) / ( 2 * 180 * ( 1 + (#correlation ^ 2 ) - 2 * #correlation * cos ( ( turning-angle-range 0 180 ) - #mean-turning-angle ) ) ) ) 

 report turning-angle 

end  

to-report weibull-dist [ #shape #scale #mean-step-length ] 

let mean-step-length ( ( #shape / #scale ) * ( ( #mean-step-length / #scale ) ^ ( #shape - 1 ) ) * exp ( ( #mean-step-length / #scale ) ^ ( #shape ) ) ) 

report mean-step-length 

end  

     
to Correlated-Random-Walk 

 ask turtles [

  pen-down

  set orient turning-angles-dist corr-eff mean-turn-angle 

set heading orient 

set step weibull-dist 2 10 mean-move-length 

  fd step 

] 

tick 

end 

我现在遇到的问题是,相关的随机游走实际上并没有按照它应该的方式发生。海龟只是在世界各地以 180 度垂直线移动。我猜测应该在每个滴答处选择的随机角度和步长没有发生或没有按照它们应该的方式进入步行程序。请帮忙。

  1. 当你粘贴一堆代码时,确保它在复制和粘贴后运行。
  2. 问题和你想的完全不一样。要看到这一点,请将您的 Correlated-Random-Walk 替换为以下内容:

.

to go
  ask turtles [
    pen-down ;but move this to setup
    Correlated-Random-Walk
  ]
  tick
end

to Correlated-Random-Walk 
  set heading heading + one-of [-1 1] * 10000 * turning-angles-dist corr-eff mean-turn-angle 
  set step weibull-dist 2 10 mean-move-length 
  fd 50 * step 
end 

唯一的变化是缩放 turning-angles-distweibull-dist 的结果。