You are here

Model entry

Lotka-Volterra predator-prey model (Seppelt and Richter, 2005) - Model catalogue -

Search Simulistics Model catalogue Listed by keyword Listed by ID Listed by title Listed by date added

Lotka-Volterra predator-prey model (Seppelt and Richter, 2005)

Model : predator_prey32
Simile version : 3.x (4.x)
Date added : 2005-09-30
Keywords :


This is a modified Lotka-Voterra model of predator-prey interactions with a prey carrying capacity, K, and a sigmoid predator response function.

This model is provided primarily as a test of Simile's numerical integration methods. It consists of a pair of highly-coupled, non-linear, ordinary differential equations, and is an example of a 'stiff' model, in which the results obtained by simulating model behaviour are sensitive to the choice of algorithm and time step used for numerical integration.

This model was used as the basis for a comparison of the numeric performance of simulation modelling software by Seppelt and Richter, 2005 (reference below). These authors found that Simile did not produce the expected oscillations in predator and prey numbers. However, neither Simulistics nor the authors themselves have been able to reproduce the results published in that paper, and a note correcting the published results is currently (October 2005) in preparation.


Model file

Click on the icon to download the model file. (You will need Simile to examine and run the model. A free evaluation version is available from the products page.)

Some browsers may attempt to display the model file, rather than open it in Simile; in this case, use the browser back button to return to this page, and use the context menu (invoked by right-clicking on the link) to save the target file to disk.




Compartment compartment x : Prey
      Initial value = 10
      Rate of change = + repro1

Compartment compartment y : predator
      Initial value = 0.02
      Rate of change = + repro2

Flow flow repro1
      repro1 = r*x*(1-x/K)-a*x*x/(x*x+L)*y

Flow flow repro2
      repro2 = g*y*(a*x*x/(x*x+L))-m*y

Variable variable K
      K = 1000

Variable variable L
      L = 50

Variable variable a
      a = 5

Variable variable g
      g = 0.2

Variable variable m
      m = 0.9

Variable variable r
      r = 0.06


Results Simile 3.2 Euler dt=0.1
a) Results from Simile 3.2, Euler numerical integration, dt=0.1

Results Simile 3.2 Euler dt=0.01
b) Results from Simile 3.2, Euler numerical integration, dt=0.01

Results Simile 4.4 Euler dt=0.1
c) Results from Simile 4.4, Euler numerical integration, dt=0.1

Results Simile 4.4 Runge-Kutta dt=0.1
a) Results from Simile 4.4, 4th order Runge-Kutta numerical integration, dt=0.1

Note that decreasing the step size when using the Euler integration from 0.1 to 0.01 has a significant effect on the results and so the smaller time step should be used (see What time step should I use?). 4th order Runge-Kutta is a new feature of Simile version 4 and is more efficient that Euler, note that the results using 4th order Runge-Kutta with dt=0.1 are close to those obtained using Euler with dt=0.01. |

Web links

Euler numerical integration
4th order Runge-Kutta numerical integration


Seppelt, R. and Richter, O. (2005) “It was an artefact not the result”: A note on systems dynamic model development tools. Environmental Modelling and Software 20(12) 1543-1548