2010-03-08 851-0585-04L – Modelling and Simulating Social Systems with MATLAB © ETH Zürich |...

Post on 17-Jan-2016

217 views 0 download

transcript

2010-03-08

851-0585-04L – Modelling and Simulating Social Systems with MATLAB

© ETH Zürich |

Lesson 3 – Dynamical Systems

Anders Johansson and Wenjian Yu

2010-03-08 A. Johansson & W. Yu / andersj@ethz.ch yuwen@ethz.ch 2

Projects

Implementation of a model from the Social-Science literature in MATLAB.

Carried out in pairs. The projects will be assigned next week:

March 15, 2010

2010-03-08 A. Johansson & W. Yu / andersj@ethz.ch yuwen@ethz.ch 3

Lesson 3 - Contents

Differential Equations

Dynamical Systems Pendulum Lorenz attractor Lotka-Volterra equations Epidemics: Kermack-McKendrick model

Exercises

2010-03-08 A. Johansson & W. Yu / andersj@ethz.ch yuwen@ethz.ch 4

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

xfdt

dx

t

x

Δt

x(t)

x(t-Δt)

2010-03-08 A. Johansson & W. Yu / andersj@ethz.ch yuwen@ethz.ch 5

Dynamical systems

A dynamical system is a mathematical description

of the time dependence of a point in a space.

A dynamical system is described by a set of

linear/non-linear differential equations.

Even though an analytical treatment of dynamical

systems is often complicated, obtaining a

numerical solution is straight forward.

2010-03-08 A. Johansson & W. Yu / andersj@ethz.ch yuwen@ethz.ch 6

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

2010-03-08 A. Johansson & W. Yu / andersj@ethz.ch yuwen@ethz.ch 7

Pendulum: MATLAB code

2010-03-08 A. Johansson & W. Yu / andersj@ethz.ch yuwen@ethz.ch 8

Set time step

2010-03-08 A. Johansson & W. Yu / andersj@ethz.ch yuwen@ethz.ch 9

Set constants

2010-03-08 A. Johansson & W. Yu / andersj@ethz.ch yuwen@ethz.ch 10

Set starting point of pendulum

2010-03-08 A. Johansson & W. Yu / andersj@ethz.ch yuwen@ethz.ch 11

Time loop: Simulate the pendulum

2010-03-08 A. Johansson & W. Yu / andersj@ethz.ch yuwen@ethz.ch 12

Perform 1st order Euler’s method

2010-03-08 A. Johansson & W. Yu / andersj@ethz.ch yuwen@ethz.ch 13

Plot pendulum

2010-03-08 A. Johansson & W. Yu / andersj@ethz.ch yuwen@ethz.ch 14

Set limits of window

2010-03-08 A. Johansson & W. Yu / andersj@ethz.ch yuwen@ethz.ch 15

Make a 10 ms pause

2010-03-08 A. Johansson & W. Yu / andersj@ethz.ch yuwen@ethz.ch 16

Pendulum: Executing MATLAB code

2010-03-08 A. Johansson & W. Yu / andersj@ethz.ch yuwen@ethz.ch 17

Lorenz attractor

The Lorenz attractor defines a 3-dimensional

trajectory by the differential equations:

σ, r, b are parameters. bzxydt

dz

xzyrxdt

dy

yxdt

