Pregunta 1

Pregunta 2

library(deSolve)
## Warning: package 'deSolve' was built under R version 4.2.3
estres.hidrico <- function(t, state, parameters) {
  with(as.list(c(state,parameters)), {
    #Endogenous auxiliary variables
    consumo.niños <- consumo.perCap.niños * niños
    consumo.jovenes <- consumo.perCap.jovenes * jovenes
    consumo.adultos <- consumo.perCap.adultos * adultos
    consumo.tercera <- consumo.perCap.tercera * tercera
    consumo.inactivos <- consumo.niños + consumo.jovenes + consumo.tercera
      
    #Flow variables
    nacimientos <- adultos * tasa.natalidad
    niños.a.jovenes <- niños / tiempo.niño
    jovenes.a.adultos <- jovenes / tiempo.jovenes
    adultos.a.tercera <- adultos / tiempo.adulto
    muertes <- tercera / tiempo.tercera
    consumo <- consumo.inactivos + consumo.adultos
    
    #Métricas de desempeño
    estres.hidrico <- consumo.inactivos/adultos
    deficit.hidrico <- consumo/reservas.de.agua
    
    #State (stock) variables (d)
    dniños <- nacimientos - niños.a.jovenes
    djovenes <- niños.a.jovenes - jovenes.a.adultos
    dadultos <- jovenes.a.adultos - adultos.a.tercera
    dtercera.edad <- adultos.a.tercera - muertes
    dreservas.de.agua <- recarga - evaporacion - consumo
    
    
    list(c(dniños,
           djovenes,
           dadultos,
           dtercera.edad,
           dreservas.de.agua
           ),
         estres.hidrico = estres.hidrico,
         deficit.hidrico = deficit.hidrico)
  })
}

parameters<-c( 
  tasa.natalidad = 25/1000, # 25 niños por cada 1000 adultos
  tiempo.niño = 15, # años, promedio
  tiempo.jovenes = 10, # años, promedio
  tiempo.adulto = 40, # años, promedio
  tiempo.tercera = 20, # años, promedio
  recarga = 5000000, # millones de m3 por año
  evaporacion = 10000000,  # millones de m3 por año
  consumo.perCap.niños = 100/1000, # m3
  consumo.perCap.jovenes = 100/1000, # m3
  consumo.perCap.adultos = 150/1000, # m3
  consumo.perCap.tercera = 150/1000 # m3
  )

InitialConditions <- c(
  niños = 1000000,
  jovenes = 500000,
  adultos = 2000000,
  tercera = 500000,
  reservas.de.agua = 100000000
  )

times <- seq(0,  #initial time
             50, #end time
             1 ) #time step


intg.method<-c("rk4")

out <- ode(y = InitialConditions,
           times = times,
           func = estres.hidrico,
           parms = parameters,
           method =intg.method )

plot(out,
     col=c("blue"))

Pregunta 3

El año en el que el déficit hídrico es mayor a 1 es en 2028.

Pregunta 4

El estrés hidrico se mantiene en aumento durante los 50 años modelados. Esto se debe a que la población de personas de la tercera edad se mantiene en aumento y por encima de la población de adultos, lo que mantiene el consumo de población inactiva y por ende aumenta el estrés hídrico.

Pregunta 5

Promover el ahorro de agua por parte de las poblaciones de adultos de la tercera edad, ofreciendo una serie de descuentos sobre los cobros por el agua al llegar a metas determinadas de ahorro. Por ejemplo, si consumió menos de x litros de agua ofrecer un 10% de descuento, si consumió y litros de agua ofrecer un 20% de descuento (donde x > y), y así sucesivamente.

library(deSolve)

estres.hidrico.con.ahorro <- function(t, state, parameters) {
  with(as.list(c(state,parameters)), {
    #Endogenous auxiliary variables
    consumo.niños <- consumo.perCap.niños * niños
    consumo.jovenes <- consumo.perCap.jovenes * jovenes
    consumo.adultos <- consumo.perCap.adultos * adultos
    consumo.tercera <- (consumo.perCap.tercera * tercera) * (1 - ahorro)
    consumo.inactivos <- consumo.niños + consumo.jovenes + consumo.tercera
      
    #Flow variables
    nacimientos <- adultos * tasa.natalidad
    niños.a.jovenes <- niños / tiempo.niño
    jovenes.a.adultos <- jovenes / tiempo.jovenes
    adultos.a.tercera <- adultos / tiempo.adulto
    muertes <- tercera / tiempo.tercera
    consumo <- consumo.inactivos + consumo.adultos
    
    #Métricas de desempeño
    estres.hidrico <- consumo.inactivos/adultos
    deficit.hidrico <- consumo/reservas.de.agua
    
    #State (stock) variables (d)
    dniños <- nacimientos - niños.a.jovenes
    djovenes <- niños.a.jovenes - jovenes.a.adultos
    dadultos <- jovenes.a.adultos - adultos.a.tercera
    dtercera.edad <- adultos.a.tercera - muertes
    dreservas.de.agua <- recarga - evaporacion - consumo
    
    
    list(c(dniños,
           djovenes,
           dadultos,
           dtercera.edad,
           dreservas.de.agua
           ),
         estres.hidrico = estres.hidrico,
         deficit.hidrico = deficit.hidrico)
  })
}

parameters<-c( 
  tasa.natalidad = 25/1000, # 25 niños por cada 1000 adultos
  tiempo.niño = 15, # años, promedio
  tiempo.jovenes = 10, # años, promedio
  tiempo.adulto = 40, # años, promedio
  tiempo.tercera = 20, # años, promedio
  recarga = 5000000, # millones de m3 por año
  evaporacion = 10000000,  # millones de m3 por año
  consumo.perCap.niños = 100/1000, # m3
  consumo.perCap.jovenes = 100/1000, # m3
  consumo.perCap.adultos = 150/1000, # m3
  consumo.perCap.tercera = 150/1000, # m3
  ahorro = 20/100
  )

InitialConditions <- c(
  niños = 1000000,
  jovenes = 500000,
  adultos = 2000000,
  tercera = 500000,
  reservas.de.agua = 100000000
  )

times <- seq(0,  #initial time
             50, #end time
             1 ) #time step


intg.method<-c("rk4")

out <- ode(y = InitialConditions,
           times = times,
           func = estres.hidrico.con.ahorro,
           parms = parameters,
           method =intg.method )

plot(out,
     col=c("blue"))