library(deSolve)
library(ggplot2)
# Parámetros iniciales
N <- 1000 # Población total
I0 <- 1 # Número inicial de infectados
R0 <- 0 # Número inicial de recuperados
S0 <- N - I0 - R0 # Número inicial de susceptibles
# Parámetros del modelo
parameters <- c(beta = 0.5, gamma = 0.1)
# Condiciones iniciales
initial_state <- c(S = S0, I = I0, R = R0)
# Tiempo de simulación
times <- seq(0, 200, by = 1) # Simular durante 200 días
sir_model <- function(time, state, parameters) {
with(as.list(c(state, parameters)), {
# Parámetros del modelo
beta <- parameters["beta"] # Tasa de transmisión
gamma <- parameters["gamma"] # Tasa de recuperación
# Ecuaciones diferenciales del modelo SIR
dS <- -beta * S * I / N
dI <- beta * S * I / N - gamma * I
dR <- gamma * I
return(list(c(dS, dI, dR)))
})
}
# Resolver las ecuaciones diferenciales del modelo SIR
out <- ode(y = initial_state, times = times, func = sir_model, parms = parameters)
# Convertir los resultados en un dataframe
results <- as.data.frame(out)
# Graficar los resultados
ggplot(results, aes(x = time)) +
geom_line(aes(y = S, color = "Susceptibles")) +
geom_line(aes(y = I, color = "Infectados")) +
geom_line(aes(y = R, color = "Recuperados")) +
labs(title = "Modelo SIR: Comportamiento de una enfermedad infecciosa",
x = "Días", y = "Número de personas") +
scale_color_manual(values = c("Susceptibles" = "yellow",
"Infectados" = "lightblue",
"Recuperados" = "pink")) +
theme_minimal()

beta <- 0.5
gamma1 <-0.1
R0 <- beta/gamma1
print(R0)
## [1] 5
## [1] 5