¿Quién sabe sobre modelos matemáticos?

No sé lo que quieres, así que déjame darte uno simple~

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

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

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

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