0
在我的模型中,我需要執行修補變量的雙線性插值。某些補丁包含一個固定的補丁變量(讓我們調用這些節點)。對於所有非節點補丁,我需要通過雙線性插值來獲得補丁變量的值。然而,節點之間的距離並不總是相同的,所以我試圖通過「類似擴散」算法來進行插值(節點作爲邊界條件並且重複迭代,非節點落在邊界條件之間的線性路徑上) 。由於我的模型是3D的,我需要在某些平面(xy xz yz)執行雙線性插值,因此我還沒有找到簡單使用diffuse4的方法。我嘗試使用鄰居4的重複平均(或patch-at
給出正確的平面),同時在節點上保持修補程序變量不變。但我無法弄清楚爲什麼這不能給出一個正確的雙線性插值。本質上我的方法遵循下面的代碼。如果插值是正確的,我希望所有補丁與節點具有相同的value
,但它們不是。通過擴散對鄰居的雙線性內插平均
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