dx

)(

2010-03-08 A. Johansson & W. Yu / andersj@ethz.ch yuwen@ethz.ch 18

Lorenz attractor: MATLAB code

2010-03-08 A. Johansson & W. Yu / andersj@ethz.ch yuwen@ethz.ch 19

Set time step

2010-03-08 A. Johansson & W. Yu / andersj@ethz.ch yuwen@ethz.ch 20

Set number of iterations

2010-03-08 A. Johansson & W. Yu / andersj@ethz.ch yuwen@ethz.ch 21

Set initial values

2010-03-08 A. Johansson & W. Yu / andersj@ethz.ch yuwen@ethz.ch 22

Set parameters

2010-03-08 A. Johansson & W. Yu / andersj@ethz.ch yuwen@ethz.ch 23

Solve the Lorenz-attractor equations

2010-03-08 A. Johansson & W. Yu / andersj@ethz.ch yuwen@ethz.ch 24

Compute gradient

2010-03-08 A. Johansson & W. Yu / andersj@ethz.ch yuwen@ethz.ch 25

Perform 1st order Euler’s method

2010-03-08 A. Johansson & W. Yu / andersj@ethz.ch yuwen@ethz.ch 26

Update time

2010-03-08 A. Johansson & W. Yu / andersj@ethz.ch yuwen@ethz.ch 27

Plot the results

2010-03-08 A. Johansson & W. Yu / andersj@ethz.ch yuwen@ethz.ch 28

Animation

2010-03-08 A. Johansson & W. Yu / andersj@ethz.ch yuwen@ethz.ch 29

2010-03-08 A. Johansson & W. Yu / andersj@ethz.ch yuwen@ethz.ch

Food chain

30

2010-03-08 A. Johansson & W. Yu / andersj@ethz.ch yuwen@ethz.ch 31

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)(

)(

xydt

dy

yxdt

dx

2010-03-08 A. Johansson & W. Yu / andersj@ethz.ch yuwen@ethz.ch 32

Lotka-Volterra equations

The Lotka-Volterra equations describe the

interaction between two species, prey vs.

predators, e.g. rabbits vs. foxes.

2010-03-08 A. Johansson & W. Yu / andersj@ethz.ch yuwen@ethz.ch 33

Lotka-Volterra equations

The Lotka-Volterra equations describe the

interaction between two species, prey vs.

predators, e.g. rabbits vs. foxes.

2010-03-08 A. Johansson & W. Yu / andersj@ethz.ch yuwen@ethz.ch

Epidemics

34

Source: Balcan, et al. 2009

2010-03-08 A. Johansson & W. Yu / andersj@ethz.ch yuwen@ethz.ch 35

SIR model

A model for epidemics is the SIR model, which

describes the interaction between Susceptible,

Infected and Removed (immune) persons, for a

given disease.

2010-03-08 A. Johansson & W. Yu / andersj@ethz.ch yuwen@ethz.ch 36

Kermack-McKendrick model

of diseases like the plague and cholera. A

popular SIR model is the Kermack-McKendrick

model. The model was proposed for explaining

the spreading

The model assumes: A constant population size. A zero incubation period. The duration of infectivity is as long as the duration of

the clinical disease.

2010-03-08 A. Johansson & W. Yu / andersj@ethz.ch yuwen@ethz.ch 37

Kermack-McKendrick model

The Kermack-McKendrick model is specified as:

S: Susceptible persons

I: Infected persons

R: Removed (immune)

persons

β: Infection rate

γ: Immunity rate

S

IR

β transmission

γrecovery

2010-03-08 A. Johansson & W. Yu / andersj@ethz.ch yuwen@ethz.ch 38

Kermack-McKendrick model

The Kermack-McKendrick model is specified as:

S: Susceptible persons

I: Infected persons

R: Removed (immune)

persons

β: Infection rate

γ: Immunity rate )(

)( )()(

)()(

tIdt

dR

tItStIdt

dI

tStIdt

dS

2010-03-08 A. Johansson & W. Yu / andersj@ethz.ch yuwen@ethz.ch 39

Kermack-McKendrick model

The Kermack-McKendrick model is specified as:

S: Susceptible persons

I: Infected persons

R: Removed (immune)

persons

β: Infection rate

γ: Immunity rate

2010-03-08 A. Johansson & W. Yu / andersj@ethz.ch yuwen@ethz.ch 40

Exercise 1 Implement and simulate the Kermack-McKendrick model in MATLAB.

Use the starting values:

S=I=500, R=0, β=0.0001, γ =0.01

Slides/exercises: www.soms.ethz.ch/matlab

(Download only possible with Firefox!)

2010-03-08 A. Johansson & W. Yu / andersj@ethz.ch yuwen@ethz.ch 41

Exercise 2 A key parameter for the Kermack-McKendrick model is the

epidemiological threshold, βS/γ.

Plot the time evolution of the model and investigate the influence

of the epidemiological threshold, in particular the cases:1. βS/γ < 1

2. βS/γ > 1

Starting values: S=I=500, R=0, β=0.0001

2010-03-08 A. Johansson & W. Yu / andersj@ethz.ch yuwen@ethz.ch 42

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 Eulter‘s method to give reasonable

accuracy?

Check in the MATLAB help how the functions

ode23, ode45 etc, can be used for solving

differential equations.