Modeling and Simulating Social Systems with...

Post on 11-May-2018

222 views 3 download

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