Modelos de crecimiento de población

Supongamos que en una zona metropolitana, al cabo de un año, el 5% de la población que habita en la ciudad se traslada a la periferia y por el contrario, el 3% de los que viven en la perifieria se traslada a la ciduad. Si en el año 2015 la población de la ciduad es de 600.000 habitantes y la de la periferia es de 400.000, calcular la distribición de la población en 2016.

Matriz de migración

La matriz de migración (M) es la que nos permite calcular la distribución de pobalción en sucesivos periodos (en este caso años) a partir de un vector de estado en un determinado periodo. Se trata de una matriz de probabilidad (suma de sus columnas = 1).
En el ejemplo anterior la matriz de estado es:
M=[0.95 0.03;0.05 0.97]
M = 2×2
0.9500 0.0300 0.0500 0.9700
Como se observa, la primera columna corresponde a la población de la ciudad y la segunda a la periferia.
Comprobamos que se trata de una matriz de probabilidad calculando la suma de sus columnas con el comando sum(M) de Matlab:
sum(M)
ans = 1×2
1 1

Vector de estado

El vector se estado nos inidca la situación (en este caso la distribución de población) en un periodo determinado. En nuestro ejemplo el vector de estado inicial en miles de habitantes para 2015 es:
x0=[600;400]
x0 = 2×1
600 400
Dicho vector columna nos indica la población en la ciudad y en la perfieria en miles de habitantes

Cálculo de un nuevo estado

Para calcular la población en el siguiente periodo basta musltiplicar la matriz de migración por el vector de estado incial:
y obtenemos la distribución de población en el siguiente periodo (2016)
x1=M*x0
x1 = 2×1
582 418

Ecuaciones lineales en diferencias (recurrencias)

Si los porcentajes de migración permanecen constantes, podremos calcular la distribución de poblaciñon en sucesivo periodos:
(1)
a esta ecuación se le denomina como ecuación lineal en diferencias o relación de recurrencia
Para calcular las sucesivas distribuciones de población digamos desde 2015 a 2020 aplicaremos sucesivamente la ecuación (1).
En Matlab iremos "guardando" los resultados en una matriz (P) de la siguiente forma:
x1=x0;
P=x1;
for k=1:1:5
x1=M*x1;
P=[P x1];
end
PI=array2table(P)
PI = 2×6 table
 P1P2P3P4P5P6
1600582565.4400550.2048536.1884523.2933
2400418434.5600449.7952463.8116476.7067
Hemos convertido la matriz P donde hemos guardado los resultados de cada periodo por columnas, en una tabla para mostrar los resultados.

Creando una gráfica para mostrar los resultados

Ahora queremos mostrar los resultados en una gráfica. Para ello,primero creamos una variable para las abscisas (en este caso son los años)
ano=2015:2020;
Ahora empleamos la potencia de operaciones con matrices de Matlab ya que el comando plot interpreta las columnas de la matriz P como dos variables distintas, es decir, basta escribir:
figure(1)
plot(ano,P);
axis( [2015 2020 300 700] )
En este caso hemos añadido el comando figure(1) porque más adelante iremos creando más gráficas y de ese modo, evitamos que unas sustiuyan a las precedentes. Asimismo, hemos restringido las abscisas al intervalo [2015 2020] y las ordenadas al intervalo [300 700].
Finalmente, damos formato al gráfico añadiendo un título, una leyenda y una etiqueta en el eje de ordenadas:
title('Evolución de la población entre 2015-2020')
ylabel('Población (miles de habitantes)')
legend('Ciudad','Periferia')