Lotka-Volterra Two Species Model
Two Species Models
The models we have discussed so far (Malthus and Logistic) are
single species models. Many of the most interesting dynamics
in the biological world have to do with interactions between species.
Mathematical models which incorporate these interactions are required
if we hope to simulate these dynamics.
One of the first models to incorporate interactions between predators
and prey was proposed in 1925 by the American biophysicist Alfred
Lotka and the Italian mathematician Vito Volterra. Unlike the
Malthusian and Logistic models we have previously seen, the
Lotka-Volterra model is based on differential equations.
Differential Equations
For our purposes, the best way to understand differential equations is
to contrast them with the now familiar difference equations. When
using difference equations the population sizes are computed at
discrete points in time. These results can be likened to snapshots,
we observe the situation at points in time but do not observe what
happens between snapshots. In the difference equation models we've
discussed so far, the snapshots have been taken at the beginning of
each time period, often years.
In constrast, differential equation models strive to observe the
population at every moment in time. They accomplish this by
trying to find a formula X(t) for the population where
t can be any value, not necessary an integer. In our
analogy, the solution to a differential equation is like watching an
event unfold, observing every nuance of its evolution.
In practice, this lofty goal of differential equations is not fully
met. This is because of the difficulty of finding the formulas that
actually solve differential equations. What normally happens instead
is that a numerical approximation of the differential
equation's solution is found. This is routinely done by converting
the differential equation into an "equivalent" difference equation,
and solving that. (For details, see any undergraduate differential
equations text. Most modern calculus text also discuss numerical
solution of differential equations.) The "equivalent" difference
equation is usually solved using very small time steps. The result is
like a motion picture; the illusion of smooth motion is obtained while
in fact we are seeing a sequence of snapshots.
Instead of giving us information on how much something changes over
the course of one full time period, differential equations give us a
formula for the derivative (from calculus) of some
interesting quantity like a population level. Fortunately for us, the
derivative is just a fancy notion for the change in a quantity per
unit time. So, as far as we're concerned, we can treat the formula
for the derivative in exactly the same manner as we treated the
formula for change in the difference equation case. The only
change is that in the differential equation case it is a good idea
to use small time steps rather than the time step of 1 typically used
in difference equation models.
Displaying Differential Equations
As those of you who have calculus in your backgrounds may remember,
the derivative has many different notations. If X(t) is a
function, the derivative of X(t) can be represented in a
fraction-like form dX/dt or as X'(t). Another
common notation is to put a single dot over the function name. We
will use the fraction-like form.
The common way of indicating a differential equation is to place the
derivative symbol to the left of an equal sign and the formula for the
derivative to the right. For example, a differential equation form of
the Logistic model would take the form
dX/dt = r*X*(1-X/K).
To solve this model with Stella we note that both sides of
this equation represent the change in population size, just as
X(i+1) - X(i) does in the difference equation models.
Consequently, the right hand side of the differential equation is
precisely the formula that should appear in the flow in the Stella
model. Note that this gives us exactly the same model as we
derived in the Logistic difference equation case. We can use either
the bi-directional single flow version or the better birth/death two
flow version.
Just as with difference equation models, differential equation models
require initial conditions. These are indicated in precisely the same
way as for the difference equation models discussed earlier.
This works for any differential equation model, simply use the right
hand side of the differential equation as the formula for the flow
setting. Let me emphasize again that the only difference is that
differential equation models
should generally be solved with small time steps, while difference
equation models should be solved with time steps of 1.
Exercise
-
Run the Logistic Stella model developed earlier under several
different time steps. Does the overall behavior of the model seem
sensitive to the time step?
Finding equilibrium populations (a.k.a. steady states) is just as
important in the differential equation case as it is in the difference
equation case, and just as easy. To find the equilibria simply set
the derivative equal to zero (indicating no change) and solve the
resulting algebraic (no derivatives) equation for the equilibrium. In
the case of the logistic example given above, the equilibria are
exactly the same for the difference equation models and the
differential equation models.
Lotka-Volterra
The Lotka-Volterra model describes interactions between two species in
an ecosystem, a predator and a prey. This represents our first
multi-species model. Since we are considering two species, the model
will involve two equations, one which describes how the prey
population changes and the second which describes how the predator
population changes.
For concreteness let us assume that the prey in our model are rabbits,
and that the predators are foxes. If we let R(t) and
F(t) represent the number of rabbits and foxes, respectively,
that are alive at time t, then the Lotka-Volterra model is:
dR/dt = a*R - b*R*F
dF/dt = e*b*R*F - c*F
where the parameters are defined by:
-
a is the natural growth rate of rabbits in the absence
of predation,
-
c is the natural death rate of foxes in the absence of food
(rabbits),
-
b is the death rate per encounter of rabbits due to
predation,
-
e is the efficiency of turning predated rabbits into foxes.
The Stella model representing the Lotka-Volterra model will be
slightly more complex than the single species models we've dealt with
before. The main difference is that our model will have two stocks
(reservoirs), one for each species. Each species will have its own
birth and death rates. In addition, the Lotka-Volterra model involves
four parameters rather than two. All told, the Stella representation
of the Lotka-Volterra model will use two stocks, four flows, four
converters and many connectors.
Exercises
-
Split the rabbit's differential equation into the births part and the
deaths part.
-
Do the same for the fox's equation.
-
Using the following parameter values, write down the differential
equations for the Lotka-Volterra model and find all equilibrium
points. This will involve solving two equations for two unknowns
(namely R(*) and F(*)). HINT: this
model produces two steady states, one of which should be unsurprising.
- a = 0.04
- b = 0.0005
- c = 0.2
- e = 0.1
-
Optional: Try to find expressions for the
Lotka-Volterra steady states in terms of the parameters. In other
words, try to find formulas for R(*) and F(*)
without plugging in specific values for the parameters.
-
Create a Stella model for the Lotka-Volterra model. Use the parameter
values given above as values for the four converters in your model.
Try various initial conditions for the rabbits and fox populations;
choose some to be near the equilibria you determined above, and have
some be far away. Use different time steps and different running
times. Which equilibrium is stable, unstable?
-
Try both the usual time series graph and the scatter graph to examine
the model output. A scatter plot of rabbit versus fox population is
particularly interesting. To produce such a graph pull down the graph
icon, place it somewhere in the model, double click on the graph when
it appears and select the scatter plot option. This will require you
to choose two quantities to plot. Pick the rabbit and fox
populations. You should get some interesting pictures if you let the
model run long enough.
Analysis of Lotka-Volterra
The Lotka-Volterra model is one of the earliest predator-prey models
to be based on sound mathematical principles. It forms the basis of
many models used today in the analysis of population dynamics.
Unfortunately, in its original form Lotka-Volterra has some
significant problems. As you may have noted in your experiments, neither
equilibrium point is stable. Instead the predator and prey
populations seem to cycle endlessly without settling down quickly. It
can be shown (see any undergraduate differential equations book for
details) that this behavior will be observed for any set of values of
the model's four parameters. While this cycling has been observed in
nature, it is not overwhelmingly common. It appears that
Lotka-Volterra by itself is not sufficient to model many predator-prey
systems. Context specific information must be added.