Considera la descripción del caso 18.19 de Pruyt (2003)
Responde a las siguientes preguntas
library("deSolve")
parameters<-c(depreciation.rate.cI=0.05,
investment.rate.cI=0.1,
production.rate.cI=1.0,
market.volume.cI=1.0,
market.volume.cII=1.0,
tax.rate.cI=0.2,
resource.costs.cI= 1.0,
standard.factor.cI= 1.0,
deterioration.rate.cI=0.05,
reference.price.cI=5.0,
depreciation.rate.cII=0.05,
investment.rate.cII=0.1,
production.rate.cII=1.0,
market.volume.cII=1.0,
market.volume.cIII=1.0,
tax.rate.cII=0.2,
resource.costs.cII= 1.0,
standard.factor.cII= 1.0,
deterioration.rate.cII=0.05,
reference.price.cII=5.0
)
Initial.Conditions <- c(production.capacity.cI = 1.0,
standards.of.cI=1.0,
production.capacity.cII = 0.1,
standards.of.cII=0.1
)
globalization.and.liberalization<- function(t, state, parameters) {
with(as.list(c(state,parameters)), {
#COUNTRY 1
#Endogenous variables
production.costs.cI<-standards.of.cI*standard.factor.cI
product.costs.cI<-resource.costs.cI+production.costs.cI
production.costs.cII<-standards.of.cII*standard.factor.cII
product.costs.cII<-resource.costs.cII+production.costs.cII
product.price.cI<-product.costs.cI*(1+tax.rate.cI)
product.price.cII<-product.costs.cII*(1+tax.rate.cII)
customs.duties.raised.by.cI<-ifelse(t<10,0.5,0)
subsidy.cII<-ifelse(t<10,0,0)
customs.duties.raised.by.cII<-ifelse(t<10,0,0)
subsidy.cI<-ifelse(t<10,0.75,0)
price.of.cII.products.in.cI<-product.price.cII*(1-subsidy.cII+customs.duties.raised.by.cI)
price.of.cI.products.in.cII<-product.price.cI*(1-subsidy.cI+customs.duties.raised.by.cII)
supply.cI<-production.capacity.cI*1*production.rate.cI
price.ratio.of.domestic.versus.imported.products.in.cI<-product.price.cI/price.of.cII.products.in.cI
price.ratio.of.domestic.versus.imported.products.in.cII<-product.price.cII/price.of.cI.products.in.cII
percentage.purchased.by.cI.from.cI<-approx(c(0.0,0.5,1.0,1.5,2.0,5.0),
c(1.0,1.0,0.5,0.0,0.0,0.0),
xout=price.ratio.of.domestic.versus.imported.products.in.cI)$y
percentage.purchased.by.cII.from.cII<- approx(c(0.0,0.5,1.0,1.5,2.0,5.0),
c(1.0,1.0,0.5,0.0,0.0,0.0),
xout=price.ratio.of.domestic.versus.imported.products.in.cII)$y
demand.for.products.from.cI<-percentage.purchased.by.cI.from.cI*market.volume.cI+market.volume.cII*(1-percentage.purchased.by.cII.from.cII)
surplus.cI<-supply.cI-demand.for.products.from.cI
investment.factor.cI<-2
investment.function.cI<-ifelse(t<10,2,investment.factor.cI)
investments.cI<-ifelse(surplus.cI<=0, investment.rate.cI*production.capacity.cI*investment.function.cI, 0)
progress.factor.cI<-2
progress.function.cI<-ifelse(t<10,2,progress.factor.cI)
investments.in.progress.cI<-investments.cI*progress.function.cI
progress.cI<-standards.of.cI*investments.in.progress.cI*(1-product.price.cI/reference.price.cI)
#Flow variables
depreciation.cI<-depreciation.rate.cI*production.capacity.cI
deterioration.cI<-standards.of.cI*deterioration.rate.cI
#State variables
dproduction.capacity.cI<-investments.cI-depreciation.cI #porcentaje
dstandards.of.cI<-progress.cI-deterioration.cI
#COUNTRY 2
#Endogenous variables
supply.cII<-production.capacity.cII*1*production.rate.cII
product.price.cII<-product.costs.cII*(1+tax.rate.cII)
demand.for.products.from.cII<-percentage.purchased.by.cII.from.cII*market.volume.cII+market.volume.cI*(1-percentage.purchased.by.cI.from.cI)
surplus.cII<-supply.cII-demand.for.products.from.cII
investment.factor.cII<-2
investment.function.cII<-ifelse(t<10,0.2,2)
investments.cII<-ifelse(surplus.cII<=0, investment.rate.cII*production.capacity.cII*investment.function.cII, 0)
progress.factor.cII<-2
progress.function.cII<-ifelse(t<10,1,2)
investments.in.progress.cII<-investments.cII*progress.function.cII
progress.cII<-standards.of.cII*investments.in.progress.cII*(1-product.price.cII/reference.price.cII)
#Flow variables
depreciation.cII<-depreciation.rate.cII*production.capacity.cII
deterioration.cII<-standards.of.cII*deterioration.rate.cII
#State variables
dproduction.capacity.cII<-investments.cII-depreciation.cII #porcentaje
dstandards.of.cII<-progress.cII-deterioration.cII
list(c(dproduction.capacity.cI,dstandards.of.cI,dproduction.capacity.cII,dstandards.of.cII), investments.cI=investments.cI, investments.cII=investments.cII)
})
}
times<-seq(0, #initialtime
50, #tiempo final
1)#número de repetición de puntos)
intg.method<-c("rk4")
out <- ode(y = Initial.Conditions,
times = times,
func = globalization.and.liberalization,
parms = parameters,
method =intg.method)
plot(out, mfrow = c(1, 2), col = c("blue"))
Como puede observarse en la capacidad de producción del país I se desploma tras la liberación del mercado. Esto se debe al incremento de las inversiones en el país II, variable que incentiva directamente el crecimiento de la capacidad de producción del país II.
La capacidad de producción y los estandares del país 2 estan a la baja debido a que la globalización es necesaria para detonar un cambio en las funciones de inversión y progreso, ambas variables de estado estan en funcion de inversión y progreso respectivamente, por tanto la globalizacion es determinante para que el país 2 alcance estabilidad.
Respecto al país 1, la globalizacion no tiene ningún efecto en los factores de inversión y progreso, sin embargo, a raiz de la liberación del mercado, el subsidio del producto del país 1 en el país dos se elimina (pasa de 50% a 0), lo que incrementa su precio, afectando finalmente la decision de compra del país 2, asimismo, el impuesto aduanal del país 1 pasa de 75% a 0, lo que repercute en el precio del producto del país 2 en el país 1, el precio se reduce lo que a su ves tiene un fuerte impacto en la decision de compra del pais 1.
En resumen, estas afectaciones se reflejan en variaciones en la diferencia entre oferta y demanda de cada país, lo que posteriormente condiciona los factores de inversión y progreso, mismos de los que depende el comportamiento en el tiempo de la capacidad de producción y estandares para ambos países.
plot(out[,"production.capacity.cI"], out[,"investments.cI"], xlab="production.capacity.cI", ylab = "investments.cI", type = "p", lwd = 2, main="Diagrama de fase, paæ¼ã¹¤s I")
plot(out[,"production.capacity.cII"], out[,"investments.cII"], xlab="production.capacity.cII", ylab = "investments.cII", type = "p", lwd = 2, main="Diagrama de fase, paæ¼ã¹¤s II")
Los sistemas tienen una trayectoria lineal, en el caso del país I existen varios puntos de equilibrio que se alcanzan cuando su capacidad de producción llega al 75% y 115%, teniendo una inestabilidad. Para el caso del país II se puede identificar plenamente que el equilibrio se alcanza hasta que la capacidad de producción llega hasta aproximadamente 135%, presentando un comportamiento estable.
Considera la descripción del caso 18.22 de Pruyt (2003)
Responde a las siguientes preguntas
library("deSolve")
collapse.of.civilizations<- function(t, state, parameters) {
with(as.list(c(state,parameters)), {
#Endogenous variables
food.produced<-fertility.of.lands*agricultural.land
demand.for.food<-consumed.food.per.person*population
gap<-demand.for.food-food.produced
#Flow variables
deforestation<-min(gap/max(fertility.of.lands,1),forest/4)/intensity
fertility.losses<-fertility.of.lands*min(2,(agricultural.land/forest)^1.5)/intensity
natural.population.increase<-population*natural.increase.rate
emigration<-(gap/consumed.food.per.person)*emigration.ratio
#stock variables
dagricultural.land<- deforestation
dforest<- -1*deforestation
dfertility.of.lands<- -1*fertility.losses
dpopulation<-natural.population.increase-emigration
list(c(dforest, dagricultural.land, dfertility.of.lands, dpopulation), deforestation=deforestation, fertility.losses=fertility.losses)
})
}
parameters<-c(intensity=1,
emigration.ratio=0.05,
consumed.food.per.person=200, #kg per person per year
natural.increase.rate=(2^(1/408)-1))
InitialConditions <- c(forest = 5000,
agricultural.land=8,
fertility.of.lands=5000000,
population=100000)
times <- seq(-1000, #initial time
1000, #end of simulation
1) #time step
intg.method<-c("rk4")
#Simulate model
out2 <- ode(y = InitialConditions,
times = times,
func = collapse.of.civilizations,
parms = parameters,
method =intg.method )
plot(out2, mfrow = c(1, 3), col = c("red"))
La población empieza a decrecer drásticamente hasta su desaparición alrededor del año 800 (según se solicitó en el punto anterior).
library("deSolve")
collapse.of.civilizations<- function(t, state, parameters) {
with(as.list(c(state,parameters)), {
#Endogenous variables
food.produced<-fertility.of.lands*agricultural.land
demand.for.food<-consumed.food.per.person*population
gap<-demand.for.food-food.produced
#Flow variables
deforestation<-min(gap/max(fertility.of.lands,1),forest/4)/intensity
fertility.losses<-fertility.of.lands*min(2,(agricultural.land/forest)^1.5)/intensity
natural.population.increase<-population*natural.increase.rate
emigration<-(gap/consumed.food.per.person)*emigration.ratio
#stock variables
dagricultural.land<- deforestation
dforest<- -1*deforestation
dfertility.of.lands<- -1*fertility.losses
dpopulation<-natural.population.increase-emigration
list(c(dforest, dagricultural.land, dfertility.of.lands, dpopulation), deforestation=deforestation, fertility.losses=fertility.losses)
})
}
parameters<-c(intensity=1.2,
emigration.ratio=0.01,
consumed.food.per.person=150, #kg per person per year
natural.increase.rate=(2^(1/408)-1))
InitialConditions <- c(forest = 5000,
agricultural.land=8,
fertility.of.lands=5000000,
population=100000)
times <- seq(-1000, #initial time
1000, #end of simulation
1) #time step
intg.method<-c("rk4")
#Simulate model
out2 <- ode(y = InitialConditions,
times = times,
func = collapse.of.civilizations,
parms = parameters,
method =intg.method )
plot(out2, mfrow = c(1, 3), col = c("green"))
Se aumentó la intensidad en 20%, la emigración se redujo al 1% y el consumo de comida por persona a 150 kg anuales. Con esto se puede ver un retraso en el tiempo de colpaso.
library("deSolve")
collapse.of.civilizations<- function(t, state, parameters) {
with(as.list(c(state,parameters)), {
#Endogenous variables
food.produced<-fertility.of.lands*agricultural.land
demand.for.food<-consumed.food.per.person*population
gap<-demand.for.food-food.produced
#Flow variables
deforestation<-min(gap/max(fertility.of.lands,1),forest/4)/intensity
fertility.losses<-fertility.of.lands*min(2,(agricultural.land/forest)^1.5)/intensity
natural.population.increase<-population*natural.increase.rate
emigration<-(gap/consumed.food.per.person)*emigration.ratio
#stock variables
dagricultural.land<- deforestation
dforest<- -1*deforestation
dfertility.of.lands<- -1*fertility.losses
dpopulation<-natural.population.increase-emigration
list(c(dforest, dagricultural.land, dfertility.of.lands, dpopulation), deforestation=deforestation, fertility.losses=fertility.losses)
})
}
parameters<-c(intensity=1.2,
emigration.ratio=0.01,
consumed.food.per.person=100, #kg per person per year
natural.increase.rate=(2^(1/408)-1))
parameters2<-c(intensity=1.3,
emigration.ratio=0.02,
consumed.food.per.person=150, #kg per person per year
natural.increase.rate=(2^(1/408)-1))
parameters3<-c(intensity=1.4,
emigration.ratio=0.03,
consumed.food.per.person=200, #kg per person per year
natural.increase.rate=(2^(1/408)-1))
InitialConditions <- c(forest = 5000,
agricultural.land=8,
fertility.of.lands=5000000,
population=100000)
times <- seq(-1000, #initial time
2000, #end of simulation
1) #time step
intg.method<-c("rk4")
#Simulate model
out2 <- ode(y = InitialConditions,
times = times,
func = collapse.of.civilizations,
parms = parameters,
method =intg.method )
out3 <- ode(y = InitialConditions,
times = times,
func = collapse.of.civilizations,
parms = parameters2,
method =intg.method )
out4 <- ode(y = InitialConditions,
times = times,
func = collapse.of.civilizations,
parms = parameters3,
method =intg.method )
plot(out2, out3, out4, mfrow = c(1, 3), col = c("green", "red", "blue"))
Ante cambios marginales el comportamiento es el mismo, sólo se retrasan los efectos.
library("deSolve")
collapse.of.civilizations<- function(t, state, parameters) {
with(as.list(c(state,parameters)), {
#Endogenous variables
food.produced<-fertility.of.lands*agricultural.land
demand.for.food<-consumed.food.per.person*population
gap<-demand.for.food-food.produced
#Flow variables
deforestation<-min(gap/max(fertility.of.lands,1),forest/4)/intensity
fertility.losses<-fertility.of.lands*min(2,(agricultural.land/forest)^1.5)/intensity
natural.population.increase<-population*natural.increase.rate
emigration<-(gap/consumed.food.per.person)*emigration.ratio
#stock variables
dagricultural.land<- deforestation
dforest<- -1*deforestation
dfertility.of.lands<- -1*fertility.losses
dpopulation<-natural.population.increase-emigration
list(c(dforest, dagricultural.land, dfertility.of.lands, dpopulation), deforestation=deforestation, fertility.losses=fertility.losses)
})
}
collapse.of.civilizations2<- function(t, state, parameters) {
with(as.list(c(state,parameters)), {
#Endogenous variables
food.produced<-fertility.of.lands*agricultural.land
demand.for.food<-consumed.food.per.person*population
gap<-demand.for.food-food.produced
#Flow variables
deforestation<-min(gap/max(fertility.of.lands,1),forest/4)/intensity
fertility.losses<-fertility.of.lands*min(2,(agricultural.land/forest)^1.5)/intensity
natural.population.increase<-population*natural.increase.rate
emigration<-(gap/consumed.food.per.person)*emigration.ratio
fertility.recuperation<-0.6*fertility.losses
#stock variables
dagricultural.land<- deforestation
dforest<- -1*deforestation
dfertility.of.lands<- -0.5*fertility.losses+fertility.recuperation
dpopulation<-natural.population.increase-emigration
list(c(dforest, dagricultural.land, dfertility.of.lands, dpopulation), deforestation=deforestation, fertility.losses=fertility.losses)
})
}
parameters<-c(intensity=1.2,
emigration.ratio=0.01,
consumed.food.per.person=100, #kg per person per year
natural.increase.rate=(2^(1/408)-1))
InitialConditions <- c(forest = 5000,
agricultural.land=8,
fertility.of.lands=5000000,
population=100000)
times <- seq(-1000, #initial time
5000, #end of simulation
1) #time step
intg.method<-c("rk4")
#Simulate model
out2 <- ode(y = InitialConditions,
times = times,
func = collapse.of.civilizations,
parms = parameters,
method =intg.method )
out3 <- ode(y = InitialConditions,
times = times,
func = collapse.of.civilizations2,
parms = parameters,
method =intg.method )
plot(out2, out3, mfrow = c(1, 3), col = c("green", "red"))
El modelo es muy sensible ante cambios estructurales. Agregando variables que pudieran contrarestar el efecto negativo de otras, pueden provocar que el modelo no llegue al colapso. En este caso se modificó la forma en que se calculó la fertilidad de la tierra agregando una nueva variable llamada recuperación de fertilidad, evitando de esta forma que el modelo colapse.
library("deSolve")
collapse.of.civilizations<- function(t, state, parameters) {
with(as.list(c(state,parameters)), {
#Endogenous variables
food.produced<-fertility.of.lands*agricultural.land
demand.for.food<-consumed.food.per.person*population
gap<-demand.for.food-food.produced
#Flow variables
deforestation<-min(gap/max(fertility.of.lands,1),forest/4)/intensity
fertility.losses<-fertility.of.lands*min(2,(agricultural.land/forest)^1.5)/intensity
natural.population.increase<-population*natural.increase.rate
emigration<-(gap/consumed.food.per.person)*emigration.ratio
#stock variables
dagricultural.land<- deforestation
dforest<- -1*deforestation
dfertility.of.lands<- -1*fertility.losses
dpopulation<-natural.population.increase-emigration
list(c(dforest, dagricultural.land, dfertility.of.lands, dpopulation), deforestation=deforestation, fertility.losses=fertility.losses)
})
}
collapse.of.civilizations2<- function(t, state, parameters) {
with(as.list(c(state,parameters)), {
#Endogenous variables
food.produced<-fertility.of.lands*agricultural.land
demand.for.food<-consumed.food.per.person*population
gap<-demand.for.food-food.produced
#Flow variables
deforestation<-min(gap/max(fertility.of.lands,1),forest/4)/intensity
fertility.losses<-fertility.of.lands*min(2,(agricultural.land/forest)^1.5)/intensity
natural.population.increase<-population*natural.increase.rate
emigration<-(gap/consumed.food.per.person)*emigration.ratio
fertility.recuperation<-0.5*fertility.losses
#stock variables
dagricultural.land<- deforestation
dforest<- -1*deforestation
dfertility.of.lands<- -0.5*fertility.losses+fertility.recuperation
dpopulation<-natural.population.increase-emigration
list(c(dforest, dagricultural.land, dfertility.of.lands, dpopulation), deforestation=deforestation, fertility.losses=fertility.losses)
})
}
parameters<-c(intensity=1.2,
emigration.ratio=0.01,
consumed.food.per.person=100, #kg per person per year
natural.increase.rate=(2^(1/408)-1))
InitialConditions <- c(forest = 5000,
agricultural.land=8,
fertility.of.lands=5000000,
population=100000)
times <- seq(-1000, #initial time
2000, #end of simulation
1) #time step
intg.method<-c("rk4")
#Simulate model
out2 <- ode(y = InitialConditions,
times = times,
func = collapse.of.civilizations,
parms = parameters,
method =intg.method )
out3 <- ode(y = InitialConditions,
times = times,
func = collapse.of.civilizations2,
parms = parameters,
method =intg.method )
plot(out2, out3, mfrow = c(1, 3), col = c("green", "red"))
La política propuesta para evitar el colpaso es fomentar la recuperación de la fertilidad, mediante la recuperación de al menos 50% de las pérdidas de fertilidad por la deforestación. Con esta política se logra evitar el colapso del modelo.
plot(out2[,"population"], out2[,"fertility.losses"], xlab="population", ylab = "fertility.losses", type = "p", lwd = 2)
plot(out3[,"population"], out2[,"fertility.losses"], xlab="population", ylab = "fertility.losses", type = "p", lwd = 2)
Se puede observar claramente que aunque la perdida de fertilidad no ha sufrido cambios, la implementación de la política ha permitido que el incremento de la población se de mejor forma.