Diferencia entre revisiones de «Modelo Lokta-Volterra Prey-Predator. Grupo 6»

De MateWiki
Saltar a: navegación, buscar
 
(No se muestran 44 ediciones intermedias de 6 usuarios)
Línea 1: Línea 1:
 +
{{Trabajo|Modelo Depredador-Presa de Lotka-Volterra|[[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:Trabajos 2012-13|2012-13]]}}
 +
 
== 1 ''INTERPRETACION DEL MODELO'' ==
 
== 1 ''INTERPRETACION DEL MODELO'' ==
  
Línea 6: Línea 8:
 
El modelo Lokta-Volterra,asumiendo las hipótesis dadas en el ejercicio, expresa:
 
El modelo Lokta-Volterra,asumiendo las hipótesis dadas en el ejercicio, expresa:
 
Sin zorros, los conejos se reproducen siguiendo el modelo de Maltus, por lo que su tasa de crecimiento es proporcional a su tamaño.
 
Sin zorros, los conejos se reproducen siguiendo el modelo de Maltus, por lo que su tasa de crecimiento es proporcional a su tamaño.
:
 
 
<br />
 
'''Maltus: R'(t) = aR(t)'''
 
  
 +
'''Maltus:'''
 +
<math>
 +
R'(t) = aR(t)
 +
</math>
  
  
 
Sin conejos que comer, la población de zorros disminuye proporcionalmente a su tamaño.
 
Sin conejos que comer, la población de zorros disminuye proporcionalmente a su tamaño.
<br />
 
'''F'(t)=-bF(t)'''
 
  
 +
<math>
 +
F'(t)=-bF(t)
 +
</math>
  
  
 
La tasa a la cual los conejos son comidos por zorros es proporcional a la tasa de interacción entre zorros y conejos.
 
La tasa a la cual los conejos son comidos por zorros es proporcional a la tasa de interacción entre zorros y conejos.
<br />
 
'''R'(t)=-cF(t)R(t)'''
 
 
  
 +
<math>
 +
R´(t)=-cF(t)R(t)
 +
</math>
  
  
 
La tasa por la cual los zorros nacen es proporcional a la tasa por la cual los conejos son comidos.
 
La tasa por la cual los zorros nacen es proporcional a la tasa por la cual los conejos son comidos.
<br />
 
'''F'(t)= dF(t)R(t)'''
 
  
 +
 +
<math>
 +
F´(t)=dR(t)F(t)
 +
</math>
  
  
Línea 103: Línea 108:
  
 
<math>
 
<math>
R=\frac{c}{d}=\frac{0.3}{0.05}=6
+
R=\frac{c}{d}=\frac{0.3}{0.05}=6 \qquad F=\frac{a}{b}=\frac{0.4}{0.37}=1.081
 
</math>
 
</math>
  
sería R=c/d y F=a/b. En nuestro problema por tanto:
 
R=0.3/0.05= 6 yF=0.4/0.37=1.081.
 
  
 
== 3 ''EXTINCIÓN PARA DISTINTAS POBLACIONES'' ==
 
== 3 ''EXTINCIÓN PARA DISTINTAS POBLACIONES'' ==
 +
Evaluando la coexistencia de las especies según una disminución de la población de los conejos de '''1500''', '''1000''' y '''250'''. Asumiendo que si la población de zorros es menor de '''50''' la extinción empezaría a ser algo inevitable. observamos los diferentes casos.
  
 
===Codigo Matlab===
 
===Codigo Matlab===
 
+
A continuación tenemos los programas en funcion de '''P''' para las diferentes poblaciones de conejos:
 +
 
