System dynamics is a methodology for constructing models using cause and effect between different variables. There are three types of variables: Stocks, also called levels or state variables, which accumulate; converters which change instantaneously with their cause, and flows, which are the rates of change that control the accumulation to stocks. Thus stocks involve a memory of past values and capture the link between present and future values. In addition there are connectors which capture the (normally) instantaneous cause and effect link between different converters and flows.
System dynamics diagrams allow a visual expression of the casual structure of a model, which includes the concept of feedback between state variables. Model structure, especially its feedback loops, determine the behaviour of the system and are a powerful method for both model construction and analysis. Feedback loops describe an endogenous view of a system.
System dynamics is a macroscopic methodology dealing with aggregated groups of people and agents. It deals with average behaviour rather than the individual objects themselves. It also models soft variables, ones which are hard to quantify.
The methodology is applied across a range of social, human, economic, biological and physical behaviour. Models may be analysed with computer simulation, analytical tools and mathematical methods. For more information see the System Dynamics Society website.
The following are a selection of notes used to introduce system dynamics on a mathematics degree using the software Stella. Stella is developed by ISEE Systems. The notes now use Stella 10 but they should be easily adapted to earlier versions and to Stella Architect.
The following are system dynamics models built in Stella Architect, whose construction and results can be explored online.
A model of any real-world object or situation is an attempt to describe that object or situation by certain key features of interest, whilst discarding those features which are not of interest.
A mathematical model is such a model described using mathematics, usually with the purpose of explaining why something behaves the way it does, discovering some laws or patterns, and maybe making predictions. Thus a model has a purpose and mathematics is merely the language which enables the understanding and purpose to be expressed quantitatively and precisely. Purpose is essential for modelling.
There are different types of models depending on the extent to which they represent reality (fidelity), the depth and scope of applicability of the laws that support the model (theory), and the mathematical principles and methods used in the model construction (methodology). See more on types of models.
Two methodologies, system dynamics and agent based modelling, are computational and quite accesible. A limited number of notes on these are below.
Agent based modelling deals with the behaviour of individual agents and their interaction with themselves, each other, and the wider environment. It is a microscopic methodology and can show how macroscopic properties can emerge from groups of interacting agents. It is ideal when the behaviour of individuals is well understood, whereas the laws for aggregated collections of individuals are less clear.
Agent based models can be analysed using mathematics, but it is also common to use computer simulation. One such software package is NetLogo. The followng introductory notes to agent based modelling were developed for a mathematics class.
| Introduction to Agent Based Modelling|
Patches & Cells
NetLogo Guide 1
|Agents that Move
Turtles and Breeds
NetLogo Guide 2
The following are agent based models built in NetLogo, whose construction and results can be explored online.
| SIR Epidemic Lattice, Susceptible Led
The standard epidemic where there is a fixed probability of a susceptible being infected by an infected person in one of 8 neighbouring cells.
|SIR Epidemic Lattice, Infected Led
The standard epidemic where there is a fixed probability of an infected person infecting a susceptible in one of 8 neighbouring cells.