我是netlogo的新用户。我有一个反应系统(转化为常微分方程),可以用Matlab求解。我想在netlogo中开发相同的模型(用于与matlab结果的比较)。我对time/tick感到困惑,因为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 = 500
、D = E = F = 10
初始时间t=0
秒和最终时间t=6
秒
发布于 2014-12-30 11:39:33
首先,我有一个一般性的评论,NetLogo旨在用于基于agent的建模。ABM有多个具有不同特征的实体,它们以某种方式相互作用。ABM并不是解决常微分方程的合适方法。如果您的目标是简单地在Matlab之外的其他工具中构建模型以进行比较,而不是专门需要NetLogo,我可以推荐Vensim更合适。话虽如此,你可以在NetLogo中构建你想要的模型,它只是非常笨拙。
NetLogo以离散的方式而不是连续的方式处理时间。你可以有任何数量的刻度每秒(我建议10,然后最后的时间是60刻度)。您需要将您的方程转换为离散形式,因此您的费率将类似于k1 -离散=k1/ 10。对于非常小的数字,您可能会遇到精度问题。
https://stackoverflow.com/questions/27701363
复制