Lotka-Volterra Equation: Phase Plane

Lotka-Volterra Equation: Phase Plane preview image

1 collaborator


Visible to everyone | Changeable by everyone
Model was written in NetLogo 6.0.1 • Viewed 253 times • Downloaded 45 times • Run 0 times
Download the 'Lotka-Volterra Equation: Phase Plane' modelDownload this modelEmbed this model

Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)

NB: Since this model is very slow while run in NetLogo Web it is recommended to download and run it on your PC.


This is a model of a phase-space plot of the Lotka-Volterra equations. It is based on the Wolf Sheep Predation (System Dynamics) Model in NetLogo library.

The Lotka-Volterra equations are a pair of first order, non-linear, differential equations that describe the dynamics of biological systems in which two species interact.


The Lotka–Volterra equations, also known as the predator–prey equations represent a system of two dimensional, first-order, nonlinear, differential equations frequently used to describe the dynamics of biological systems in which two species interact, one as a predator and the other as prey. The populations change through time according to the pair of equations:

dX/dt = αX - βXY (1)

dY/dt = δXY - γY (2)


* X is the number of prey (in this model, sheep);

* Y is the number of some predator (in this model, wolves);

* dX/dt and dY/dt represent the growth rates of the two populations over time;

* t represents time;

* α, β, γ, δ are positive real parameters describing the interaction of the two species.

* αX represents the exponential growth of the pray population (in this model as 'sheep-births' flow which is added to sheep stock) and the rate of predation upon the prey is assumed to be proportional to the rate at which the predators and the prey meet (in the actual model this is 'sheep-deaths' flow which is subtracted from the sheep stock): this is represented by βxy. If either x or y is zero then there can be no predation.

* δXY represents the growth of the predator population and γY represents the loss rate of the predators due to either natural death or emigration; it leads to an exponential decay in the absence of prey.

Each flow is calculated in terms of the variables, and stocks that are linked to it.

Governed by these equations and calculations a phase-space plot is generated where X-axis represents the number of pray and Y-axis represents the number of predators. With each calculation a turtle is generated and plotted on the plane with respective coordinates.

After 300 ticks (i.e. time-steps) the model automatically stops.


Press the buttons (in respective numerical order):

(1) Setup: creates basic conditions for the model to run (i.e. erases data from previous runs, generates X and Y axes, etc.). The plots from previous runs are preserved for further comparison.

(2) Go: starts running the model with generation of new points (turtles) in accordance with numeric values as a result of calculations, performed every time-step.

(3) and (4): These two monitors show the number of sheep and wolves at any particular time-step during the model run.

Activating/Pressing the above buttons will run the model with initial settings, which are close to the Wolf Sheep Predation (System Dynamics) Model in NetLogo library.

The sliders and chooser below allow to change some of the equations parameters and select the color of the plot to be generated during new runs of the model:

(5) This chooser is for selecting the color of the plot for the next model run. Colors are presented by their number on color swatches pallet. On the right there is a list of available colors and their numeric values.

(6), (7), (8) and (9) are sliders which allow to change some parameters of the equations (e.g. number of sheep and wolves, sheep-birth-rate, predation-rate). These values can be changed before a model run/before pressing 'Setup' and 'Go' buttons.

(10) 'Clear-drawing' button clear all the values: globals, ticks, turtles, patches, drawing, plots, and output.


Initially the model parameters are set close to the ones in the Sheep Predation (System Dynamics) Model in NetLogo library (i.e. number of sheep = 100, number of wolves = 30, sheep birth-rate (α) = 0.04, predation rate (β) = .0003, predator efficiency (δ) = 0.8 , wolf death-rate (γ) = 0.15)

Changing these parameters will lead to change in phase-plot shape. Running the model with different values of the parameters may help to clarify the impact of a certain parameter(s) on the phase-plot shape.


You can change model parameters one by one or combined and observe the impact of these changes on the phase-plot. Which combinations will provide the max number of sheep/wolves during the model run with the selected parameters? Try to find combinations that will lead to one of species extinction.

Before running the model with new settings you should first set the parameters using respective sliders, then select the color for the new plot and then press "Setup" and "Go".


The number of parameters that can be varied by sliders in this model is limited. An extension of the model would be adding sliders for additional parameters (e.g. predation efficiency, wolf death-rate, etc.).


This model is based on Wolf Sheep Predation (System Dynamics) Model in NetLogo library. In some aspects it was converted from 'System Dynamics' version to a 'regular' one by recompiling the code and adding new pieces of the code with respective changes/additions in the model interface (buttons, sliders, etc.).


* Wolf Sheep Predation (System Dynamics) Model

