6 votos

¿Dónde están las ecuaciones? Límites del crecimiento, Meadows et al., 2004

Estoy interesado específicamente en el modelo más reciente de World3-03 de 2004. Me preguntaba si alguien sabe cómo obtienen realmente su modelo o alguna de sus predicciones. No he podido encontrar ninguna descripción matemática de su modelo. El libro hizo un gran despliegue, pero naturalmente me pongo nervioso cuando no encuentro ninguna ecuación adjunta a un modelo. Gracias, chicos.

5voto

Khb Puntos 1002

No responde directamente al Model3-03, que es una evolución del Model3 original. La versión más reciente está disponible aquí: aru.figshare.com/articles/software/World3-03_Edited/11341697 (no Python). Creo que el .mdl es un archivo antiguo de simulink (matlab), pero si sólo quieres ver las ecuaciones, puedes mirar el archivo excel (para los parámetros históricos utilizados en la calibración del modelo), y cargar el archivo .mdl en un editor de texto o vs code / sublime.

enter image description here

No es tan limpio como tener un buen documento que explique las ecuaciones, pero supongo que se puede hacer.

En caso de que usted (o alguien) quiera probar la versión en Python, lo siguiente puede acelerar el progreso, especialmente si no está muy familiarizado con Python.

from pyworld3 import World3
import matplotlib.pyplot as plt

from pyworld3 import World3
from pyworld3.utils import plot_world_variables

elija los límites de tiempo y el paso:

  • year_min: año de inicio de la simulación, por defecto es 1900.
  • year_max: año final de la simulación, por defecto es 2100.
  • dt: paso de tiempo de la simulación, por defecto es 1.
  • pyear: fecha de aplicación de las nuevas políticas, por defecto es 1975.
  • iphst : fecha de aplicación de la nueva política sobre el tiempo de servicio sanitario, por defecto es 1940
  • verbose : bool, opcional para imprimir información para la depuración. El valor por defecto es False

    world3 = World3(year_min = 2000,year_max = 2200, dt=1, pyear = 1975, iphst = 1960,  verbose = False )

establecer todos los valores iniciales: Ver los detalles sobre en la documentación de cada sector (algunos detalles seleccionados se comentan aquí).

world3.init_world3_constants(p1i=92e7, # for example  initial [persons]. The default is 65e7
                         p2i=70e7, p3i=19e7, p4i=6e7,
                          dcfsn=3,  # desired completed family size normal. The default is 4.
                         fcest=4000, hsid=20, ieat=3, 
                         len=42, # life expectancy normal. default is 28 
                          lpd=20, mtfn=12, pet=4000, rlt=30, sad=20,
                          zpgt=4000, ici=2.1e11, sci=1.44e11, iet=4000, 
                          iopcd=400,lfpf=0.75, lufdt=2, icor1=3, icor2=3, 
                          scor1=1, 
                          scor2=1, alic1=14, alic2=14, alsc1=20, alsc2=20,
                          fioac1=0.43, fioac2=0.43,
                          ali=0.9e9, pali=2.3e9, lfh=0.7, palt=3.2e9,
                          pl=0.1, alai1=2, alai2=2, io70=7.9e11, lyf1=1,
                          lyf2=1, sd=0.07, uili=8.2e6, alln=6000, uildt=10,
                          lferti=600, ilf=600, fspd=2, sfpc=230,
                          ppoli=2.5e7, ppol70=1.36e8, ahl70=1.5, amti=1,
                          imti=10, imef=0.1, fipm=0.001, frpm=0.02,
                          ppgf1=1, ppgf2=1, ppgf21=1, pptd1=20, pptd2=20,
                          nri=1e12, nruf1=1, nruf2=1)

inicializar las variables y utilizar el archivo Json existente (Ninguno utiliza por defecto)

world3.init_world3_variables()       # initialize all variables.
world3.set_world3_table_functions(json_file=None)  # get tables from a json file (None uses default).

tienes dos opciones para el retraso fct: euler" u "odeint". El valor por defecto es "euler".

world3.set_world3_delay_functions(method='euler')  # initialize delay functions.

ejecutar el modelo

world3.run_world3()

detalles de la parcela como desee

plot_world_variables(world3.time,
                     [world3.nrfr, world3.iopc, world3.fpc, world3.pop,
                      world3.ppolx],
                     ["NRFR", "IOPC", "FPC", "POP", "PPOLX"],
                     [[0, 1], [0, 1e3], [0, 1e3], [0, 16e9], [0, 32]],
                    # img_background="./img/fig7-7.png",
                     figsize=(12, 8),
                     title="World3 Akdemy run")

La salida:

  • por defecto enter image description here

Si superpones el resultado del Modelo3 original puedes ver que es literalmente idéntico. enter image description here

  • mis parámetros modificados (posiblemente al azar)

enter image description here

También se puede tirar de sectores individuales:

plot_world_variables(world3.time,
                     [world3.ly, world3.al, world3.fpc, world3.lmf,
                      world3.pop],
                     ["LY", "AL", "FPC", "LMF", "POP"],
                     [[0, 4e3], [0, 4e9], [0, 8e2], [0, 1.6], [0, 16e9]],
                     #img_background="./img/fig7-9.png",
                     figsize=(12, 8),
                     title="World3 standard run - Agriculture sector")

enter image description here

1voto

Matthias Benkard Puntos 11264

Hay una descripción de las partes básicas del modelo World3-3 en Modelización matemática por Stefan Heinz en las páginas 280-285.

Según el autor, el núcleo del modelo es la siguiente ecuación de crecimiento logístico:

$$\frac{dP}{dt} = \frac{1}{\tau}\left( 1 - \frac{M}{K-L} \right) (P-L) $$

donde $P$ es la población, $\tau$ es la "escala temporal característica", $K$ es la capacidad de carga, $L$ es el límite inferior de la población para que $P(-\infty)=L$ , $M$ es la función de pérdida de memoria.

$$M=\int_{-\infty}^t \mu ( t - s) \left( P(s)- L \right) ds$$

aquí $\mu ( t - s)$ es una función de memoria que tiene que ser definida de alguna manera. Por ejemplo, una posible formulación es:

$$ \mu ( t - s) = \frac{1}{\tau_M} \exp \{ \frac{-|t-s|}{\tau_M} \}$$

Lo anterior es compartido por el Mundo3 1-4, ahora para el Mundo3-3 específicamente se asume que:

$$ \frac{dK}{dt} = \theta (t-t_k) \frac{K-P}{\tau_K}$$

Lo anterior es, por supuesto, una vista de pájaro de las partes principales del modelo. La simulación real de World3-3 puede supuestamente incluye unas 150 ecuaciones (ya que, por ejemplo, la capacidad de carga de la tierra depende de muchos factores). Sin embargo, lo anterior es la descripción de las partes principales del modelo. Hay más detalles en el libro de Heinz.

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X