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