{{matlab|codigo=
 
{{matlab|codigo=
sprintf('conejos 1500')
+
sprintf('conejos P')
 
a=0.4,b=0.37,c=0.3,d=0.05;
 
a=0.4,b=0.37,c=0.3,d=0.05;
 
t=0;
 
t=0;
 
i=1;
 
i=1;
Z=[1.5;1];
+
Z=[(P/1000);1];
 
p1(i)=Z(1),p2(i)=Z(2);
 
p1(i)=Z(1),p2(i)=Z(2);
 
x(i)=t;
 
x(i)=t;
Línea 133: Línea 138:
 
   x(i)=t;
 
   x(i)=t;
 
   if Z(2)<(50/1000)
 
   if Z(2)<(50/1000)
  ext=1;
 
  end
 
end
 
if ext>0
 
  sprintf('extincion zorros')
 
end
 
sprintf('maximo y minimo de los conejos')
 
max(p1)
 
min(p1)
 
sprintf('maximo y minimo de los zorros')
 
max(p2)
 
min(p2)
 
sprintf('conejos 1000')
 
a=0.4,b=0.37,c=0.3,d=0.05;
 
t=0;
 
i=1;
 
Z=[1;1];
 
p1(i)=Z(1),p2(i)=Z(2);
 
x(i)=t;
 
ext=0;
 
while t<100
 
  i=i+1;
 
  D=Z;
 
  t=t+h;
 
  F=[a*Z(1)-c*Z(1)*Z(2),d*Z(1)*D(2)-b*Z(2)];
 
  P=h*F;
 
  X=t;
 
  Z=D+h*F;
 
  p1(i)=Z(1),p2(i)=Z(2);
 
  x(i)=t;
 
  if Z(2)<=(50/1000)
 
  ext=1;
 
  end
 
end
 
if ext>0
 
  sprintf('extincion zorros')
 
end
 
sprintf('maximo y minimo de los conejos')
 
max(p1)
 
min(p1)
 
sprintf('maximo y minimo de los zorros')
 
max(p2)
 
min(p2)
 
sprintf('conejos 250')
 
a=0.4,b=0.37,c=0.3,d=0.05;
 
t=0;
 
i=1;
 
Z=[0.25;1];
 
p1(i)=Z(1),p2(i)=Z(2);
 
x(i)=t;
 
ext=0;
 
while t<100
 
  i=i+1;
 
  D=Z;
 
  t=t+h;
 
  F=[a*Z(1)-c*Z(1)*Z(2),d*Z(1)*D(2)-b*Z(2)];
 
  P=h*F;
 
  X=t;
 
  Z=D+h*F;
 
  p1(i)=Z(1),p2(i)=Z(2);
 
  x(i)=t;
 
  if Z(2)<=(50/1000)
 
 
   ext=1;
 
   ext=1;
 
   end
 
   end
Línea 209: Línea 152:
 
}}
 
}}
  
Programando en MATLAB para estas tres poblaciones se obtienen los siguientes resultados:
+
===Tablas de Resultados===
 +
 
 +
Programando en MATLAB para estas tres poblaciones '''1500, 1000''' y '''250''' se obtienen los siguientes resultados:
  
  
Línea 219: Línea 164:
 
!MÍN. ZORROS
 
!MÍN. ZORROS
 
|-
 
|-
|1500
+
|1.5
 
|22
 
|22
 
|1.3
 
|1.3
Línea 225: Línea 170:
 
|0.2
 
|0.2
 
|-
 
|-
|1000
+
|1
 
|26.7
 
|26.7
 
|0.7
 
|0.7
Línea 231: Línea 176:
 
|0.16
 
|0.16
 
|-
 
|-
|250
+
|0.25
 
|40
 
|40
 
|0.17
 
|0.17
Línea 249: Línea 194:
 
!MÍNIMOS
 
!MÍNIMOS
 
|-
 
|-
|1500
+
|1.5
 
|5.64
 
|5.64
 
|6.5
 
|6.5
 
|-
 
|-
|1000
+
|1
 
|5.7
 
|5.7
 
|4.3
 
|4.3
 
|-
 
|-
|250
+
|0.25
 
|5.79
 
|5.79
 
|4.15
 
|4.15
Línea 263: Línea 208:
  
  
Concluimos, por tanto, que si se disminuye la población de conejos la proporción conejos/zorros se mantiene constante, es decir, si disminuye la población de la presa también lo hará proporcionalmente la del depredador (como se observa en el pico de la gráfica remarcado más arriba).
+
Concluimos, por tanto, que si se disminuye la población de conejos la proporción conejos/zorros se mantiene constante, es decir, si disminuye la población de la presa también lo hará proporcionalmente la del depredador (como se observa en el pico de la gráfica remarcado más abajo).
 +
 
 +
