Go back to Flu Mortality
library(deSolve)
dyn.load(“SIR.so”)
data1 = c(106, 121, 136, 156, 183, 248, 279, 276, 239, 185, 160, 187, 150, 193, 153, 153, 138, 143, 119)
t1 = c(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
model_SIRn = function(t, theta) {
SIR = function(Time, State, Pars) { with(as.list(c(State, Pars)), { DecreaseS = -1 * beta * S * I / N DecreaseI = -1 * alpha * I dS = DecreaseS dI = -1 * DecreaseS + DecreaseI return(list(c(dS, dI))) }) } with(as.list(theta), { state1 = c(S = N - I1, I = I1) pars1 = c(beta = beta1, alpha = alpha1, N = N) out1 = ode(y = state1, times = t, func = SIR, parms = pars1, method = 'ode45') return(-diff(out1[,"S"])) })
}
model_SIRc = function(t, theta) {
SIR = function(Time, State, Pars) { dS = double(1) dI = double(1) out = .C("SIR", Time = as.integer(Time), State = as.double(State), Pars = as.double(Pars), dS = as.double(dS), dI = as.double(dI)) return(list(c(out$dS, out$dI))) } with(as.list(theta), { state1 = c(S = N - I1, I = I1) pars1 = c(beta = beta1, alpha = alpha1, N = N) out1 = ode(y = state1, times = t, func = SIR, parms = pars1, method = 'ode45') return(-diff(out1[,"S"])) })
}
theta = c(beta1 = 0.3, alpha1 = 0.2, N = (sum(data1)*1.166), I1 = 1)
norm = model_SIRn(c(0:19), theta)
print(“normal one”) print(norm)
c = model_SIRc(c(0:19), theta)
print(“c one”) print©