时间尺度混乱(NetLogo)

时间:2014-09-02 08:36:03

标签: netlogo

我在NetLogo中为模型编写了一个简单的代码。同时通过文献中的常微分方程对模型进行了很好的研究。现在我想比较NetLogo和Matlab(用于求解微分方程)得到的一些模型图。我使用“ticks”命令来增加NetLogo中的时间,其中Matlab使用时间以秒为单位。为了比较NetLogo和Matlab获得的图表,我应该记住哪些预防措施(变更)。

1 个答案:

答案 0 :(得分:3)

通常,来自NetLogo的图的刻度轴应该是MatLab图的时间轴的一些常量标量。该标量通常在模拟中称为dt或"步长":每个刻度的时间。如果您只是使用NetLogo来数值求解微分方程(尽管可能),您可能会明确地将其设置为某些东西(就像在MatLab中数值求解时一样)。但是,在大多数NetLogo模型中,步长是隐式的。

与模型中步长相对应的一些常用参数:

  • 代理人的速度
  • 增长率或衰退率
  • 扩散率

因此,例如,如果我们在速度限制为100公里/小时(= (100000 m) / (60 min * 60 sec) = 27.8 m/s)的街道上建模流量,并且我们的补丁大小等于1米,我们的代理商会在每蜱最多0.5,那么我们有:

27.8 m/s = (0.5 patches/tick) * (1 m/patches)  / (step-size s/tick) = (0.5 m/tick) / (step-size s/tick)

step-size s/tick = (0.5 m/tick) / (27.8 m/s) = 0.018 s/tick

因此,在这种情况下,每个刻度大约是0.018秒。

基本上,你应该尝试找一些"每个刻度线"模型中的参数对应于"每秒"微分方程中的参数。然后,您应该能够通过比较这些参数来确定每个刻度的秒数。

或者,你可以通过比较情节,看看它们如何排列,然后确定这样的步长来作弊。然后,您可以向后工作以确定模型中的哪些参数确定步长。