* Wolf Sheep Predation (Docked Hybrid) Model, both present in NetLogo model library

* Van Der Pol Oscillator Model


This simple abstract model was developed by Victor Iapascurta, MD. At time of development he was in the Department of Anesthesia and Intensive Care at University of Medicine and Pharmacy in Chisinau, Moldova / ICU at City Emergency Hospital in Chisinau. Please email any questions or comments to viapascurta@yahoo.com

The model was created in NetLogo 6.0.1, Wilensky, U. (1999). NetLogo. http://ccl.northwestern.edu/netlogo/. Center for Connected Learning and Computer-Based Modeling, Northwestern University, Evanston, IL.

This model was inspired by Introduction to Dynamical Systems and Chaos (Fall, 2017) MOOC by David Feldman @ Complexity Explorer (https://www.complexityexplorer.org/courses).

Comments and Questions

Error opening the file

I have just downloaded the last version of NetLogo, and when I try to open the model it says: "Expected nlogo to have 12 sections, this had 10" What is going on? Thank you!

Posted 4 months ago

The error while opening the model

Since the model was built in NetLogo 6.0.1 this might be the problem and solution. Although the two version 6.0.1 and 6.0.2 are 'compatible' the problem may be because of the model building 'procedure': part of the model was created in SDM than converted to 'regular' Netlogo. You can download the 6.0.1 version and try to open the model with it. Regards, The author

Posted 3 months ago

Click to Run Model

globals [

to setup
  ask patches with [ pxcor = 0 ] [  set pcolor white ]
  ask patches with [ pycor = 0 ] [  set pcolor white ]
  set mylist-x list 0 (sheep)
  set mylist-y list 0 (wolves)

to system-dynamics-setup
  set dt 0.009
  set sheep-birth-rate sheep-birth-rate-slider
  set predation-rate predation-rate-slider
  set predator-efficiency .8
  set wolf-death-rate 0.15
  set sheep sheep-num
  set wolves wolves-num

to clear-picture

to go
  set mylist-x lput result-x mylist-x
  set mylist-y lput result-y mylist-y
  crt 1 [
    set color select-phase-plot-color
    set xcor (last mylist-x * 0.15)
    set ycor (last mylist-y * 0.15)
    set size 0.5
    set shape "circle"

  if ticks >= 300 [ stop ]

to system-dynamics-go

  let local-sheep-births sheep-births
  let local-sheep-deaths sheep-deaths
  let local-wolf-births wolf-births
  let local-wolf-deaths wolf-deaths

  let new-sheep max( list 0 ( sheep + local-sheep-births - local-sheep-deaths ) )
  let new-wolves max( list 0 ( wolves + local-wolf-births - local-wolf-deaths ) )
  set sheep new-sheep
  set wolves new-wolves

  tick-advance dt

to-report sheep-births
  report ( sheep-birth-rate * sheep
  ) * dt

to-report sheep-deaths
  report ( sheep * predation-rate * wolves
  ) * dt

to-report wolf-births
  report ( wolves * predator-efficiency * predation-rate * sheep
  ) * dt

to-report wolf-deaths
  report ( wolves * wolf-death-rate
  ) * dt

to-report result-x
  report sheep

to-report result-y
    report  wolves

to setup-coordinates
  ask patch -5 5
  [ set plabel "0"
    set plabel-color white ]

  ask patch -7 160
  [ set plabel "1000"
    set plabel-color white ]

  ask patch -7 80
  [ set plabel "500"
    set plabel-color white ]

  ask patch 160 -5
  [ set plabel "1000"
    set plabel-color white ]

  ask patch 320 -5
  [ set plabel "2000"
    set plabel-color white ]

  ask patch -5 -48
  [ set plabel "-50"
    set plabel-color white ]

  ask patch -40 -5
  [ set plabel "-50"
    set plabel-color white ]

  ask patch -10 193
  [ set plabel "Wolves"
    set plabel-color blue ]

  ask patch 380 -10
  [ set plabel "Sheep"
    set plabel-color red ]

to system-dynamics-do-plot
  if plot-pen-exists? "sheep" [
    set-current-plot-pen "sheep"
    plotxy ticks sheep
  if plot-pen-exists? "wolves" [
    set-current-plot-pen "wolves"
    plotxy ticks wolves

There is only one version of this model, created 5 months ago by Victor Iapascurta.

Attached files

File Type Description Last updated
Lotka-Volterra Equation: Phase Plane.png preview Preview for 'Lotka-Volterra Equation: Phase Plane' 5 months ago, by Victor Iapascurta Download

This model does not have any ancestors.

This model does not have any descendants.