Modeling pandemics (2)

When introducing the SIR mannequin, in our preliminary put up, we bought an extraordinary differential equation, however we didn’t actually talk about stability, and periodicity. It has to do with the Jacobian matrix of the system. However to begin with, we had three equations for 3 perform, however trulydisplaystyle{{frac{dS}{dt}}+{frac {dI}{dt}}+{frac {dR}{dt}}=0}so it signifies that our downside is right here merely in dimension 2. Thereforedisplaystyle {start{aligned}&X={frac {dS}{dt}}=mu(N-S)-{frac {beta IS}{N}},[6pt]&Y={frac {dI}{dt}}={frac {beta IS}{N}}-(mu+gamma)Iend{aligned}}and subsequently, the Jacobian of the system isstart{pmatrix}displaystyle{frac{partial X}{partial S}}&displaystyle{frac{partial X}{partial I}}[9pt]displaystyle{frac{partial Y}{partial S}}&displaystyle{frac{partial Y}{partial I}}finish{pmatrix}=start{pmatrix}displaystyle{-mu-betafrac{I}{N}}&displaystyle{-betafrac{S}{N}}[9pt]displaystyle{betafrac{I}{N}}&displaystyle{betafrac{S}{N}-(mu+gamma)}finish{pmatrix}We should always consider the Jacobian on the equilibrium, i.e. S^star=frac{gamma+mu}{beta}=frac{1}{R_0}andI^star=frac{mu(R_0-1)}{beta}We should always then take a look at eigenvalues of the matrix.

Our final instance was

1
2
3
4
5
occasions = seq(0, 100, by=.1)
p = c(mu = 1/100, N = 1, beta = 50, gamma = 10)
start_SIR = c(S=0.19, I=0.01, R = 0.8)
resol = ode(y=start_SIR, t=occasions, func=SIR, p=p)
plot(resol[,"time"],resol[,"I"],kind="l",xlab="time",ylab="")

We will compute values on the equilibrium

1
2
3
4
mu=p["mu"]; beta=p["beta"]; gamma=p["gamma"]
N=1
S = (gamma + mu)/beta
I = mu * (beta/(gamma + mu) - 1)/beta

and the Jacobian matrix

1
2
J=matrix(c(-(mu + beta * I/N),-(beta * S/N), beta * I/N,beta * S/N - (mu + gamma)),2,2,byrow = TRUE)

Now, if we take a look at the eigenvalues,

1
2
eigen(J)$values
[1] -0.024975+0.6318831i -0.024975-0.6318831i

or extra exactly 2pi/b the place apm ib are the conjuguate eigenvalues

1
2
2 * pi/(Im(eigen(J)$values[1]))
[1] 9.943588

we now have a damping interval of 10 time lengths (10 days, or 10 weeks), which is kind of what we’ve seen above,

The graph above was obtained utilizing

1
2
3
4
5
6
7
8
9
p = c(mu = 1/100, N = 1, beta = 50, gamma = 10)
start_SIR = c(S=0.19, I=0.01, R = 0.8)
resol = ode(y=start_SIR, t=occasions, func=SIR, p=p)
plot(resol[1:1e5,"time"],resol[1:1e5,"I"],kind="l",xlab="time",ylab="",lwd=3,col="purple")
yi=resol[,"I"]
dyi=diff(yi)
i=which((dyi[2:length(dyi)]*dyi[1:(length(dyi)-1)])<0)
t=resol[i,"time"]
arrows(t[2],.008,t[4],.008,size=.1,code=3)

If we glance rigorously. on the begining, the length is (a lot) longer than 10 (about 13)… but it surely does converge in the direction of 9.94

1
2
plot(diff(t[seq(2,40,by=2)]),kind="b")
abline(h=2 * pi/(Im(eigen(J)$values[1]))

So right here, theoretically, each 10 weeks (assuming that our time size is every week), we must always observe an outbreak, smaller than the earlier one. In observe, initially it’s each 13 or 12 weeks, however the time to attend between outbreaks decreases (till it reaches 10 weeks).



For those who bought this far, why not subscribe for updates from the location? Select your taste: e-mail, twitter, RSS, or fb

Leave a Reply

Your email address will not be published. Required fields are marked *