我们可以编写代码来计算netlogo中刻度值的差异吗
实际上,我需要为我的模型计算人口密度增加/减少率,该模型与我在中所问的相同(一个特定区域和其中的一座建筑,人们随机访问和前往)。我认为我将需要保存初始总体值的刻度值,并在一段时间差后更新总体值。下面是我要绘制图形的步骤我们可以编写代码来计算netlogo中刻度值的差异吗,netlogo,Netlogo,实际上,我需要为我的模型计算人口密度增加/减少率,该模型与我在中所问的相同(一个特定区域和其中的一座建筑,人们随机访问和前往)。我认为我将需要保存初始总体值的刻度值,并在一段时间差后更新总体值。下面是我要绘制图形的步骤 to density-increase-rate store population-density at some initial time (ticks) store updated-population-density at some later-time (tic
to density-increase-rate
store population-density at some initial time (ticks)
store updated-population-density at some later-time (ticks)
calculate density-increase-rate
( ( ( updated-pd - previous-pd ) / (updated-tick - previous-tick ) ) * 100 ) / 10
end
我在我的代码中计算人口密度
total-density-inside-boundary count people with [inside-boundary?]
对于任何建议或代码帮助,我非常感谢。如果您只想绘制此更改,则无需存储它,因为绘图将更新每个勾号
globals [total-density-inside-boundary density-increase-rate]
to calc-plot-vars
let old-density total-density-inside-boundary
set total-density-inside-boundary count people with [inside-boundary?]
set density-increase-rate (total-density-inside-boundary - old-density) / 100
end
然后在界面上绘制一个图,该界面具有绘制边界内总密度
和绘制密度增加率
。您可能需要进行一些重缩放,使它们位于同一个绘图上
如果希望速率基于总时间,则创建一个变量来保存初始值,并在您认为初始值意味着的特定时间(例如设置结束或特定刻度)计算它
然后在界面中绘制速率图,绘制(边界内总密度-初始密度)/100谢谢,先生。我理解了代码的第二部分,即计算速率和绘制速率。因为我知道的计算密度率的公式是(更新密度-初始密度/持续时间)*100,所以我一直在讨论如何计算时间差的持续时间部分(比如100个刻度-10个刻度)。你说的第一部分让旧密度边界内总密度设置边界内总密度计数[inside boundary?]在这里,局部变量“old density”的值是否会保持不变,即使边界内总密度的值得到更新?否,old density将改变每个刻度,因此第一个版本将给出一个刻度和下一个刻度之间的变化。如果您希望绘图是某个任意刻度的平均速率(如开始)直到“现在”,然后使用第二个版本。先生,对于平均速率,我也得到(-)ve值。我的模型在1000个刻度处停止,我取初始刻度值200(而不是刻度=1)。因此,一段时间后,它给出(-)ve值。但我认为这是错误的。看看边界内总密度的图。滴答=200后它会减小吗?如果是,速率实际上是负数,而不是错误。
globals [total-density-inside-boundary initial-density]
to setup
... (commands that create your people)
set initial-density count people with [inside-boundary?]
...
end
to go
...
if ticks = 1 [ set initial-density count people with [inside-boundary?] ]
...
end