Problema 6.1 del libro Small System Dynamics Models for Big Issues: Triple Jump towards Real-World Complexity de Erik Pruyt.
library("deSolve")
#Variables exógenas o parámetros
parameters<-c(confiscation.rate=5/100, #10%
imports=4000, #Kg/month
used=3000 #Kg/month
)
#Condiciones iniciales de las variables de estado (aquí se escriben sin d)
InitialConditions <- c(cocaine=3000 #Kg
)
#Tiempo de modelación
times <- seq(0, #initial time, month 0
5*12, #end of simulation, month 60
12)#time step, each year
#Método de integración
intg.method<-c("rk4")
#Función del caso
cocaine <- function(t, state, parameters) {
with(as.list(c(state,parameters)), {
#Variables endógenas
#Variables de flujo
confiscated<-cocaine*confiscation.rate #Kg/month
#Variables de estado (siempre inician con un d)
dcocaine<-imports-used-confiscated #Kg
list(c(dcocaine), confiscated=confiscated) #En la lista deben ir las variables que quieres graficar, dentro de la c() las variables de estado (las que inician con d) y fuera de la c(), pero dentro del paréntesis de la lista, las demás variables que se deseen plotear.
})
}
#Simulación del model
out <- ode(y = InitialConditions,
times = times,
func = cocaine, #recuerda actualizar el nombre de tu función para cada caso que resulevas
parms = parameters,
method =intg.method )
#Gráficos de resultados del modelo
plot(out)