44
2016-10-10 © ETH Zürich | Modeling and Simulating Social Systems with MATLAB Lecture 3 – Dynamical Systems and plotting with MATLAB © ETH Zürich | Computational Social Science Olivia Woolley, Lloyd Sanders, Dirk Helbing

Modeling and Simulating Social Systems with MATLAB · 2016-10-10 · 2016-10-10 Modeling and Simulation of Social Systems with MATLAB 35 SIR model ! A general model for epidemics

  • Upload
    others

  • View
    12

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Modeling and Simulating Social Systems with MATLAB · 2016-10-10 · 2016-10-10 Modeling and Simulation of Social Systems with MATLAB 35 SIR model ! A general model for epidemics

2016-10-10 © ETH Zürich |

Modeling and Simulating Social Systems with MATLAB

Lecture 3 – Dynamical Systems and plotting with MATLAB

© ETH Zürich |

Computational Social Science

Olivia Woolley, Lloyd Sanders, Dirk Helbing

Page 2: Modeling and Simulating Social Systems with MATLAB · 2016-10-10 · 2016-10-10 Modeling and Simulation of Social Systems with MATLAB 35 SIR model ! A general model for epidemics

2016-10-10 Modeling and Simulation of Social Systems with MATLAB 2

Schedule of the course 26.09. 03.10. 10.10. 17.10. 24.10. 31.10. 07.11. 14.11. 21.11. 28.12. 05.12. 12.12. 19.12.

Introduction to MATLAB

Introduction to social science modelling and simulations Working on projects

(seminar thesis)

Handing in seminar thesis and giving a presentation

Flash Talks

Modeling overview

Page 3: Modeling and Simulating Social Systems with MATLAB · 2016-10-10 · 2016-10-10 Modeling and Simulation of Social Systems with MATLAB 35 SIR model ! A general model for epidemics

2016-10-10 Modeling and Simulation of Social Systems with MATLAB 3

Dynamical systems

§  Mathematical description of the time dependence of variables that characterize a given problem/scenario in its state space.

Page 4: Modeling and Simulating Social Systems with MATLAB · 2016-10-10 · 2016-10-10 Modeling and Simulation of Social Systems with MATLAB 35 SIR model ! A general model for epidemics

2016-10-10 Modeling and Simulation of Social Systems with MATLAB 4

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) straight forward.

§  Differential equation and difference equation are two different tools for operating with Dynamical Systems

Page 5: Modeling and Simulating Social Systems with MATLAB · 2016-10-10 · 2016-10-10 Modeling and Simulation of Social Systems with MATLAB 35 SIR model ! A general model for epidemics

2016-10-10 Modeling and Simulation of Social Systems with MATLAB 5

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)

Page 6: Modeling and Simulating Social Systems with MATLAB · 2016-10-10 · 2016-10-10 Modeling and Simulation of Social Systems with MATLAB 35 SIR model ! A general model for epidemics

2016-10-10 Modeling and Simulation of Social Systems with MATLAB 6

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’s Method:

