A Table Function Example: Rabbit Population
A Table Function Example: Rabbit Population
January 2001
I.
Introduction
While building a system dynamics model, the modeler may be faced with a
situation where there is a relationship between two variables but no simple algebraic
equation to define the relationship. For example, the death rate of a population of rabbits
in a fixed area increases rapidly as the area gets more crowded. In cases where the
relationship between two variables is not linear, table functions can be used to represent
the relationship.
Table functions are used in preference to complicated equations because the
modeler can control the shape, slopes and saturation points to accurately represent the
non-linear relationship between two variables. Table functions are also easier to interpret
and visualize than complex algebraic equations.
II.
Vensim using the Rabbit Populations model found in Generic Structures: S-Shaped
Growth I (D-4432-2) in Road Maps 5.
Rabbit Population
Births
Births Normal
Population Density
Deaths
~
Deaths Multiplier
Average Lifetime
Area
The lookup function for deaths multiplier has a dimension in our STELLA
example which is not good modeling practice because it violates dimensional consistency
D-4587
in the model. It is better practice to have dimensionless inputs and outputs to all table
functions in system dynamics models.
A variable called normal is used to divide the input variable, which in the
example is population density, to produce a non-dimensional input to the lookup table.
Normals are constants that act as reference points for dynamic behavior e.g. in the
example above, the normal is the population density at which the deaths multiplier is
1 and the deaths is determined only by the average lifetime, Rabbit Population and
deaths multiplier.
In converting the example from STELLA to Vensim, first create two new
constants: NORMAL POPULATION DENSITY and lookup of deaths multiplier. The
constant, NORMAL POPULATION DENSITY divides population density to produce the
relative population density, a non-dimensional input to the lookup table.
The relationship lookup of deaths multiplier will contain all the data points
representing the non-linear relationship between the two variables: relative population
density and deaths multiplier.
To input data points for the lookup of deaths multiplier, go to the equation editor
and under type, select Lookup, then As Graph and you will be taken to a screen
where you can enter the data points in the form of a graph:
D-4587
The equation that relates the table function, normal and multiplier is:
deaths multiplier = lookup of deaths multiplier (relative population density)
births
Rabbit
Population
deaths
AVERAGE LIFETIME
relative population
density
NORMAL
POPULATION
DENSITY
Units: acre
(02)
AVERAGE LIFETIME = 4
Units: year
The number of rabbits that die per rabbit in the population per year.
(03)
Units: Rabbits/year
(04)
(05)
Units: Rabbits/year
D-4587
(06)
(07)
FINAL TIME = 12
Units: year
The final time for the simulation.
(08)
INITIAL TIME = 0
Units: year
The initial time for the simulation.
(09)
(10)
(11)
(12)
(13)
(14)
(15)
D-4587
To see the complete STELLA version of the example refer to Generic Structures:
S-Shaped Growth I (D-4432-2) in Chapter 5 of Road Maps. A detailed discussion of
table
functions,
normals
and
multipliers
can
be
found
in
Mistakes
and