Lotka Volterra as agents model
The Lotka-Volterra equations, are a pair of first order, non-linear, differential equations frequently used to describe the dynamics of biological systems in which two species interact, one a predator and one its prey. They were proposed independently by Alfred J. Lotka in 1925 and Vito Volterra in 1926, neither of whom were biologists.
The two equations are:
dx/dt = x(a-by)
dy/dt = -y(c-dx)
Think of x as the rabbit population and y as the fox population. a tells us how fast the rabbit population grows exponentially as they breed like, er, rabbits. b tells us how quickly the rabbits are gobbled up by the foxes. c tells us how fast the foxes reproduce, which they do only after a good meal. And d tells how how fast the foxes are torn to pieces by foxhounds, or in these more enlightened times poisoned or shot.
They have been solved to death numerically as any web search will confirm, but there's no analytic solution unless you reduce the parameters. They give nice oscillatory (but not harmonic) solutions.
An autonome model
You can make a autonome model which simulates the behaviour of an LV system and introduces space, with either periodic or fixed boundaries.
Each site has three states, fox, bare, rabbit.
Rules are as follows:
- Pick a site (only stochastic updates allowed), and a neighbour
- If fox is adjacent to rabbit, rabbit gets eaten (becomes fox with probability r). Else fox dies with probability p
- If rabbit is adjacent to bare ground, reproduces with probability q
- If bare ground is adjacent to anything, the thing moves into bare ground
These rules give a model like Lotka Volterra, but the additional feature of a correlation length between regions oscillating differently. Play around with the parameters and see!