[[archivo:grafica1-2.jpg|marco|centro|'''Ampliación de la gráfica donde se muestra la disminución proporcional de las poblaciones''']]
  
 
Reduciendo la población de conejos a 250 obtendríamos un máximo de 43 zorros, inferior a los 50 que marcan el límite de extinción, lo que nos indica que la extinción sería algo inevitable.
 
Reduciendo la población de conejos a 250 obtendríamos un máximo de 43 zorros, inferior a los 50 que marcan el límite de extinción, lo que nos indica que la extinción sería algo inevitable.
 +
 +
== 4 ''LOKTA-VOLTERRA POR RUNGE-KUTTA'' ==
 +
 +
 +
Resolver la ecuación por el método de Runge-Kutta de orden 4. Compara los resultados con los de Euler para los diferentes tiempos de las h fijadas.¿Cuál es la dificultad cuando se usa el método del trapecio?.
 +
 +
===Código Matlab===
 +
 +
{{matlab|codigo=
 +
a=0.4,b=0.37,c=0.3,d=0.05;
 +
t=0;
 +
i=1;
 +
z=[3;1];
 +
f3(i)=Z(1),f4(i)=Z(2);
 +
x(i)=t;
 +
while t<100
 +
  i=i+1;
 +
  D=Z;
 +
  t=t+h;
 +
  K1=[a*D(1)-c*D(1)*D(2);d*D(1)*D(2)-b*D(2)];
 +
  K2=[a*(D(1)+h/2*K1(1))-c*(D(1)+h/2*K1(1))*(D(2)+h/2*K1(2));d*(D(1)+h/2*K1(1))*(D(2)+h/2*K1(2))-b*(D(2)+h/2*K1(2))];
 +
  K3=[a*(D(1)+h/2*K2(1))-c*(D(1)+h/2*K2(1))*(D(2)+h/2*K2(2));d*(D(1)+h/2*K2(1))*(D(2)+h/2*K2(2))-b*(D(2)+h/2*K2(2))];
 +
  K4=[a*(D(1)+h*K3(1))-c*(D(1)+h*K3(1))*(D(2)+h*K3(2));d*(D(1)+h*K3(1))*(D(2)+h*K3(2))-b*(D(2)+h*K3(2))];
 +
  z=D+h/6*(K1+2.*K2+2.*K3+K4);
 +
  f3(i)=z(1);f4(i)=z(2);
 +
  x(i)=t;
 +
end
 +
figure(3)
 +
hold on
 +
plot(f1,f2,'b',f3,f4,'r')
 +
}}
 +
 +
 +
===Gráfica===
 +
 +
[[archivo:grafica3x.jpg|marco|centro|'''Gráfica comparativa Runge-Kutta (rojo) y Euler (azul)''']]
 +
 +
Como Euler es un método de primer orden y Runge-Kutta, con el que trabajamos, de 4º orden, Euler es mas inestable, como se observa en la gráfica.
 +
 +
Para el método trapezoidal se emplea la siguiente fórmula
 +
 +
<math>
 +
Z_{n+1}=Z_{n}+{h\over2}f(x_{n},z_{n})+f(x_{n+1},z_{n+1})
 +
</math>
 +
 +
Surge la dificultad de despejar '''Z<sub>n+1</sub>''' y convertirlo en explícito, cosa que no siempre es posible.
 +
<br />
 +
<br />
 +
 +
== ''5 PROBLEMA INVERSO'' ==
 +
<br />
 +
 +
 +
En este caso especial en lugar de tener t=0 y pedir las condiciones determinadas en un tiempo t=t', nos dan las condiciones en ese tiempo t'=100 y debemos hallar las condiciones ent=0. Para ello planteamos una modificación del método de Euler con h negativa (para ir hacia atrás en el tiempo).
 +
<br />
 +
