Diagrama de Flujo

Modelo

library(deSolve)
## Warning: package 'deSolve' was built under R version 4.4.3
InitialConditions <- c(niños = 1000000,
                       jovenes = 500000,
                       adultos = 2000000,
                       viejos = 500000,
                       reserva.agua = 100000000
  )

times <- seq(  2010,#initial time
               2060,#end time
               1) #time step

agua <- function(t, state, parameters) {
  with(as.list(c(state,parameters)), {
    #Endogenous auxiliary variables
    consumo.total.niños = consumo.per.capita.niños*niños
    consumo.total.jovenes = consumo.per.capita.jovenes*jovenes
    consumo.total.adultos = consumo.per.capita.adultos*adultos
    consumo.total.viejos = consumo.per.capita.viejos*viejos
    
      
    #Flow variables
    nacimientos = adultos*tasa.natalidad
    niñez = niños/tiempo.niños
    madurez = jovenes/tiempo.jovenes
    vida.adulta = adultos/tiempo.adultos
    muerte = viejos/esperanza.vida
    consumo = consumo.total.niños + consumo.total.jovenes + consumo.total.adultos + consumo.total.viejos
    
    #Metricas
    deficit.hidrico.per.capita = consumo/reserva.agua
    estres.hidrico.adulto  = (consumo.total.niños + consumo.total.jovenes + consumo.total.viejos)/adultos
      
    #State (stock) variables (d)
    d.niños = nacimientos - niñez
    d.jovenes = niñez - madurez
    d.adultos = madurez - vida.adulta
    d.viejos = vida.adulta - muerte
    d.reserva = recarga - consumo - evaporacion
    
    list(c(d.niños,d.jovenes,d.adultos,d.viejos,d.reserva),
         deficit.hidrico.per.capita = deficit.hidrico.per.capita,
         estres.hidrico.adulto = estres.hidrico.adulto)
  })
}

parameters<-c( tasa.natalidad = 25/1000,
               tiempo.niños = 15,
               tiempo.jovenes = 10,
               tiempo.adultos = 40,
               esperanza.vida = 20,
               recarga = 5000000,
               evaporacion = 10000000,
               consumo.per.capita.adultos = 0.15, #150/1000 la medida esta en litros por dia ahora esta en m3 por año
               consumo.per.capita.niños = 0.1, #100/1000 la medida esta en litros por dia ahora esta en m3 por año
               consumo.per.capita.viejos = 0.15, #150/1000 la medida esta en litros por dia ahora esta en m3 por año
               consumo.per.capita.jovenes = 0.1 #100/1000 la medida esta en litros por dia ahora esta en m3 por año
  )


intg.method<-c("rk4")

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

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

# Pregunta 1 ¿En que año comenzará a haber un déficit hídrico per cápita mayor a 1? En el año 2028 empezará a haber un déficit hídrico mayor a 1, ya que en este año el déficit es de 13.66, sin embargo a partir de ese momento el déficit

Pregunta 2

¿Cómo evoluciona el estrés hídrico por adulto activo en los próximos 50 años? El estrés hídrico aumenta en los próximos 50 años debido a que la población inactiva aumenta, por lo que el agua demandada por esta población es mayor. Sin embargo, el estrés hídrico tiene cada año un menor crecimiento, esto se debe a que la población muere y esto hace que el consumo disminuya.

Pregunta 3

¿Qué políticas podrían reducir el estrés hídrico? Debido a que el estres hídrico está dado por la suma del consummo de la población inactiva entre la población adulta y los adultos de tercera edad consumen más que los niños y jóvenes, una política que incentive el ahorro de este sector poblacional es lo más adecuado. A continuación se presenta el modelo introduciendo la variable de ahorro.

Diagrama de Flujo con Ahorro

library(deSolve)
InitialConditions <- c(niños = 1000000,
                       jovenes = 500000,
                       adultos = 2000000,
                       viejos = 500000,
                       reserva.agua = 100000000
  )

times <- seq(  2010,#initial time
               2060,#end time
               1) #time step

agua.ahorro <- function(t, state, parameters) {
  with(as.list(c(state,parameters)), {
    #Endogenous auxiliary variables
    consumo.total.niños = consumo.per.capita.niños*niños
    consumo.total.jovenes = consumo.per.capita.jovenes*jovenes
    consumo.total.adultos = consumo.per.capita.adultos*adultos
    consumo.total.viejos = (consumo.per.capita.viejos*viejos)*(1-ahorro)
    
      
    #Flow variables
    nacimientos = adultos*tasa.natalidad
    niñez = niños/tiempo.niños
    madurez = jovenes/tiempo.jovenes
    vida.adulta = adultos/tiempo.adultos
    muerte = viejos/esperanza.vida
    consumo = consumo.total.niños + consumo.total.jovenes + consumo.total.adultos + consumo.total.viejos
    
    #Metricas
    deficit.hidrico.per.capita = consumo/reserva.agua
    estres.hidrico.adulto  = (consumo.total.niños + consumo.total.jovenes + consumo.total.viejos)/adultos
      
    #State (stock) variables (d)
    d.niños = nacimientos - niñez
    d.jovenes = niñez - madurez
    d.adultos = madurez - vida.adulta
    d.viejos = vida.adulta - muerte
    d.reserva = recarga - consumo - evaporacion
    
    list(c(d.niños,d.jovenes,d.adultos,d.viejos,d.reserva),
         deficit.hidrico.per.capita = deficit.hidrico.per.capita,
         estres.hidrico.adulto = estres.hidrico.adulto)
  })
}

parameters2<-c( tasa.natalidad = 25/1000,
               tiempo.niños = 15,
               tiempo.jovenes = 10,
               tiempo.adultos = 40,
               esperanza.vida = 20,
               recarga = 5000000,
               evaporacion = 10000000,
               consumo.per.capita.adultos = 0.15, #150*365/1000 la medida esta en litros por dia ahora esta en m3 por año
               consumo.per.capita.niños = 0.1, #100*365/1000 la medida esta en litros por dia ahora esta en m3 por año
               consumo.per.capita.viejos = 0.15, #150*365/1000 la medida esta en litros por dia ahora esta en m3 por año
               consumo.per.capita.jovenes = 0.1, #100*365/1000 la medida esta en litros por dia ahora esta en m3 por año
               ahorro = 20/100
  )


intg.method<-c("rk4")

out2 <- ode(y = InitialConditions,
           times = times,
           func = agua.ahorro,
           parms = parameters2,
           method =intg.method )

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