Abha Trivedi
Abha Trivedi

Reputation: 205

Can we code to calculate the difference of tick values in netlogo

Actually i need to calculate density increase/decrease rate of human population for my model, the model is same as i asked in unable to make non-stationary turtles change their direction if an obstacle a patch ahead (a specific area and a building within it, people are randomly visiting and going). What i thought that i will be needing to save the tick values for initial population value and after some time difference updated population value. Below is the procedure i want to plot graph for.

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

I am calculating population-density in my code as

total-density-inside-boundary count people with [inside-boundary?]

for any suggestion or code help i am very thankful.

Upvotes: 1

Views: 406

Answers (1)

JenB
JenB

Reputation: 17678

If you just want to plot this change, there is no need to store it because the plot will update each tick.

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

Then have a plot on the interface with plot total-density-inside-boundary and plot density-increase-rate. You may need to do some rescaling to have them both on the same plot.

If you want to have the rate based on total time, then create a variable to hold the initial value and calculate it at the specific time you think initial means (such as the end of the setup or at a specific tick).

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

Then have the rate plot in the interface have plot (total-density-inside-boundary - initial-density) / 100

Upvotes: 1

Related Questions