=== '''Código Matlab''' ===
 +
{{matlab|codigo=
 +
a=0.4,b=0.37,c=0.3,d=0.05;
 +
t=100;
 +
i=1;
 +
z=[2.2;0.32];
 +
f1(i)=Z(1),f2(i)=Z(2);
 +
x(i)=t;
 +
h=-0.01
 +
while t>0
 +
  i=i+1;
 +
  D=Z;
 +
  t=t+h;
 +
  F=[a*Z(1)-c*Z(1)*Z(2);d*Z(1)*D(2)-b*Z(2)];
 +
  Z=D+h*F;
 +
  f1(i)=Z(1);f2(i)=Z(2);
 +
  x(i)=t;
 +
end
 +
figure(1)
 +
hold on
 +
plot(x,f1,'b',x,f2,'r')
 +
figure(2)
 +
hold on
 +
plot(f1,f2,'g')
 +
Z;
 +
}}
 +
<br />
 +
=== '''Gráficas''' ===
 +
 +
[[archivo:grafica4.jpg|marco|centro|'''Distribución de conejos y zorros en el tiempo. Siendo la línea de arriba (azul) los conejos y la de abajo (rojo) los zorros)''']]
 +
 +
 +
[[archivo:graficafinal.jpg|marco|centro|'''Distribución de conejos-zorros en el tiempo en 2D.En el eje de abscisas se marcan los conejos y en el eje de ordenadas los zorros.''']]
 +
 +
 +
 +
== ''AUTORES'' ==
 +
 +
--[[Usuario:Marialuisa|Marialuisa]] ([[Usuario discusión:Marialuisa|discusión]]) 22:28 3 mar 2013 (CET)
 +
--[[Usuario:Olivas10|Olivas10]] ([[Usuario discusión:Olivas10|discusión]]) 22:37 3 mar 2013 (CET)
 +
 +
 +
--[[Usuario:Jacobo183|Jacobo183]] ([[Usuario discusión:Jacobo183|discusión]]) 22:47 3 mar 2013 (CET)
 +
--[[Usuario:Enrique941|Enrique941]] ([[Usuario discusión: Enrique941|discusión]]) 22:52 3 mar (CET)
 +
 +
 +
 +
[[Categoría:Grado en Ingeniería Civil y Territorial]]
 +
[[Categoría:Ecuaciones Diferenciales]]
 +
[[Categoría:Trabajos 2012-13]]

Revisión actual del 00:26 3 jun 2013


1 1 INTERPRETACION DEL MODELO

El modelo Lokta-Volterra,asumiendo las hipótesis dadas en el ejercicio, expresa: Sin zorros, los conejos se reproducen siguiendo el modelo de Maltus, por lo que su tasa de crecimiento es proporcional a su tamaño.

Maltus: [math] R'(t) = aR(t) [/math]


Sin conejos que comer, la población de zorros disminuye proporcionalmente a su tamaño.

[math] F'(t)=-bF(t) [/math]


La tasa a la cual los conejos son comidos por zorros es proporcional a la tasa de interacción entre zorros y conejos.

[math] R´(t)=-cF(t)R(t) [/math]


La tasa por la cual los zorros nacen es proporcional a la tasa por la cual los conejos son comidos.


[math] F´(t)=dR(t)F(t) [/math]


Por lo tanto, este modelo nos da el ritmo de crecimiento de las poblaciones de los depredadores y las presas (conejos y zorros) dado el número de miembros de cada una. El sistema que resulta es:

1.1 Ecuaciones:

[math] \frac{\mathrm{d} R}{\mathrm{d} t}=aR-cRF [/math]


[math] \frac{\mathrm{d} F}{\mathrm{d} t}=-bF+dRF [/math]


En estas ecuaciones los parámetros tienen los siguientes significados:

  • a: el factor proporcional relacionado con el ritmo de reproducción de los conejos cuando no hay zorros
  • b: es el factor con el que los zorros decrecen a un ritmo proporcional a su tamaño sin conejos que comer.
  • c: es la proporción a la cual las interacciones entre zorros y conejos hacen decrecer a la población de los conejos.
  • d: es el factor proporcional que maneja el ritmo al cual los zorros nacen. Este ritmo es proporcional al ritmo al que los conejos son comidos por los zorros.

2 2 LOKTA-VOLTERRA SEGUN EULER

Para una población de conejos y zorros ( R(t) y F(t)), particularizamos los parámetros arriba indicados (a=0.4, b=0.37, c=0.3, d=0.05) y consideramos que en un tiempo tЄ[0,100] tenemos una población de 3000 conejos y de 1000 zorros.

