Modeling and Simulating Social Systems with...
Transcript of Modeling and Simulating Social Systems with...
2014-03-03ETH Zürich
Modeling and Simulating Social Systems with MATLAB
Lecture 3 – Dynamical Systems
Chair of Sociology, in particular of
Modeling and Simulation
Olivia Woolley, Tobias Kuhn, Dario Biasini, Dirk Helbing
2014-03-03 Modeling and Simulation of Social Systems with MATLAB 2
Dynamical systems
Mathematical description of the time dependence of variables that characterize a given problem/scenario in its state space.
2014-03-03 Modeling and Simulation of Social Systems with MATLAB 3
Dynamical systems A dynamical system is described by a set of
linear/non-linear differential equations
Even though an analytical treatment of dynamical systems is usually very complicated, obtaining a numerical solution is (often) straightforward
Differential equation and difference equation are two different tools for operating with Dynamical Systems
2014-03-03 Modeling and Simulation of Social Systems with MATLAB 4
Differential Equations
A differential equation is a mathematical equation for an unknown function (dependent variable) of one or more (independent) explicative variables that relates the values of the function itself and its derivatives of various orders
Ordinary (ODE) :
Partial (PDE) :
df (x)
dx= f (x)
∂f (x,y)
∂x+ ∂f (x,y)
∂y= f (x,y)
2014-03-03 Modeling and Simulation of Social Systems with MATLAB 5
Numerical Solutions for Differential Equations
Solving differential equations numerically can be done by a number of schemes. The easiest way is by the 1st order Euler Method:
t
x
Δt
x(t)
x(t-Δt)
,..)( )()(
,...)()()(
,...)(
xftttxtx
xft
ttxtx
xfdt
dx
∆+∆−=
=∆
∆−−
=
2014-03-03 Modeling and Simulation of Social Systems with MATLAB 6
A famous example: Pendulum
A pendulum is a simple dynamical system:
L = length of pendulum (m)
ϴ = angle of pendulum
g = acceleration due to gravity (m/s2)
The motion is described by:
)sin(θθL
g−=′′
2014-03-03 Modeling and Simulation of Social Systems with MATLAB 7
Pendulum: MATLAB code
2014-03-03 Modeling and Simulation of Social Systems with MATLAB 8
Set time step
2014-03-03 Modeling and Simulation of Social Systems with MATLAB 9
Set constants
2014-03-03 Modeling and Simulation of Social Systems with MATLAB 10
Set starting point of pendulum
2014-03-03 Modeling and Simulation of Social Systems with MATLAB 11
Time loop: Simulate the pendulum
2014-03-03 Modeling and Simulation of Social Systems with MATLAB 12
Perform 1st order Euler’s method
2014-03-03 Modeling and Simulation of Social Systems with MATLAB 13
Plot pendulum
2014-03-03 Modeling and Simulation of Social Systems with MATLAB 14
Set limits of window
2014-03-03 Modeling and Simulation of Social Systems with MATLAB 15
Pause for 10ms
2014-03-03 Modeling and Simulation of Social Systems with MATLAB 16
Pendulum: Executing MATLAB code
The file pendulum.m can be found on the website
2014-03-03 Modeling and Simulation of Social Systems with MATLAB 17
Lorenz attractor
The Lorenz attractor defines a 3-dimensional trajectory by the differential equations:
σ, r, b are parameters.
dxdt
= σ(y− x)
dydt
= rx− y− xz
dzdt
= xy−bz
2014-03-03 Modeling and Simulation of Social Systems with MATLAB 18
Lorenz attractor: MATLAB code
2014-03-03 Modeling and Simulation of Social Systems with MATLAB 19
Set time step
2014-03-03 Modeling and Simulation of Social Systems with MATLAB 20
Set number of iterations
2014-03-03 Modeling and Simulation of Social Systems with MATLAB 21
Set initial values
2014-03-03 Modeling and Simulation of Social Systems with MATLAB 22
Set parameters
2014-03-03 Modeling and Simulation of Social Systems with MATLAB 23
Solve the Lorenz-attractor equations
2014-03-03 Modeling and Simulation of Social Systems with MATLAB 24
Compute gradient
2014-03-03 Modeling and Simulation of Social Systems with MATLAB 25
Perform 1st order Euler’s method
2014-03-03 Modeling and Simulation of Social Systems with MATLAB 26
Update time
2014-03-03 Modeling and Simulation of Social Systems with MATLAB 27
Plot the results
2014-03-03 Modeling and Simulation of Social Systems with MATLAB 28
Animation
The file lorenzattractor.m can be found on the website
2014-03-03 Modeling and Simulation of Social Systems with MATLAB
Food chain
29
2014-03-03 Modeling and Simulation of Social Systems with MATLAB 30
Lotka-Volterra equations
The Lotka-Volterra equations describe the interaction between two species, prey vs. predators, e.g. rabbits vs. foxes.
x: number of preyy: number of predatorsα, β, γ, δ: parameters
)(
)(
xydt
dy
yxdt
dx
δγ
βα
−−=
−=
2014-03-03 Modeling and Simulation of Social Systems with MATLAB 31
Lotka-Volterra equations
The Lotka-Volterra equations describe the interaction between two species, prey vs. predators, e.g. rabbits vs. foxes.
2014-03-03 Modeling and Simulation of Social Systems with MATLAB 32
Lotka-Volterra equations
The Lotka-Volterra equations describe the interaction between two species, prey vs. predators, e.g. rabbits vs. foxes.
2014-03-03 Modeling and Simulation of Social Systems with MATLAB 33
SIR model
A general model for epidemics is the SIR model, which describes the interaction between Susceptible, Infected and Removed (Recovered) persons, for a given disease.
2014-03-03 Modeling and Simulation of Social Systems with MATLAB 34
Kermack-McKendrick model
Spread of diseases like the plague and cholera? A popular SIR model is the Kermack-McKendrick model.
The model assumes: Constant population size. No incubation period. The duration of infectivity is as long as the duration of
the clinical disease.
2014-03-03 Modeling and Simulation of Social Systems with MATLAB
Kermack-McKendrick model
35
2014-03-03 Modeling and Simulation of Social Systems with MATLAB 36
Kermack-McKendrick model
The Kermack-McKendrick model is specified as:
S: Susceptible I: InfectedR: Removed/recovered β: Infection/contact rateγ: Immunity/recovery rate
)(
)( )()(
)()(
tIdt
dR
tItStIdt
dI
tStIdt
dS
γ
γβ
β
=
−=
−=
2014-03-03 Modeling and Simulation of Social Systems with MATLAB 37
Kermack-McKendrick model
The Kermack-McKendrick model is specified as:
S: Susceptible I: InfectedR: Removed/recovered β: Contact rateγ: Recovery rate
2014-03-03 Modeling and Simulation of Social Systems with MATLAB
Kermack-McKendrick model
38
2014-03-03 Modeling and Simulation of Social Systems with MATLAB 39
Exercise 1
Implement and simulate the Kermack-McKendrick model in MATLAB.
Use the values: S(0)=I(0)=500, R(0)=0, β=0.0001, γ =0.01
2014-03-03 Modeling and Simulation of Social Systems with MATLAB 40
Exercise 2
A key parameter for the Kermack-McKendrick model is the reproductive number R0= β/γ.
Plot the time evolution of the model and investigate the epidemiological threshold, in particular the cases:
1. R0S(0) < 12. R0S(0) > 1
S(0)=I(0)=500, R(0)=0, β=0.0001
2014-03-03 Modeling and Simulation of Social Systems with MATLAB 41
Exercise 3 - optional
Implement the Lotka-Volterra model and investigate the influence of the timestep, dt.
How small must the timestep be in order for the 1st order Euler‘s method to give reasonable accuracy?
Check in the MATLAB help how the functions ode23, ode45 etc, can be used for solving differential equations.
2014-03-03 Modeling and Simulation of Social Systems with MATLAB 42
References
Matlab and Art: http://vlab.ethz.ch/ROM/DBGT/MATLAB_and_art.html
Kermack, W.O. and McKendrick, A.G. "A Contribution to the
Mathematical Theory of Epidemics." Proc. Roy. Soc. Lond. A 115,
700-721, 1927.
"Lotka-Volterra Equations”.
http://mathworld.wolfram.com/Lotka-VolterraEquations.html
http://en.wikipedia.org/wiki/Numerical_ordinary_differential_equations
"Lorenz Attractor”. http://mathworld.wolfram.com/LorenzAttractor.html