【发布时间】:2014-09-22 14:42:46
【问题描述】:
我在我的模型中对扩散进行建模,但我认为由于 NetLogo 顺序更新各个补丁,我得到了一个计算工件。我不会使用 diffuse 命令(由于扩散不准确)。然而,就像这个命令的工作原理一样,我想同时更新补丁的所有计算,而不是按顺序更新。我稍微记得看到一些在 tick 开头使用值的示例代码,但是我现在似乎找不到它。
具体来说,我需要帮助编程一种方法,以便在每次滴答时存储补丁值,然后根据这些存储的值进行同时计算。
【问题讨论】:
-
出于好奇,您对
diffuse有哪些不准确之处? -
嗨,Bryan,感谢您提供的这个漂亮的编码技巧。我自己没有测试过diffuse命令的不准确性。我已经看到声称自己和邻居之间的非同质距离(角落补丁比非角落补丁更远)导致不准确。然而,就像我说的我自己没有测试过这个,只是简单地接受了另一个研究小组的声明。相反,可以使用有限差分方案来逼近菲克斯定律中的偏微分方程。这是我的做法。如果您有兴趣获取代码,请告诉我,我很乐意分享。
-
请注意
diffuse4不存在非均匀距离问题。 -
这提出了一个很好的观点,我没有
t thought of this. In fact my model is simulating diffusion, however between boundry conditions with fixed concentrations, I need a bi-linear interpolation to calculate concentrations between some fixed nodes. I cant 弄清楚为什么使用neighbors4的平均值没有给出正确的插值。然而,如果重复使用diffuse4进行插值,则会给出正确的双线性插值。我使用diffuse4的问题是我必须在特定平面内插值(所以我使用patch-at)。也许我应该提出这个问题以使问题更清楚? -
我已将我的问题作为一个新问题发布。我似乎无法找出我需要的双线性插值过程。感谢您提供帮助的 cmets 和代码。
标签: netlogo