SIR_SIMULATION
Simulation of Disease Propagation with the SIR Model


SIR_SIMULATION, a MATLAB code which simulates the spread of a disease through a hospital room of M by N beds, using the SIR (Susceptible/Infected/Recovered) model.

We consider the evolution of a disease in a hospital in which patients are arranged on an array of beds.

We assume that the beds form an array of M rows and N columns, so that there are a total of M * N patients.

We assume that the patients can be classified as Susceptible, Infected or Recovering, with the properties that:

We set up an M by N array A to represent the patients. A(I,J) contains information on the patient in row I, column J. A(I,J) will be

The rules for transmission of the disease essentially update the patient array once a day. If patient A(I,J) was:

Quantities of interest include an animation of the day to day status of patients in the hospital (the "geometry") and the values of S, I, and R, that is, the total number of patients in each category, as it evolves over time.

Since this problem contains a probabilistic element in the transmission of disease, the outcome of any single run has limited meaning. It is much more valuable to run many simulations, and thus to get both average or "expected" values, as well as a feeling for the variance of the data from these averages.

Usage:

sir = sir_simulation ( m, n, a, k, tau, t_max )
where

Licensing:

The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.

Languages:

SIR_SIMULATION is available in a MATLAB version.

Related Data and codes:

brownian_motion_simulation, a MATLAB code which simulates Brownian motion in an M-dimensional region.

chuckaluck_simulation, a MATLAB code which simulates the Chuck-a-Luck gambling game.

coin_simulation, a MATLAB code which looks at ways of simulating or visualizing the results of many tosses of a fair or biased coin.

dice_simulation, a MATLAB code which simulates N tosses of M dice, making a histogram of the results.

duel_simulation, a MATLAB code which simulates N repetitions of a duel between two players, each of whom has a known firing accuracy.

fair_dice_simulation, a MATLAB code which simulates N tosses of 2 dice, making a histogram of the results.

fire_simulation, a MATLAB code which simulates a forest fire over a rectangular array of trees, starting at a single random location.

gamblers_ruin_simulation, a MATLAB code which simulates the game of gambler's ruin.

ising_2d_simulation, a MATLAB code which carries out a Monte Carlo simulation of an Ising model, a 2D array of positive and negative charges, each of which is likely to "flip" to be in agreement with neighbors.

jai_alai_simulation, a MATLAB code which simulates matches of jai alai.

poisson_simulation, a MATLAB code which simulates a Poisson process in which events randomly occur with an average waiting time of Lambda.

random_walk_1d_simulation, a MATLAB code which simulates a random walk in a 1-dimensional region.

random_walk_2d_avoid_simulation, a MATLAB code which simulates a self-avoiding random walk in a 2-dimensional region.

random_walk_2d_simulation, a MATLAB code which simulates a random walk in a 2-dimensional region.

random_walk_3d_simulation, a MATLAB code which simulates a random walk in a 3-dimensional region.

reactor_simulation, a MATLAB code which a simple Monte Carlo simulation of the shielding effect of a slab of a certain thickness in front of a neutron source. This code was provided as an example with the book "Numerical Methods and Software."

roulette_simulation, a MATLAB code which simulates the spinning of a roulette wheel and the evaluation of certain common roulette bets.

sir_simulation_test

traffic_simulation, a MATLAB code which simulates the cars waiting to get through a traffic light.

truel_simulation, a MATLAB code which simulates N repetitions of a duel between three players, each of whom has a known firing accuracy.

urn_simulation_test a MATLAB code which simulates an experiment in which k colored marbles are drawn from an urn containing a total of n marbles. The quantity of interest is the number of marbles of each color.

Reference:

  1. Dianne OLeary,
    Models of Infection: Person to Person,
    Computing in Science and Engineering,
    Volume 6, Number 1, January/February 2004.
  2. Dianne OLeary,
    Scientific Computing with Case Studies,
    SIAM, 2008,
    ISBN13: 978-0-898716-66-5,
    LC: QA401.O44.

Source Code:


Last revised on 17 March 2019.