我在NetLogo中为模型编写了一个简单的代码。同时通过文献中的常微分方程对模型进行了很好的研究。现在我想比较NetLogo和Matlab(用于求解微分方程)得到的一些模型图。我使用“ticks”命令来增加NetLogo中的时间,其中Matlab使用时间以秒为单位。为了比较NetLogo和Matlab获得的图表,我应该记住哪些预防措施(变更)。
答案 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秒。
基本上,你应该尝试找一些"每个刻度线"模型中的参数对应于"每秒"微分方程中的参数。然后,您应该能够通过比较这些参数来确定每个刻度的秒数。
或者,你可以通过比较情节,看看它们如何排列,然后确定这样的步长来作弊。然后,您可以向后工作以确定模型中的哪些参数确定步长。