Netlogo 扩散与邻域平均的双线性插值

Netlogo 扩散与邻域平均的双线性插值,netlogo,Netlogo,在我的模型中,我需要对一个面片变量进行双线性插值。某些补丁包含一个固定的补丁变量,让我们调用这些节点。对于所有非节点面片,我需要通过双线性插值获得面片变量的值。然而,节点之间的距离并不总是相同的,因此我尝试使用扩散算法进行插值,将节点作为边界条件,通过反复迭代,非节点点位于边界条件之间的线性路径上。由于我的模型是3D的,我需要在某些平面xy xz yz上执行双线性插值,因此我还没有找到简单使用diffuse4的方法。我尝试使用邻域4或patch at的重复平均来给出正确的平面,同时保持patch

在我的模型中,我需要对一个面片变量进行双线性插值。某些补丁包含一个固定的补丁变量,让我们调用这些节点。对于所有非节点面片,我需要通过双线性插值获得面片变量的值。然而,节点之间的距离并不总是相同的,因此我尝试使用扩散算法进行插值,将节点作为边界条件,通过反复迭代,非节点点位于边界条件之间的线性路径上。由于我的模型是3D的,我需要在某些平面xy xz yz上执行双线性插值,因此我还没有找到简单使用diffuse4的方法。我尝试使用邻域4或patch at的重复平均来给出正确的平面,同时保持patch变量at nodes恒定。但我不明白为什么这不能给出正确的双线性插值。基本上,我的方法遵循下面的代码。如果插值是正确的,我希望所有面片的值都与节点相同,但它们不是

globals 
[ 
nodes
non-nodes

]

patches-own [ value]

to setup
  ca
  reset-ticks

  set nodes (patch-set patch -2 -2 patch 2 -2 patch -2 2 patch 2 2) 
  set non-nodes (patch-set patches with [ abs pxcor <= max-pxcor and abs pycor <= max-pycor and not member? self nodes ]) 


  load-nodes  ; inputs data
  ask nodes [ set value 1 ]

  ask patch 0 0 [ show value ]
end

  to go


if ticks mod 1000 = 0 [
  load-nodes 
  Bi-lin-Interpolate                  
]

ask patches [
;  set value value1
  set pcolor scale-color yellow value 5 100]

tick

end

to load-nodes 
  ask nodes [ set value ((ticks / 1000) + 1) ] 
end

to Bi-lin-Interpolate
  repeat 10000 [ 
    ask patches [ set value ( sum [value] of neighbors4) / 4 ]
    load-nodes ]
  ask patch 0 0 [ show value ]
  ask patch 2 2 [ show value ]
end

此代码似乎可疑:

ask patches [ set value ( sum [value] of neighbors4) / 4 ]
您只是在当前修补程序中丢弃该值

如果您想一次更新所有的值,您需要按照下面的建议进行操作