2.1 Codigo Matlab

Resolvemos el sistema según el siguiente código MATLAB:

% Z es la variable y su primer elemento sera R y el segundo F%
a=0.4,b=0.37,c=0.3,d=0.05;
t=0;
i=1;
z=[3;1];
f1(i)=Z(1),f2(i)=Z(2);
x(i)=t;
h=0.01;
while t<100
  i=i+1;
  D=Z;
  t=t+h;
  F=[a*Z(1)-c*Z(1)*Z(2),d*Z(1)*D(2)-b*Z(2)];
  p=h*F
  X=t;
  Z=D+h*F;
  f1(i)=Z(1),f2(i)=Z(2);
  x(i)=t;
end
figure(1)
hold on
plot(x;f1,'b',x,f2,'r')
figure(2)
hold on
plot(fi,f2,'g')
hold off


2.2 Graficas

Distribución de conejos y zorros en el tiempo. Siendo la línea de arriba (azul) los conejos y la de abajo (rojo) los zorros.

De la gráfica se deduce que el aumento de la población de presas conlleva a un aumento de la población de depredadores, del mismo modo que un aumento de la población de depredadores reduce la de presas a mínimos.Con esta gráfica concluimos que las densidades poblacionales de ambas especies están estrechamente relacionadas.


Distribución de conejos-zorros en el tiempo en 2D. En el eje de abscisas se marcan los conejos y en el eje de ordenadas los zorros.


Esta gráfica representa la interacción de depredadores y presas en el tiempo, reafirmando la relación previamente explicada. Por lo tanto, concluimos que el ecosistema es estable, oscilando alrededor del punto de equilibrio:

[math] R=\frac{c}{d}=\frac{0.3}{0.05}=6 \qquad F=\frac{a}{b}=\frac{0.4}{0.37}=1.081 [/math]


3 3 EXTINCIÓN PARA DISTINTAS POBLACIONES

Evaluando la coexistencia de las especies según una disminución de la población de los conejos de 1500, 1000 y 250. Asumiendo que si la población de zorros es menor de 50 la extinción empezaría a ser algo inevitable. observamos los diferentes casos.

3.1 Codigo Matlab

A continuación tenemos los programas en funcion de P para las diferentes poblaciones de conejos:

sprintf('conejos P')
a=0.4,b=0.37,c=0.3,d=0.05;
t=0;
i=1;
Z=[(P/1000);1];
p1(i)=Z(1),p2(i)=Z(2);
x(i)=t;
ext=0;
while t<100
  i=i+1;
  D=Z;
  t=t+h;
  F=[a*Z(1)-c*Z(1)*Z(2);d*Z(1)*D(2)-b*Z(2)];
  P=h*F;
  X=t;
  Z=D+h*F;
  p1(i)=Z(1),p2(i)=Z(2);
  x(i)=t;
  if Z(2)<(50/1000)
  ext=1;
  end
end
if ext>0
  sprintf('extincion zorros')
end
sprintf('maximo y minimo de los conejos')
max(p1)
min(p1)
sprintf('maximo y minimo de los zorros')
max(p2)
min(p2)


3.2 Tablas de Resultados

Programando en MATLAB para estas tres poblaciones 1500, 1000 y 250 se obtienen los siguientes resultados:


POBLACIÓN C. MÁX. CONEJOS MÍN. CONEJOS MÁX. ZORROS MÍN. ZORROS
1.5 22 1.3 3.9 0.2
1 26.7 0.7 4.64 0.16
0.25 40 0.17 6.9 0.041


De lo que se observa que las proporciones quedan:


PROPORCIONES C/Z MÁXIMOS MÍNIMOS
1.5 5.64 6.5
1 5.7 4.3
0.25 5.79 4.15


Concluimos, por tanto, que si se disminuye la población de conejos la proporción conejos/zorros se mantiene constante, es decir, si disminuye la población de la presa también lo hará proporcionalmente la del depredador (como se observa en el pico de la gráfica remarcado más abajo).

Ampliación de la gráfica donde se muestra la disminución proporcional de las poblaciones

