Inicialmente, la demanda anual de agua, medida en hectómetros cúbicos, se distribuye con [X+5] millones para el sector industrial, [X+10] millones para el sector agrícola y [X+3] millones para el sector doméstico. Para efectos de simplificación del modelo, se asumirá que no existen variaciones en las fuentes de recarga natural de los acuíferos por causas climáticas externas, manteniendo una base constante de comparación.
El déficit hídrico inicial —es decir, la cantidad de agua necesaria que no alcanza a ser cubierta por las fuentes actuales— se establece en 20 unidades para la zona industrial, 50 para la agrícola y 15 para la doméstica. Se proyecta que, debido al crecimiento desmedido, este déficit se incrementará de forma constante a una tasa de 2 unidades por cada millón de habitantes o unidades de demanda establecidas en los parámetros iniciales de cada sector.
A partir de la implementación de una nueva Política de Gestión Integral del Agua, se abre un periodo de observación de 12 años para evaluar su efectividad. Se espera que, gracias a la tecnificación y modernización de los sistemas, la incidencia del déficit disminuya anualmente un 6% en el sector industrial, un 9% en el agrícola y un 4% en el doméstico. El modelo debe programarse para ejecutarse a lo largo de un período total de 40 años, analizando el desarrollo del sistema cada 4 meses. La variable fundamental a monitorear será el déficit hídrico total de la región, además de las variables de estado y flujo que se identifiquen durante la construcción del modelo.
Variables de estado: Déficit en el sector agrícola Déficit en el sector industrial Déficit en el sector doméstico
Variables de flujo: Aumento déficit industrial aumento déficit agrícola Aumento déficit doméstico Reducción déficit industrial Reducción déficit agrícola Reducción déficit doméstico
Variables exogenas: Demanda sector industrial Demanda sector agrícola Demanda sector doméstico Demanda anual de agua Déficit hídrico total Presión gubernamental por habitantes Tecnificación y modernización de los sistemas
library(deSolve)
library(ggplot2)
library(tidyr)
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
Stock: 1. Déficit en el sector agrícola 2. Déficit en el sector industrial 3. Déficit en el sector doméstico
Flujo 1. aumento déficit industrial 2. aumento déficit agrícola 3. aumento déficit doméstico 4. reducción déficit industrial 5. reducción déficit agrícola 6. reducción déficit doméstico
Endógenas 1. demanda sector industrial 2. demanda sector agrícola 3. demanda sector doméstico 4. demanda anual de agua 5. déficit hídrico total 6. presión gubernamental por habitantes 7. tecnificación y modernización de los sistemas
Exógenas 1. Millón de habitantes
# Condiciones iniciales
InitialConditions <- c(
deficit.industrial = 20,
deficit.agricola = 50,
deficit.domestico = 15
)
# Tiempo de simulación
times <- seq(0, #initial time
40, #end time
4/12) #cada 4 meses
water.func <- function(t, state, parameters) {
with(as.list(c(state, parameters)), {
# Variables auxiliares exógenas
demanda.industrial <- 6 + 5
demanda.agricola <- 6 + 10
demanda.domestica <- 6 + 3
# Variables auxiliares endógenas
demanda.anual.agua <- demanda.industrial + demanda.agricola + demanda.domestica
deficit.hidrico.total <- deficit.industrial + deficit.agricola + deficit.domestico
# La política se usa observa desde año 12
policy.factor <- ifelse(t >= 12, 1, 0)
# Variables de flujo
aumento.deficit.industrial <- tasa.crecimiento * demanda.industrial
aumento.deficit.agricola <- tasa.crecimiento * demanda.agricola
aumento.deficit.domestico <- tasa.crecimiento * demanda.domestica
reduccion.deficit.industrial <- tasa.red.industrial * deficit.industrial * policy.factor
reduccion.deficit.agricola <- tasa.red.agricola * deficit.agricola * policy.factor
reduccion.deficit.domestico <- tasa.red.domestico * deficit.domestico * policy.factor
# Variables de estado (stocks)
ddeficit.industrial <- aumento.deficit.industrial - reduccion.deficit.industrial
ddeficit.agricola <- aumento.deficit.agricola - reduccion.deficit.agricola
ddeficit.domestico <- aumento.deficit.domestico - reduccion.deficit.domestico
list(
c(ddeficit.industrial,
ddeficit.agricola,
ddeficit.domestico),
# Auxiliares que también queremos observar
demanda.industrial = demanda.industrial,
demanda.agricola = demanda.agricola,
demanda.domestica = demanda.domestica,
demanda.anual.agua = demanda.anual.agua,
aumento.deficit.industrial = aumento.deficit.industrial,
aumento.deficit.agricola = aumento.deficit.agricola,
aumento.deficit.domestico = aumento.deficit.domestico,
reduccion.deficit.industrial = reduccion.deficit.industrial,
reduccion.deficit.agricola = reduccion.deficit.agricola,
reduccion.deficit.domestico = reduccion.deficit.domestico,
deficit.hidrico.total = deficit.hidrico.total
)
})
}
parameters <- c(
X = 1,
tasa.crecimiento = 2,
tasa.red.industrial = 0.06,
tasa.red.agricola = 0.09,
tasa.red.domestico = 0.04
)
intg.method <- c("rk4")
out <- ode(y = InitialConditions,
times = times,
func = water.func,
parms = parameters,
method = intg.method)
plot(out,
col = c("pink"))
#Convertir salida a data frame
out_df <- as.data.frame(out)
#Gráfica de variables de estado
stocks_df <- out_df %>%
select(time, deficit.industrial, deficit.agricola, deficit.domestico) %>%
pivot_longer(
cols = -time,
names_to = "variable",
values_to = "value"
)
ggplot(stocks_df, aes(x = time, y = value, color = variable)) +
geom_line(linewidth = 1) +
labs(
title = "Comportamiento de las variables de estado",
x = "Tiempo (años)",
y = "Déficit"
) +
theme_minimal()
#Gráfica de variables de flujo
flows_df <- out_df %>%
select(time,
aumento.deficit.industrial,
aumento.deficit.agricola,
aumento.deficit.domestico,
reduccion.deficit.industrial,
reduccion.deficit.agricola,
reduccion.deficit.domestico) %>%
pivot_longer(
cols = -time,
names_to = "variable",
values_to = "value"
)
ggplot(flows_df, aes(x = time, y = value, color = variable)) +
geom_line(linewidth = 1) +
labs(
title = "Comportamiento de las variables de flujo",
x = "Tiempo (años)",
y = "Valor del flujo"
) +
theme_minimal()
#Gráfica de la variable relevante solicitada
ggplot(out_df, aes(x = time, y = deficit.hidrico.total)) +
geom_line(linewidth = 1, color = "blue") +
labs(
title = "Comportamiento del déficit hídrico total",
x = "Tiempo (años)",
y = "Déficit hídrico total"
) +
theme_minimal()
#Gráfica adicional de demanda anual de agua
ggplot(out_df, aes(x = time, y = demanda.anual.agua)) +
geom_line(linewidth = 1, color = "purple") +
labs(
title = "Demanda anual de agua",
x = "Tiempo (años)",
y = "Demanda anual"
) +
theme_minimal()