关于Netlogo中的时间尺度问题

时间:2014-12-30 07:34:33

标签: netlogo

我是netlogo的新用户。我有一个反应系统(转换为常微分方程),可以使用Matlab解决。我想在netlogo中开发相同的模型(与matlab结果进行比较)。我对时间/节拍感到困惑,因为netlogo使用“ticks”来增加时间,而Matlab使用时间以秒为单位。如何将我的matlab秒转换为刻度数?任何人都可以帮我编写代码。该模型是:

A + B ---> C (with rate constant k1 = 1e-6) 
2A+ C ---> D (with rate constant k2 = 3e-7)
A + E ---> F (with rate constant k3 = 2e-5)

初始值为A = B = C = 500D = E = F = 10
初始时间t=0秒和最终时间t=6

1 个答案:

答案 0 :(得分:1)

我首先得到一般性评论,NetLogo主要用于基于代理的建模。 ABM具有多个具有不同特征的实体以某种方式交互。 ABM实际上不是解决ODE的合适方法。如果你的目标是简单地用Matlab之外的东西建立你的模型以进行比较而不是特别需要NetLogo,我可以推荐Vensim更合适。话虽如此,你可以在NetLogo中构建你想要的模型,这只是非常尴尬。

NetLogo离散地处理时间而不是连续处理。你可以每秒获得任意数量的刻度(我建议10,最后时间是60刻度)。您需要将方程式转换为离散形式,因此您的速率将类似于k1-discrete = k1 / 10.您可能会遇到精度问题而且数量很少。