Modelado del problema de pronóstico de población
1. Resumen
Este modelado es. Basado en los datos demográficos de EE. UU., se verificó y simuló el modelo de población malthusiano y el modelo logístico, y finalmente se determinó que el modelo logístico era un modelo de población ideal. Este modelo se utilizó luego para predecir el crecimiento de la población de China basándose en los datos del censo chino y, finalmente, un modelo. Se propuso una estrategia de control de la población.
2. Verificación de simulación de modelos existentes
(1) Encontrar modelos existentes que describan y controlen el crecimiento de la población.
Existen dos modelos poblacionales básicos:
lt1 gt; modelo de crecimiento exponencial (modelo poblacional malthusiano)
lt2 gt. Modelo de crecimiento detenido (modelo logístico)
(2) Realizó un análisis en profundidad del modelo matemático existente y lo verificó mediante simulación por computadora.
Tabla 1 Datos demográficos de Estados Unidos
Año (AD)
Población (millones) 1790
3,9 1800
5.3 1810
7.2 1820
9.6 1830
12.9 1840
17.1 1850
23.2
p>Año (AD)
Población (millones) 1860
31,4 1870
38,6 1880
50,2 1890 p>
62,9 1900
76,0 1910
92,0 1920
106,5
Año (AD)
Población (millones) 1930
123,2 1940
131,7 1950
150,7 1960
179,3 1970
204,0 1980
226.5 1990
251.4
lt1 gt; modelo de crecimiento exponencial (modelo malthusiano de población)
Este modelo fue el primero en proponerse Malthus (1766-1834), el economista británico que estudió por primera vez las cuestiones de población. En "Sobre la población", publicado en 1798, se propuso por primera vez un modelo de crecimiento de la población basado en más de 100 años de datos demográficos.
1 Supuesto: La tasa de crecimiento poblacional R permanece sin cambios (es decir, el crecimiento poblacional por unidad de tiempo es proporcional a la población actual).
2. Modelado: Recuerde que la población en el momento t = 0 es x0 y la población en el momento t es x(t). Debido a la gran cantidad, x(t) puede considerarse como una función continuamente diferenciable. El incremento poblacional de t a t δt es:
X(t) satisface la ecuación diferencial:
——————————————(1 )
3 Solución del modelo: resuelva la ecuación diferencial anterior para obtener:
———————————————(2)
4 Estimación de parámetros del modelo:
R = 0,0237 se resuelve mediante regresión lineal (consulte el apéndice para conocer el código fuente del programa y los resultados).
5 Verificación de simulación:
Sustituya x0 = 3,9, r = 0,0237 en la fórmula (2), calcule el error y cree una imagen (consulte el apéndice para conocer el código fuente del programa, error , e imagen Imagen La línea roja del medio son los datos del censo y la línea azul es la curva de predicción. La salida en el resultado de la operación es el año, la población real, la población prevista y el error.
Análisis del modelo
Como se puede ver en las imágenes anteriores y en los resultados de los cálculos, la población prevista de 1790 a 1950 concuerda bien con la población real, pero el error es cada vez mayor. y más grande después de 1950.
Según la fórmula (2), podemos calcular:
2x0=x0e
Es decir, e =2.
Resuélvelo, es decir, T=50ln2≈34.6 (años)
Es decir, cada 35 años, la población mundial se duplicará.
Basándonos en la población mundial de 3,34 mil millones en 1965, podemos obtener:
2565438 200 billones en 2005
1800 billones en 2625
3600 billones en 2660
...
Si se calcula en base a la superficie terrestre per cápita (incluida la superficie del agua y los barcos), habrá ser sólo 0,09 metros cuadrados en 2625.
/La gente sólo puede estar exprimida junto a otra gente. Treinta y cinco años después, en 2660, la población se duplicó de nuevo.
Entonces habrá gente parada sobre sus hombros.
Razones
Los resultados de este modelo indican que la población crecerá exponencialmente, pero de hecho, a medida que la población crece, los recursos naturales, las condiciones ambientales y otros factores limitan cada vez más el crecimiento de la población. Si la tasa de crecimiento natural de la población puede considerarse constante cuando la base poblacional es pequeña, entonces cuando la población aumenta hasta un cierto número, la tasa de crecimiento disminuirá a medida que aumenta la población, lo que dará lugar a errores mayores.
lt2 gt. Modelo de crecimiento detenido (modelo logístico)
1 Supuestos:
(1) La tasa de crecimiento poblacional R es una función (función de resta) de la población x(t) r(x), El supuesto más simple es R(x)= R–SX, R, S > 0 (función lineal), y R se denomina tasa de crecimiento intrínseco.
(2) Considerando las limitaciones de los recursos naturales y las condiciones ambientales, la capacidad máxima de población anual es xm.
2. Construya el modelo:
Cuando x = xm, la tasa de crecimiento debe ser 0. Es decir, r(xm)= 0, entonces s = r/xm. Sustituya r(x) = r(x) = r(1–x/XM) en r(x) = r-sx y sustituya la fórmula anterior en (1):
———— —— ——————(3)
Resolviendo el modelo 3:
Resolviendo la ecuación (3), obtenemos
————— ————— —(4)
Estimación de parámetros del modelo 4:
R = 0,0280 y XM = 311,9527 se obtienen mediante ajuste de curvas (consulte el apéndice para conocer el código fuente del programa). y resultados).
5 Verificación de simulación:
Sustituya x0 = 3,9, r = 0,0280, XM = 311,9527 en la fórmula (2), calcule el error y cree una imagen (consulte el apéndice para ver código fuente del programa y error, imagen, la línea roja en la imagen son los datos del censo y la línea azul es la curva de predicción. La salida en el resultado de la operación es el año, la población real y la población pronosticada.
Análisis del modelo
De lo anterior se puede ver en el cálculo de errores y las imágenes que el modelo logístico puede predecir muy bien la población futura y es un modelo de población relativamente preciso.
3. Apéndice
1. Modelo poblacional malthusiano. Código fuente del programa de estimación de parámetros y resultados en ejecución.
Código fuente del programa: (el código fuente se guarda en dengchang.m)
t =[1790 1800 181820 1830 1840 1850 1860 1870 1880 1880 1890 1890 65438
x =[3,9 5,3 7,2 9,6 12,9 17.1.23.2 31,4 38,6 50,2 62,9 76,0 92,0 106,5 123,2 131,7 150,7
x0 = x(1);
t0 = t(1);
r = regresión (log(x'/x0), t '–t0)
? Resultados de ejecución:
gt gt Deng Chang
r =
0.0237
2. La simulación del modelo de población malthusiano verificó parte de la fuente del programa. código y resultados de ejecución.
Código fuente del programa: (el código fuente se guarda en dengchang.m)
t =[1790 1800 181820 1830 1840 1850 1860 1870 1880 1880 1890 1890 65438
x =[3,9 5,3 7,2 9,6 12,9 17.1.23.2 31,4 38,6 50,2 62,9 76,0 92,0 106,5 123,2 131,7 150,7
x0 = x(1);
r = 0,0237
resultado = x0 * exp(r *(t '-t0));
[t' x 'resultado(x '-resultado).
/resultado * 100]
plot(t, x, ' r ');
Espera
plot(t, resultado, ' b ')
? Resultados de ejecución
gt gtDeng Chang
ans =
1.0e 003 *
1.7900 0.0039 0.0039 0
1,8000 0,0053 0,0049 0,0072
1,8100 0,0072 0,0063 0,0149
1,8200 0,0096 0,0079 0,0209
1,8300 0,0129 0,0101 02. 82
1,8400 0,0171 0,0128 0,0341
1.8500 0.0232 0.0162 0.0435
1.8600 0.0314 0.0205 0.0532
1.8700 0.0386 0.0260 0.0486
1.8800 0.0502 29 0,0525
1.8900 0.0629 0.0417 0.0508
1.9000 0.0760 0.0529 0.0437
1.9100 0.0920 0.0670 0.0373
1.9200 0.1065 0.0849 0. 0254
1,9300 0,1232 0,1077 0,0144 p>
1,9400 0,1317 0,1365 -0,0035
1,9500 0,1507 0,1729 -0,0129
1,9600 0,1793 0,2192 -0,0182
1,9700 .2040 0.277 8 - 0.0266
1.9800 0.2265 0.3521 -0.0357
1.9900 0.2514 0.4463 -0.0437
Dibujo
3. y resultados de ejecución.
Definir función (el código fuente se guarda en curvefun.m)
Función f = curvefun(x, tdata)
x0 = 3.0
t0 = tdata(1);
f = x(1). / (1 (x(1)). / x0 - 1) * exp(-x(2).
*(tdata-t0)));
Código fuente del programa: (el código fuente se guarda en dengchang.m)
tdata =[1790 1800 181820 1830 1840 1850 1860 1870 1880 1880 1880 1890 65438
xdata =[3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4 38.6 50.2 62.9 76.0 92.0 106.5 123.2 131.7 150.7
xs = [100, 0,5 ];
x = lsqcurvefit('curvefun ', xs, tdata, xdata)
Resultados de la ejecución:
gt gtDeng Chang
Terminación de la optimización: valor relativo de la función
Cambios menores que OPTIONS.TolFun
x =
311.9527 0.0280
4. La simulación del modelo logístico verificó parte del código fuente del programa y resultado de la operación.
Código fuente del programa: (el código fuente se guarda en dengchang.m)
t =[1790 1800 181820 1830 1840 1850 1860 1870 1880 1880 1890 1890 65438
x =[3,9 5,3 7,2 9,6 12,9 17.1.23.2 31,4 38,6 50,2 62,9 76,0 92,0 106,5 123,2 131,7 150,7
x0 = x(1);
t0 = t(1);
r = 0.0280
XM = 311.9527;
Resultado = xm. / (1 (xm./x0-1)* exp(-r . *(t '-t0)));
[t' x 'resultado(x '-resultado).
/resultado * 100]
plot(t, x, ' r ');
Espera
plot(t, resultado, ' b ')
Resultados de la ejecución
gt gtDeng Chang
ans =
1.0e 003 *
1.7900 0.0039 0.0039 0
1,8000 0,0053 0,0051 0,0031
1,8100 0,0072 0,0068 0,0064
1,8200 0,0096 0,0089 0,0080
1,8300 0,0129 0117 0,0107
1.8400 0.0171 0.0152 0.0123
1.8500 0.0232 0.0198 0.0169
1.8600 0.0314 0.0257 0.0221
1.8700 0.0386 0.0332 0 . 0164
1.8800 0,0502 0,0424 0,0184
1,8900 0,0629 0,0538 0,0170
1,9000 0,0760 0,0674 0,0128
1,9100 0,0920 0,0833
1,9200 0,1065 0,1 015 0,0049 p>
1.9300 0.1232 0.1215 0.0014
1.9400 0.1317 0.1428 -0.0078
1.9500 0.1507 0.1646 -0.0084
1.9600 0.1793 0.1861. 0036 >
1.9700 0.2040 0.2064 -0.0012
1.9800 0.2265 0.2250 0.0007
1.9900 0.2514 0.2414 0.0041
Dibujar
5. Modelo logístico para realizar predicciones del crecimiento demográfico en China y proporciona parte del código fuente del programa y los resultados de ejecución.
Definir función: (el código fuente se guarda en curvefun.m)
Función f = curvefun(x, tdata)
x0 = 3.0
t0 = tdata(1);
f = x(1). / (1 (x(1))./ x0 - 1) * exp(-x(2).*(tdata-t0)));
Código fuente del programa: (el código fuente se guarda en dengchang .m)
tdata =[1908 1933 1953 1964 1982 1990 1995 2000];
xdata =[3.0 4.7 6.0 7.2 10.3 11.3 12.0 13.0];
xs = [13, 0.5];
x0 = xdata(1);
t0 = tdata(1);
x = lsqcurvefit('curvefun ' , xs, tdata, xdata);
Para i = 2008: 2027
El resultado (i - 2007) = x(1). / (1 (x(1)).
/ x0 - 1) * exp(-x(2).*(I-t0)));
Fin
Hora = 2008:2027;
[hora 'resultado']
? Resultados de ejecución:
gt gt Deng Chang
Terminación de optimización: valor de función relativa
Cambiar menos que OPTIONS.TolFun
ans =
1.0e 003 *
2.0080 0.0148
2.0090 0.0150
2.0100 0.0152
2.0110 0.0154
2,0120 0,0157
2,0130 0,0159
2,0140 0,0161
2,0150 0,0164
2,0160 0,0166
2,0170 0,0169
2.0180 0.0171
2.0190 0.0174
2.0200 0.0176
2.0210 0.0179
2.0220 0.0181
2.0230 0.0184
2.0240 0.0187
2.0250 0.0190
2.0260 0.0192
2.0270 0.0195