我试图实现细胞自动机模拟波浪行为。我正在使用Von Neumann社区r=2
like here
我的问题是:我应该如何计算边界上单元格的状态?
例如:我有一个数组a
,我想计算a[0][0]
的值。
细胞的状态是(-1,1)范围内的浮子,其中0是平地。 On&#34; regular&#34;我可以采取邻居的状态,但是当邻居较少(<12)时,结果是错误的,并且&#34;生成&#34;新浪潮。
答案 0 :(得分:3)
您的问题有不同的解决方案。
示例:a [-1] [0] = a [n-2] [0]
好的一面:这可以通过平移使晶格不变来避免任何“边界效应”,这应该导致更自然的进化。 不好的一面:在较小的尺度上,这会产生不良影响,例如共振。
如果您想对模型进行定量研究,例如相变,平均场等,这种方法尤其适用。
示例:a [-1] [0] = 10e-6左右,因为0表示着陆。
好的一面:你避免共振效应。 不好的一面:潜在的边界效应,以及没有外部波浪源。
这种方法更适合定性用途:检查实施的有效性,寻找模型假象(例如类似maëlstrom的模式?)或简单地呈现一个看起来像观察者有机的系统。
示例:所有边界单元格都为land(0)。