Click the link above to download the program to your computer or cut and paste the code below. The Python source code listing begins after the horizontal line.
#-------------------------------------------------------
#
# sir.py - A simple differential equation model
# of a measles-like epidemic.
# Translated from the TrueBasic SIR program
# in "Calculus in Context" by Callahan and Hoffman.
#
# Translated by Barry Tolnas, tolnasb@evergreen.edu
#------------------------------------------------------
t = 0 # time
S = 45400 # number of susceptibles
I = 2100 # number infected
R = 2500 # number recovered
deltat = 1 # time interval in days
#print initial values at time 0
print t, S, I, R
for k in [1,2,3]:
#compute rate of change
Sprime = -.00001 * S * I
Iprime = .00001 * S * I - I/14
Rprime = I/14
#compute amount of change (deltas)
deltaS = Sprime * deltat
deltaI = Iprime * deltat
deltaR = Rprime * deltat
#update variables
t = t + deltat
S = S + deltaS
I = I + deltaI
R = R + deltaR
#print out the results for this timestep
print t, S, I, R