,..)( )()(

,...)()()(

,...)(

xftttxtx

xft

ttxtx

xfdtdx

Δ+Δ−=

Δ−−

=

t

x

Δt

x(t)

x(t-Δt)

Page 7: Modeling and Simulating Social Systems with MATLAB · 2016-10-10 · 2016-10-10 Modeling and Simulation of Social Systems with MATLAB 35 SIR model ! A general model for epidemics

2016-10-10 Modeling and Simulation of Social Systems with MATLAB 7

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(θθLg

−=ʹ′ʹ′

Page 8: Modeling and Simulating Social Systems with MATLAB · 2016-10-10 · 2016-10-10 Modeling and Simulation of Social Systems with MATLAB 35 SIR model ! A general model for epidemics

2016-10-10 Modeling and Simulation of Social Systems with MATLAB 8

Pendulum: MATLAB code

Page 9: Modeling and Simulating Social Systems with MATLAB · 2016-10-10 · 2016-10-10 Modeling and Simulation of Social Systems with MATLAB 35 SIR model ! A general model for epidemics

2016-10-10 Modeling and Simulation of Social Systems with MATLAB 9

Set time step

Page 10: Modeling and Simulating Social Systems with MATLAB · 2016-10-10 · 2016-10-10 Modeling and Simulation of Social Systems with MATLAB 35 SIR model ! A general model for epidemics

2016-10-10 Modeling and Simulation of Social Systems with MATLAB 10

Set constants

Page 11: Modeling and Simulating Social Systems with MATLAB · 2016-10-10 · 2016-10-10 Modeling and Simulation of Social Systems with MATLAB 35 SIR model ! A general model for epidemics

2016-10-10 Modeling and Simulation of Social Systems with MATLAB 11

Set starting point of pendulum

Page 12: Modeling and Simulating Social Systems with MATLAB · 2016-10-10 · 2016-10-10 Modeling and Simulation of Social Systems with MATLAB 35 SIR model ! A general model for epidemics

2016-10-10 Modeling and Simulation of Social Systems with MATLAB 12

Time loop: Simulate the pendulum

Page 13: Modeling and Simulating Social Systems with MATLAB · 2016-10-10 · 2016-10-10 Modeling and Simulation of Social Systems with MATLAB 35 SIR model ! A general model for epidemics

2016-10-10 Modeling and Simulation of Social Systems with MATLAB 13

Perform 1st order Euler’s method

Page 14: Modeling and Simulating Social Systems with MATLAB · 2016-10-10 · 2016-10-10 Modeling and Simulation of Social Systems with MATLAB 35 SIR model ! A general model for epidemics

2016-10-10 Modeling and Simulation of Social Systems with MATLAB 14

Plot pendulum

Page 15: Modeling and Simulating Social Systems with MATLAB · 2016-10-10 · 2016-10-10 Modeling and Simulation of Social Systems with MATLAB 35 SIR model ! A general model for epidemics

2016-10-10 Modeling and Simulation of Social Systems with MATLAB 15

Set limits of window

Page 16: Modeling and Simulating Social Systems with MATLAB · 2016-10-10 · 2016-10-10 Modeling and Simulation of Social Systems with MATLAB 35 SIR model ! A general model for epidemics

2016-10-10 Modeling and Simulation of Social Systems with MATLAB 16

Make a 10 ms pause

Page 17: Modeling and Simulating Social Systems with MATLAB · 2016-10-10 · 2016-10-10 Modeling and Simulation of Social Systems with MATLAB 35 SIR model ! A general model for epidemics

2016-10-10 Modeling and Simulation of Social Systems with MATLAB 17

Pendulum: Executing MATLAB code

The file pendulum.m may be found on the website!

Page 18: Modeling and Simulating Social Systems with MATLAB · 2016-10-10 · 2016-10-10 Modeling and Simulation of Social Systems with MATLAB 35 SIR model ! A general model for epidemics

2016-10-10 Modeling and Simulation of Social Systems with MATLAB 18

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

Page 19: Modeling and Simulating Social Systems with MATLAB · 2016-10-10 · 2016-10-10 Modeling and Simulation of Social Systems with MATLAB 35 SIR model ! A general model for epidemics

2016-10-10 Modeling and Simulation of Social Systems with MATLAB 19

Lorenz attractor: MATLAB code

Page 20: Modeling and Simulating Social Systems with MATLAB · 2016-10-10 · 2016-10-10 Modeling and Simulation of Social Systems with MATLAB 35 SIR model ! A general model for epidemics

2016-10-10 Modeling and Simulation of Social Systems with MATLAB 20

Set time step

Page 21: Modeling and Simulating Social Systems with MATLAB · 2016-10-10 · 2016-10-10 Modeling and Simulation of Social Systems with MATLAB 35 SIR model ! A general model for epidemics

2016-10-10 Modeling and Simulation of Social Systems with MATLAB 21

Set number of iterations

Page 22: Modeling and Simulating Social Systems with MATLAB · 2016-10-10 · 2016-10-10 Modeling and Simulation of Social Systems with MATLAB 35 SIR model ! A general model for epidemics

2016-10-10 Modeling and Simulation of Social Systems with MATLAB 22

Set initial values

Page 23: Modeling and Simulating Social Systems with MATLAB · 2016-10-10 · 2016-10-10 Modeling and Simulation of Social Systems with MATLAB 35 SIR model ! A general model for epidemics

2016-10-10 Modeling and Simulation of Social Systems with MATLAB 23

Set parameters

Page 24: Modeling and Simulating Social Systems with MATLAB · 2016-10-10 · 2016-10-10 Modeling and Simulation of Social Systems with MATLAB 35 SIR model ! A general model for epidemics

2016-10-10 Modeling and Simulation of Social Systems with MATLAB 24

Solve the Lorenz-attractor equations

Page 25: Modeling and Simulating Social Systems with MATLAB · 2016-10-10 · 2016-10-10 Modeling and Simulation of Social Systems with MATLAB 35 SIR model ! A general model for epidemics

2016-10-10 Modeling and Simulation of Social Systems with MATLAB 25

Compute gradient

Page 26: Modeling and Simulating Social Systems with MATLAB · 2016-10-10 · 2016-10-10 Modeling and Simulation of Social Systems with MATLAB 35 SIR model ! A general model for epidemics

2016-10-10 Modeling and Simulation of Social Systems with MATLAB 26

Perform 1st order Euler’s method

Page 27: Modeling and Simulating Social Systems with MATLAB · 2016-10-10 · 2016-10-10 Modeling and Simulation of Social Systems with MATLAB 35 SIR model ! A general model for epidemics

2016-10-10 Modeling and Simulation of Social Systems with MATLAB 27

Update time

Page 28: Modeling and Simulating Social Systems with MATLAB · 2016-10-10 · 2016-10-10 Modeling and Simulation of Social Systems with MATLAB 35 SIR model ! A general model for epidemics

2016-10-10 Modeling and Simulation of Social Systems with MATLAB 28

Plot the results

Page 29: Modeling and Simulating Social Systems with MATLAB · 2016-10-10 · 2016-10-10 Modeling and Simulation of Social Systems with MATLAB 35 SIR model ! A general model for epidemics

2016-10-10 Modeling and Simulation of Social Systems with MATLAB 29

Animation

The file lorenzattractor.m may be found on the website!

Page 30: Modeling and Simulating Social Systems with MATLAB · 2016-10-10 · 2016-10-10 Modeling and Simulation of Social Systems with MATLAB 35 SIR model ! A general model for epidemics

2016-10-10 Modeling and Simulation of Social Systems with MATLAB 30

Page 31: Modeling and Simulating Social Systems with MATLAB · 2016-10-10 · 2016-10-10 Modeling and Simulation of Social Systems with MATLAB 35 SIR model ! A general model for epidemics

2016-10-10 Modeling and Simulation of Social Systems with MATLAB

Food chain

31

Page 32: Modeling and Simulating Social Systems with MATLAB · 2016-10-10 · 2016-10-10 Modeling and Simulation of Social Systems with MATLAB 35 SIR model ! A general model for epidemics

2016-10-10 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. x: number of prey y: number of predators α, β, γ, δ: parameters

)(

)(

xydtdy

yxdtdx

δγ

βα

−−=

−=

Page 33: Modeling and Simulating Social Systems with MATLAB · 2016-10-10 · 2016-10-10 Modeling and Simulation of Social Systems with MATLAB 35 SIR model ! A general model for epidemics

2016-10-10 Modeling and Simulation of Social Systems with MATLAB 33

Lotka-Volterra equations §  The Lotka-Volterra equations describe the

interaction between two species, prey vs. predators, e.g. rabbits vs. foxes.

Page 34: Modeling and Simulating Social Systems with MATLAB · 2016-10-10 · 2016-10-10 Modeling and Simulation of Social Systems with MATLAB 35 SIR model ! A general model for epidemics

2016-10-10 Modeling and Simulation of Social Systems with MATLAB 34

Lotka-Volterra equations §  The Lotka-Volterra equations describe the

interaction between two species, prey vs. predators, e.g. rabbits vs. foxes.

Page 35: Modeling and Simulating Social Systems with MATLAB · 2016-10-10 · 2016-10-10 Modeling and Simulation of Social Systems with MATLAB 35 SIR model ! A general model for epidemics

2016-10-10 Modeling and Simulation of Social Systems with MATLAB 35

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.

Page 36: Modeling and Simulating Social Systems with MATLAB · 2016-10-10 · 2016-10-10 Modeling and Simulation of Social Systems with MATLAB 35 SIR model ! A general model for epidemics

2016-10-10 Modeling and Simulation of Social Systems with MATLAB 36

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.

Page 37: Modeling and Simulating Social Systems with MATLAB · 2016-10-10 · 2016-10-10 Modeling and Simulation of Social Systems with MATLAB 35 SIR model ! A general model for epidemics

2016-10-10 Modeling and Simulation of Social Systems with MATLAB

Kermack-McKendrick model

37

Page 38: Modeling and Simulating Social Systems with MATLAB · 2016-10-10 · 2016-10-10 Modeling and Simulation of Social Systems with MATLAB 35 SIR model ! A general model for epidemics

2016-10-10 Modeling and Simulation of Social Systems with MATLAB 38

Kermack-McKendrick model §  The Kermack-McKendrick model is specified as:

S: Susceptible I: Infected R: Removed/recovered β: Infection/contact rate γ: Immunity/recovery rate

)(

)( )()(

)()(

tIdtdR

tItStIdtdI

tStIdtdS

γ

γβ

β

=

−=

−=

Page 39: Modeling and Simulating Social Systems with MATLAB · 2016-10-10 · 2016-10-10 Modeling and Simulation of Social Systems with MATLAB 35 SIR model ! A general model for epidemics

2016-10-10 Modeling and Simulation of Social Systems with MATLAB 39

Kermack-McKendrick model §  The Kermack-McKendrick model is specified as:

S: Susceptible I: Infected R: Removed/recovered β: Contact rate γ: Recovery rate

Page 40: Modeling and Simulating Social Systems with MATLAB · 2016-10-10 · 2016-10-10 Modeling and Simulation of Social Systems with MATLAB 35 SIR model ! A general model for epidemics

2016-10-10 Modeling and Simulation of Social Systems with MATLAB

SIR model with interaction structure

40

Page 41: Modeling and Simulating Social Systems with MATLAB · 2016-10-10 · 2016-10-10 Modeling and Simulation of Social Systems with MATLAB 35 SIR model ! A general model for epidemics

2016-10-10 Modeling and Simulation of Social Systems with MATLAB 41

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

Page 42: Modeling and Simulating Social Systems with MATLAB · 2016-10-10 · 2016-10-10 Modeling and Simulation of Social Systems with MATLAB 35 SIR model ! A general model for epidemics

2016-10-10 Modeling and Simulation of Social Systems with MATLAB 42

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) < 1 2.  R0S(0) > 1

S(0)=I(0)=500, R(0)=0, β=0.0001

Page 43: Modeling and Simulating Social Systems with MATLAB · 2016-10-10 · 2016-10-10 Modeling and Simulation of Social Systems with MATLAB 35 SIR model ! A general model for epidemics

2016-10-10 Modeling and Simulation of Social Systems with MATLAB 43

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.

Page 44: Modeling and Simulating Social Systems with MATLAB · 2016-10-10 · 2016-10-10 Modeling and Simulation of Social Systems with MATLAB 35 SIR model ! A general model for epidemics

2016-10-10 Modeling and Simulation of Social Systems with MATLAB 44

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

§  "Lorenz Attractor”. http://mathworld.wolfram.com/LorenzAttractor.html

§  Strogatz, Steven H. “Nonlinear dynamics and chaos: with applications to physics, biology, chemistry, and engineering.” Westview press, 2014.