Reduciendo la población de conejos a 250 obtendríamos un máximo de 43 zorros, inferior a los 50 que marcan el límite de extinción, lo que nos indica que la extinción sería algo inevitable.

4 4 LOKTA-VOLTERRA POR RUNGE-KUTTA

Resolver la ecuación por el método de Runge-Kutta de orden 4. Compara los resultados con los de Euler para los diferentes tiempos de las h fijadas.¿Cuál es la dificultad cuando se usa el método del trapecio?.

4.1 Código Matlab

a=0.4,b=0.37,c=0.3,d=0.05;
t=0;
i=1;
z=[3;1];
f3(i)=Z(1),f4(i)=Z(2);
x(i)=t;
while t<100 
  i=i+1;
  D=Z;
  t=t+h;
  K1=[a*D(1)-c*D(1)*D(2);d*D(1)*D(2)-b*D(2)];
  K2=[a*(D(1)+h/2*K1(1))-c*(D(1)+h/2*K1(1))*(D(2)+h/2*K1(2));d*(D(1)+h/2*K1(1))*(D(2)+h/2*K1(2))-b*(D(2)+h/2*K1(2))];
  K3=[a*(D(1)+h/2*K2(1))-c*(D(1)+h/2*K2(1))*(D(2)+h/2*K2(2));d*(D(1)+h/2*K2(1))*(D(2)+h/2*K2(2))-b*(D(2)+h/2*K2(2))];
  K4=[a*(D(1)+h*K3(1))-c*(D(1)+h*K3(1))*(D(2)+h*K3(2));d*(D(1)+h*K3(1))*(D(2)+h*K3(2))-b*(D(2)+h*K3(2))];
  z=D+h/6*(K1+2.*K2+2.*K3+K4);
  f3(i)=z(1);f4(i)=z(2);
  x(i)=t;
end
figure(3)
hold on
plot(f1,f2,'b',f3,f4,'r')


4.2 Gráfica

Gráfica comparativa Runge-Kutta (rojo) y Euler (azul)

Como Euler es un método de primer orden y Runge-Kutta, con el que trabajamos, de 4º orden, Euler es mas inestable, como se observa en la gráfica.

Para el método trapezoidal se emplea la siguiente fórmula

[math] Z_{n+1}=Z_{n}+{h\over2}f(x_{n},z_{n})+f(x_{n+1},z_{n+1}) [/math]

Surge la dificultad de despejar Zn+1 y convertirlo en explícito, cosa que no siempre es posible.

5 5 PROBLEMA INVERSO



En este caso especial en lugar de tener t=0 y pedir las condiciones determinadas en un tiempo t=t', nos dan las condiciones en ese tiempo t'=100 y debemos hallar las condiciones ent=0. Para ello planteamos una modificación del método de Euler con h negativa (para ir hacia atrás en el tiempo).

5.1 Código Matlab

a=0.4,b=0.37,c=0.3,d=0.05;
t=100;
i=1;
z=[2.2;0.32];
f1(i)=Z(1),f2(i)=Z(2);
x(i)=t;
h=-0.01
while t>0 
  i=i+1;
  D=Z;
  t=t+h;
  F=[a*Z(1)-c*Z(1)*Z(2);d*Z(1)*D(2)-b*Z(2)];
  Z=D+h*F;
  f1(i)=Z(1);f2(i)=Z(2);
  x(i)=t;
end
figure(1)
hold on
plot(x,f1,'b',x,f2,'r')
figure(2)
hold on
plot(f1,f2,'g')
Z;


5.2 Gráficas

Distribución de conejos y zorros en el tiempo. Siendo la línea de arriba (azul) los conejos y la de abajo (rojo) los zorros)


Distribución de conejos-zorros en el tiempo en 2D.En el eje de abscisas se marcan los conejos y en el eje de ordenadas los zorros.


6 AUTORES

--Marialuisa (discusión) 22:28 3 mar 2013 (CET) --Olivas10 (discusión) 22:37 3 mar 2013 (CET)


--Jacobo183 (discusión) 22:47 3 mar 2013 (CET) --Enrique941 (discusión) 22:52 3 mar (CET)