Modelo Depredador-Presa de Lokta-Volterra (Grupo 1)
Este modelo evalúa la variación de población entre dos especies, una de depredadores(zorros) y otra de presas(conejos), evaluando sus interacciones y como afectan en el tamaño de la población, siguiendo el modelo de Lokta-Volterra que contiene el problema de valor inicial o de Cauchy:
[math]
\left\{\begin{matrix}\frac{\mathrm{d} R}{\mathrm{d} t}=aR-cFR\\\frac{\mathrm{d} F}{\mathrm{d} t}=-bF+dFR\\R(t_{0})=R_{0}, F(t_{0})=F_{0}\end{matrix}\right.
[/math]
Contenido
1 Interpretación de parámetros
Analizamos en primer lugar la variación de conejos, que son las presas que de ahora en adelante nos referiremos a ellas como R, la ecuación que expresa su variación, y en la que también intervienen los depredadores simbolizados por F, es la siguiente: [math] \frac{\mathrm{d} R}{\mathrm{d} t}=aR-cFR [/math] Antes de analizar el conjunto completo, analizamos el caso en que haya ausencia de depredadores, en este caso la población de conejos aumentará de manera proporcional al tamaño de la población siguiendo una constante 'a' que refleja la diferencia entre la tasa de natalidad y mortalidad y por tanto al ser positiva sería siempre creciente.
En el caso en el que interviniesen los depredadores, afectaría negativamente al crecimiento de la población de conejos debido a la cantidad de interacciones que se produce entre ambos y se ve reflejada con la constante 'c', que simboliza la proporción entre la cantidad de conejos que son comidos con la cantidad de interacciones con los zorros.
Evaluamos la segunda ecuación representa la variación de zorros:
[math]
\frac{\mathrm{d} F}{\mathrm{d} t}=-bF+dFR
[/math]
Sin la existencia de interacciones con los conejos, la población de zorros decrecería linealmente siguiendo la constante 'b', que también representaría la diferencia entre la tasa de natalidad y mortalidad, que en este caso sería negativa al no existir presas de las que alimentarse.
Con la existencia de presas, se produciría una interacción entre ellas y por tanto un crecimiento de la población de zorros según la constante 'd', que representa el grado de éxito en la caza de presas en función de la cantidad de interacciones.
2 Resolución de la ecuación mediante Euler
Tal como nos indica el enunciado, tomamos los siguientes valores para las constantes utilizadas en las ecuaciones: a=0.4,b=0.37,c=0.3 y d=0.05 y como poblaciones iniciales tenemos 3000 conejos y 1000 zorros (expresados en miles de elementos), analizando en un periodo de 100 años. El código introducido en MATLAB es el siguiente:
%Valor de constantes:a=0.4,b=0.37,c=0.3,d=0.05.
clear all
t0=0;tN=100; %Tiempo inicial y final
N=1000; h=(tN-t0)/N;y=[3 1]' %Intervalos y condiciones iniciales
R(1)=y(1);F(1)=y(2);
t=t0:h:tN;
for n=1:N
z(1)=y(1)+h*(0.4*y(1)-0.3*y(2)*y(1));
z(2)=y(2)+h*(-0.37*y(2)+0.05*y(2)*y(1));
R(n+1)=z(1);
F(n+1)=z(2);
y=z
end
%Grafica
hold on
figure(1)
plot(t,R,'r')
plot(t,F,'b')
xlabel('Tiempo (años)')
ylabel('Población: zorros(azul) y conejos(rojo)')
figure(2)
plot(R,F)
xlabel('Conejos (R)')
ylabel('Zorros (F)')
hold offCuyos valores vienen representados en las siguientes gráficas:
Podemos concluir que es un ecosistema estable porque ambas poblaciones se asemejan en sus gráficas creciendo y decreciendo al mismo tiempo y sin llegar a desaparecer.
3 Variación en la población inicial
Disminuyendo la población inicial de conejos que era 3000 y utilizando el programa anterior por el método de Euler, obtenemos las siguientes gráficas que nos sirven para evaluar los resultados.
Como podemos apreciar en las gráficas conforme disminuye la población inicial de conejos las gráficas se aproximan cada vez más a 0 pero en ningún momento llegan a tomar ese valor ya que esto representaría la extinción de los conejos en primer lugar y de los zorros como consecuencia.
4 Resolución de la ecuación mediante Runge-Kutta
Como nos pide compararlo con el método de Euler, tomamos los mismos datos que utilizamos al emplear el método Euler, mismas constantes, valor inicial de población y mismo periodo de tiempo. Introducimos el programa de MATLAB:
%Valor de constantes:a=0.4,b=0.37,c=0.3,d=0.05.
clear all
t0=0; %Tiempo inicial
tN=100; %Tiempo final
N=10000; h=(tN-t0)/N; %Intervalos
r0=3;f0=1; %Condiciones iniciales (en miles de unidades)
t=t0:h:tN;
r(1)=r0;
f(1)=f0;
for n=1:N
k11=0.4*r(n)-0.3*f(n)*r(n);
k12=-0.37*f(n)+0.05*f(n)*r(n);
k21=0.4*(r(n)+(1/2)*h*k11)-0.3*(f(n)+(1/2)*h*k12)*(r(n)+(1/2)*h*k11);
k22=-0.37*(f(n)+(1/2)*h*k12)+0.05*(f(n)+(1/2)*h*k12)*(r(n)+(1/2)*h*k11);
k31=0.4*(r(n)+(1/2)*h*k21)-0.3*(f(n)+(1/2)*h*k22)*(r(n)+(1/2)*h*k21);
k32=-0.37*(f(n)+(1/2)*h*k22)+0.05*(f(n)+(1/2)*h*k22)*(r(n)+(1/2)*h*k21);
k41=0.4*(r(n)+h*k31)-0.3*(f(n)+h*k32)*(r(n)+h*k31);
k42=-0.37*(f(n)+h*k32)+0.05*(f(n)+h*k32)*(r(n)+h*k31);
r(n+1)=r(n)+(h/6)*(k11+2*k21+2*k31+k41);
f(n+1)=f(n)+(h/6)*(k12+2*k22+2*k32+k42);
end
%Gráfica
hold on
figure(1)
plot(t,r,'r')
plot(t,f,'b')
xlabel('Poblacion: zorros(azul) y conejos(rojo)')
ylabel('Tiempo (años)')
figure(2)
plot(r,f)
xlabel('Conejos(R)')
ylabel('Zorros (F)')
hold off5 Sistema inverso
Ahora asumimos el problema inverso, mediante Runge-Kutta, en el cual conocemos la población final de conejos: 2200 y de zorros: 320 después de que haya pasado un tiempo de 100 años y queremos conocer la población que había inicialmente. Para ello el tiempo inicial es 100 y retrocederemos hasta el tiempo final 0. El código matlab es el siguiente:
clear all
t0=100;tN=0;
N=10000;
h=(tN-t0)/N;
r(N+1)=2.2;
f(N+1)=0.32;
t=t0:h:tN;
r(1)=r(N+1);
f(1)=f(N+1);
for n=N+1:-1:2
k11=0.4*r(n)-0.3*f(n)*r(n);
k12=-0.37*f(n)+0.05*f(n)*r(n);
k21=0.4*(r(n)+(1/2)*h*k11)-0.3*(f(n)+(1/2)*h*k12)*(r(n)+(1/2)*h*k11);
k22=-0.37*(f(n)+(1/2)*h*k12)+0.05*(f(n)+(1/2)*h*k12)*(r(n)+(1/2)*h*k11);
k31=0.4*(r(n)+(1/2)*h*k21)-0.3*(f(n)+(1/2)*h*k22)*(r(n)+(1/2)*h*k21);
k32=-0.37*(f(n)+(1/2)*h*k22)+0.05*(f(n)+(1/2)*h*k22)*(r(n)+(1/2)*h*k21);
k41=0.4*(r(n)+h*k31)-0.3*(f(n)+h*k32)*(r(n)+h*k31);
k42=-0.37*(f(n)+h*k32)+0.05*(f(n)+h*k32)*(r(n)+h*k31);
r(n-1)=r(n)+(h/6)*(k11+2*k21+2*k31+k41);
f(n-1)=f(n)+(h/6)*(k12+2*k22+2*k32+k42);
end
hold on
figure(1)
plot(t,r,'r')
plot(t,f,'b')
figure(2)
plot(r,f)
hold off
r(1)
f(1)Dándonos el resultado inicial de conejos: 1.4353(1435) y de zorros: 0.4907 (491)

