Diferencia entre revisiones de «Logística con Umbral (15-A)»
m (Corregidos índices) |
(→Situaciones posibles: Ordenadas imágenes) |
||
| (No se muestran 7 ediciones intermedias del mismo usuario) | |||
| Línea 1: | Línea 1: | ||
{{ TrabajoED | Logística con Umbral (Grupo 15-A) | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | • Javier Colorado Martínez (1278) <br /> • Álvaro Llera Fernández (501) <br /> • Francisco Javier Alcaraz de Amuriza (567) <br /> • Daniel Ballesteros Gálvez (1376) <br /> • Alberto Rodríguez Fernández (357) <br /> • Francisco Javier Barral González (632) }} | {{ TrabajoED | Logística con Umbral (Grupo 15-A) | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | • Javier Colorado Martínez (1278) <br /> • Álvaro Llera Fernández (501) <br /> • Francisco Javier Alcaraz de Amuriza (567) <br /> • Daniel Ballesteros Gálvez (1376) <br /> • Alberto Rodríguez Fernández (357) <br /> • Francisco Javier Barral González (632) }} | ||
==Introducción== | ==Introducción== | ||
| − | + | El '''Problema de Valor Inicial''' (P.V.I.) de '''Logística con Umbral''' viene definido por la siguiente ecuación:: | |
| − | <math>\left\{\begin{matrix}y’=-ry(1-{y\over M_1})(1-{y\over M_2}), t>0 | + | |
| − | Donde \(M_1=30\), \(M_2=100\), \(r=0.04\) e \(y_0=60\). La | + | <math>\left\{\begin{matrix}y’=-ry(1-{y\over M_1})(1-{y\over M_2}),\ \ \ \ \ t>0<br/>\\y=y_0\end{matrix}\right.</math> |
| + | |||
| + | Donde \(M_1=30\), \(M_2=100\), \(r=0.04\) e \(y_0=60\). La resolución numérica a estudiar está definida en el intervalo \(I=[0,100]\). | ||
==Resolución numérica== | ==Resolución numérica== | ||
| − | A continuación, se va a proceder a modelizar dicha ecuación mediante los métodos de Euler, Heun y Runge-Kutta de orden 4. El procedimiento por el que se ha optado ha consistido en introducir en MATLAB cada uno de los métodos con los diferentes pasos, a saber, \(h=1\), \(h=0.1\) y \(h=0.01\). | + | A continuación, se va a proceder a modelizar la solución de dicha ecuación mediante los métodos de Euler, Heun y Runge-Kutta de orden 4. El procedimiento por el que se ha optado ha consistido en introducir en MATLAB cada uno de los métodos con los diferentes pasos, a saber, el '''caso 1''' con un paso de \(h=1\), el '''caso 2''' con \(h=0.1\) y el '''caso 3''' con \(h=0.01\) y, finalmente, obtener las gráficas asociadas. |
| + | |||
===Euler=== | ===Euler=== | ||
| + | |||
| + | En primer lugar, se indica el método de Euler, con el código de MATLAB correspondiente y dos gráficas, una con todo el desarrollo en el intervalo y otra en la que se aprecia en detalle la exactitud de cada uno de los pasos, comparados entre sí. | ||
| + | |||
[[Image:EULER1.png|500px|image|right|Método de Euler]] | [[Image:EULER1.png|500px|image|right|Método de Euler]] | ||
[[Image:EULERD1.png|500px|image|right|Método de Euler en detalle]] | [[Image:EULERD1.png|500px|image|right|Método de Euler en detalle]] | ||
| + | |||
{{matlab|codigo= | {{matlab|codigo= | ||
%MÉTODO DE EULER | %MÉTODO DE EULER | ||
hold on | hold on | ||
| − | %Datos conocidos e intervalo de estudio | + | %Datos conocidos e intervalo de estudio |
t0=0; tN=100; r=0.04; M1=30; M2=100; y0=60; | t0=0; tN=100; r=0.04; M1=30; M2=100; y0=60; | ||
%------------------------------------------------------- | %------------------------------------------------------- | ||
| − | %CASO 1: paso de 1 | + | %CASO 1: paso de h=1 |
h1=1; | h1=1; | ||
N1=(tN-t0)/h1; | N1=(tN-t0)/h1; | ||
| Línea 27: | Línea 34: | ||
end | end | ||
%------------------------------------------------------- | %------------------------------------------------------- | ||
| − | %CASO 2: paso de 0.1 | + | %CASO 2: paso de h=0.1 |
h2=0.1; | h2=0.1; | ||
N2=(tN-t0)/h2; | N2=(tN-t0)/h2; | ||
| Línea 37: | Línea 44: | ||
end | end | ||
%------------------------------------------------------ | %------------------------------------------------------ | ||
| − | %CASO 3: PASO DE 0.01 | + | %CASO 3: PASO DE h=0.01 |
h3=0.01; | h3=0.01; | ||
N3=(tN-t0)/h3; | N3=(tN-t0)/h3; | ||
| Línea 48: | Línea 55: | ||
%----------------------------------------------------- | %----------------------------------------------------- | ||
%Representación en gráficas. | %Representación en gráficas. | ||
| − | plot(t1,y1,'r') %Caso 1 | + | plot(t1,y1,'r') %Caso 1 |
| − | plot(t2,y2,'g') %Caso 2 | + | plot(t2,y2,'g') %Caso 2 |
| − | plot(t3,y3,'b') %Caso 3 | + | plot(t3,y3,'b') %Caso 3 |
title('Método de Euler con todos los casos') | title('Método de Euler con todos los casos') | ||
xlabel('Tiempo') | xlabel('Tiempo') | ||
| Línea 59: | Línea 66: | ||
| − | |||
===Heun=== | ===Heun=== | ||
| + | |||
| + | Posteriormente, se introduce el método de Heun, con el que se adjunta el código de MATLAB y las gráficas con los 3 casos correspondientes. | ||
| + | |||
[[Image:HEUN1.png|510px|image|right|Método de Heun]] | [[Image:HEUN1.png|510px|image|right|Método de Heun]] | ||
[[Image:HEUNDET1.png|510px|image|right|Método de Heun en detalle]] | [[Image:HEUNDET1.png|510px|image|right|Método de Heun en detalle]] | ||
| + | |||
{{matlab|codigo= | {{matlab|codigo= | ||
%MÉTODO DE HEUN | %MÉTODO DE HEUN | ||
hold on | hold on | ||
| − | %Datos conocidos e intervalo de estudio | + | %Datos conocidos e intervalo de estudio |
t0=0; tN=100; r=0.04; M1=30; M2=100; y0=60; | t0=0; tN=100; r=0.04; M1=30; M2=100; y0=60; | ||
%-------------------------------------------------------------- | %-------------------------------------------------------------- | ||
| − | %CASO 1: paso de 1 | + | %CASO 1: paso de h=1 |
h1=1; | h1=1; | ||
N1=(tN-t0)/h1; | N1=(tN-t0)/h1; | ||
| Línea 82: | Línea 92: | ||
end | end | ||
%--------------------------------------------------------------- | %--------------------------------------------------------------- | ||
| − | %CASO 2: PASO DE 0.1 | + | %CASO 2: PASO DE h=0.1 |
h2=0.1; | h2=0.1; | ||
N2=(tN-t0)/h2; | N2=(tN-t0)/h2; | ||
| Línea 94: | Línea 104: | ||
end | end | ||
%--------------------------------------------------------------- | %--------------------------------------------------------------- | ||
| − | %CASO 3: PASO DE 0.01 | + | %CASO 3: PASO DE h=0.01 |
h3=0.01; | h3=0.01; | ||
N3=(tN-t0)/h3; | N3=(tN-t0)/h3; | ||
| Línea 107: | Línea 117: | ||
%--------------------------------------------------------------- | %--------------------------------------------------------------- | ||
%Representación en gráficas. | %Representación en gráficas. | ||
| − | plot(t1,y1,'r') %Caso 1 | + | plot(t1,y1,'r') %Caso 1 |
| − | plot(t2,y2,'g') %Caso 2 | + | plot(t2,y2,'g') %Caso 2 |
| − | plot(t3,y3,'b') %Caso 3 | + | plot(t3,y3,'b') %Caso 3 |
title('Método de Heun con todos los casos') | title('Método de Heun con todos los casos') | ||
xlabel('Tiempo') | xlabel('Tiempo') | ||
| Línea 117: | Línea 127: | ||
}} | }} | ||
| − | |||
| − | |||
===Runge-Kutta de orden 4=== | ===Runge-Kutta de orden 4=== | ||
| − | [[Image:RK1.png|520px|image|right|Método de | + | |
| − | [[Image:RK1D.png|520px|image|right|Método de | + | Por último, se representa el método de Runge-Kutta de orden 4 mediante otras dos gráficas con el mismo procedimiento y el código de MATLAB correspondiente. |
| + | |||
| + | [[Image:RK1.png|520px|image|right|Método de Runge-Kutta]] | ||
| + | [[Image:RK1D.png|520px|image|right|Método de Runge-Kutta en detalle]] | ||
| + | |||
{{matlab|codigo= | {{matlab|codigo= | ||
%MÉTODO DE RUNGE-KUTTA DE ORDEN 4 | %MÉTODO DE RUNGE-KUTTA DE ORDEN 4 | ||
hold on | hold on | ||
| − | %Datos conocidos e intervalo de estudio | + | %Datos conocidos e intervalo de estudio |
t0=0; tN=100; r=0.04; M1=30; M2=100; y0=60; | t0=0; tN=100; r=0.04; M1=30; M2=100; y0=60; | ||
%-------------------------------------------------------------------------- | %-------------------------------------------------------------------------- | ||
| − | %CASO 1: paso de 1 | + | %CASO 1: paso de h=1 |
h1=1; | h1=1; | ||
N1=(tN-t0)/h1; | N1=(tN-t0)/h1; | ||
| Línea 143: | Línea 155: | ||
end | end | ||
%-------------------------------------------------------------------------- | %-------------------------------------------------------------------------- | ||
| − | %CASO 2: paso de 0.1 | + | %CASO 2: paso de h=0.1 |
h2=0.1; | h2=0.1; | ||
N2=(tN-t0)/h2; | N2=(tN-t0)/h2; | ||
| Línea 157: | Línea 169: | ||
end | end | ||
%-------------------------------------------------------------------------- | %-------------------------------------------------------------------------- | ||
| − | %CASO 3: paso de 0.01 | + | %CASO 3: paso de h=0.01 |
h3=0.01; | h3=0.01; | ||
N3=(tN-t0)/h3; | N3=(tN-t0)/h3; | ||
| Línea 171: | Línea 183: | ||
end | end | ||
%-------------------------------------------------------------------------- | %-------------------------------------------------------------------------- | ||
| − | %Representación en gráficas | + | %Representación en gráficas |
| − | plot(t1,y1,'r') %Caso 1 | + | plot(t1,y1,'r') %Caso 1 |
| − | plot(t2,y2,'g') %Caso 2 | + | plot(t2,y2,'g') %Caso 2 |
| − | plot(t3,y3,'b') %Caso 3 | + | plot(t3,y3,'b') %Caso 3 |
title('Método de Runge-Kutta con todos los casos') | title('Método de Runge-Kutta con todos los casos') | ||
xlabel('Tiempo') | xlabel('Tiempo') | ||
| Línea 181: | Línea 193: | ||
hold off | hold off | ||
}} | }} | ||
| − | |||
| − | |||
===Interpretaciones=== | ===Interpretaciones=== | ||
| − | De todas las gráficas representadas anteriormente, se puede apreciar que aquellas que corresponden a un paso de \(h=1\) (el caso 1, considerado como un paso amplio), se alejan de la solución exacta, a diferencia de lo que sucede con pasos menores (casos 2 (\(h=0.1\)) y 3 (\(h=0.01\))). A su vez, la solución más cercana a la exacta es la obtenida mediante el método de Runge-Kutta de orden 4. | + | De todas las gráficas representadas anteriormente, se puede apreciar que aquellas que corresponden a un paso de \(h=1\) (el caso 1, considerado como un paso demasiado amplio), se alejan de la solución exacta, a diferencia de lo que sucede con pasos menores (casos 2 (\(h=0.1\)) y 3 (\(h=0.01\))). A su vez, la solución más cercana a la exacta es la obtenida mediante el método de Runge-Kutta de orden 4. |
===Dinámica de poblaciones=== | ===Dinámica de poblaciones=== | ||
| − | Desde un punto de vista de la dinámica de poblaciones, dado que se trata de un método logístico, se puede apreciar que la población no crece indefinidamente, sino que llega a un punto en el que el ecosistema no admite más individuos de la especie en cuestión. | + | |
| + | Desde un punto de vista de la dinámica de poblaciones, dado que se trata de un método logístico, se puede apreciar que la población no crece indefinidamente, sino que llega a un punto en el que el ecosistema no admite más individuos de la especie en cuestión, y ésta se estabiliza en un determinado valor. | ||
==Método de Heun para diferentes poblaciones iniciales== | ==Método de Heun para diferentes poblaciones iniciales== | ||
| + | |||
| + | De nuevo, se procede a resolver numéricamente la ecuación inicial aportada en el enunciado. Esta vez, las poblaciones iniciales de cada especie son \(y_0=120\) e \(y_0=20\). El resto de constantes se mantienen como anteriormente. | ||
{{matlab|codigo= | {{matlab|codigo= | ||
%MÉTODO DE HEUN CON DISTINTOS VALORES INICIALES | %MÉTODO DE HEUN CON DISTINTOS VALORES INICIALES | ||
clf; clear; | clf; clear; | ||
| − | % Datos Iniciales | + | %Datos Iniciales |
t0=0; tN=100; r=0.04; M1=30; M2=100; | t0=0; tN=100; r=0.04; M1=30; M2=100; | ||
y0=120; z0=20; | y0=120; z0=20; | ||
| − | %Paso e intervalo de estudio | + | %Paso e intervalo de estudio |
h=0.1; | h=0.1; | ||
N=(tN-t0)/h; | N=(tN-t0)/h; | ||
t=t0:h:tN; | t=t0:h:tN; | ||
| − | % | + | %------------------------------------------------------------ |
| − | %Heun con valor inicial 120. | + | %Heun con valor inicial y0=120. |
y1=zeros(1,N+1); | y1=zeros(1,N+1); | ||
y1(1)=y0; | y1(1)=y0; | ||
| Línea 212: | Línea 225: | ||
y1(n+1)=y1(n)+h/2*(k1+k2); | y1(n+1)=y1(n)+h/2*(k1+k2); | ||
end | end | ||
| − | % | + | %------------------------------------------------------------ |
| − | %Heun con valor incial 20 | + | %Heun con valor incial z0=20 |
z1=zeros(1,N+1); | z1=zeros(1,N+1); | ||
z1(1)=z0; | z1(1)=z0; | ||
| Línea 221: | Línea 234: | ||
z1(n+1)=z1(n)+h/2*(K1+K2); | z1(n+1)=z1(n)+h/2*(K1+K2); | ||
end | end | ||
| − | % | + | %------------------------------------------------------------ |
| − | %Comparación de gráficas | + | %Comparación de gráficas |
hold on | hold on | ||
plot(t,y1,'r') | plot(t,y1,'r') | ||
| Línea 232: | Línea 245: | ||
hold off | hold off | ||
}} | }} | ||
| − | [[Image:HEUN45.png|520px|image|centre|Método de Heun]] | + | |
| + | [[Image:HEUN45.png|520px|image|centre|Método de Heun comparativo]] | ||
===Interpretación=== | ===Interpretación=== | ||
| − | Según lo que se | + | |
| − | + | Según lo que se puede apreciar en la gráfica, las poblaciones siempre tenderán a disminuir hasta estabilizarse en un valor determinado. Sin embargo, existen ciertas diferencias entre ambas que hacen que se comporten de maneras diferentes. Por un lado, en la población correspondiente a una población inicial de \(y_0=120\) individuos, la estabilización hacia el mencionado valor determinado (en este caso, \(y=100\)) se produce con una rapidez mayor a la de la población inicial de \(20\) individuos, necesitando mucho menos tiempo. Por otra parte, mientras que la población mayor se mantiene en un valor ligeramente inferior al inicial, la población menor tiende a extinguirse llegando a no tener ningún individuo pasado un tiempo. | |
==Modelos de competencia== | ==Modelos de competencia== | ||
| − | <math>\left\{\begin{matrix}x’=a_1x-b_1x^2-c_1xy, | + | |
| + | De ahora en adelante, se tendrá en cuenta que hay dos especies diferentes que ocupan un mismo ecosistema como competidores en el uso de los mismos recursos. Se ha designado \(x(t)\) e \(y(t)\) como la cantidad de individuos de cada especie cuando ha pasado un tiempo \(t\). | ||
| + | |||
| + | La razón de crecimiento de cada especie disminuye proporcionalmente a la cantidad de interacciones entre las especies, con tasas que determinan que cada población crece de forma logística (población acotada). Este proceso se ve sintetizado mediante un modelo no lineal, conocido como '''modelo de competencia''', que responde al siguiente sistema de ecuaciones:: | ||
| + | |||
| + | <math>\left\{\begin{matrix}x’=a_1x-b_1x^2-c_1xy,\\y’=a_2y-b_2y^2-c_2xy\end{matrix}\right.</math> | ||
| + | |||
| + | Donde los coeficientes \(a_1\) y \(a_2\) determinan la razón de crecimiento de cada especie, \(b_1\) y \(b_2\) acotan dicho crecimiento y, en último lugar, \(c_1\) y \(c_2\) responden al tipo de interacción o situación que existe entre las dos especies. | ||
| + | |||
| + | A continuación, se detallan los códigos de MATLAB empleados para representar el comportamiento de las especies en cada una de las situaciones. En las imágenes adjuntas, se pueden apreciar las representaciones correspondientes al uso del método de Heun y de Euler, para la primera parte, con una frecuencia de paso de \(h=0.1\) (que evita sobrecargas en el proceso de cálculo sin ser mucho más preciso \(h=0.001\)). En la parte comparativa, sólo se adjunta la gráfica del método de Heun (por ser más preciso que el de Euler). | ||
| + | |||
{{matlab|codigo= | {{matlab|codigo= | ||
| − | + | %SISTEMA NO LINEAL POR EL MÉTODO DE EULER | |
| − | % x'=a1*x-b1*x^2-c1*x*y | + | %x'=a1*x-b1*x^2-c1*x*y |
| − | % y'=a2*y-b2*y^2-c2*x*y | + | %y'=a2*y-b2*y^2-c2*x*y |
clear all; clf | clear all; clf | ||
| − | %Introducción de los coeficientes, instante final y pasos de los diferentes casos | + | %Introducción de los coeficientes, instante final y pasos de los diferentes casos |
a1=input('a1: '); a2=input('a2: '); | a1=input('a1: '); a2=input('a2: '); | ||
b1=input('b1: '); b2=input('b2: '); | b1=input('b1: '); b2=input('b2: '); | ||
| Línea 251: | Línea 275: | ||
h=input('Paso: '); | h=input('Paso: '); | ||
tN=input('Limite final: '); | tN=input('Limite final: '); | ||
| − | %Números de subintervalos | + | %Números de subintervalos |
t0=0; | t0=0; | ||
N=round((tN-t0)/h); | N=round((tN-t0)/h); | ||
| Línea 257: | Línea 281: | ||
x=zeros(1,N+1); | x=zeros(1,N+1); | ||
y=zeros(1,N+1); | y=zeros(1,N+1); | ||
| − | %Valores iniciales | + | %Valores iniciales |
x0=2; y0=7; | x0=2; y0=7; | ||
x(1)=x0; | x(1)=x0; | ||
y(1)=y0; | y(1)=y0; | ||
| − | %Bucle planteado con el método de Euler | + | %Bucle planteado con el método de Euler |
for i=1:N | for i=1:N | ||
x(i+1)=x(i)+h*(a1*x(i)-b1*(x(i))^2-c1*x(i).*y(i)); | x(i+1)=x(i)+h*(a1*x(i)-b1*(x(i))^2-c1*x(i).*y(i)); | ||
y(i+1)=y(i)+h*(a2*y(i)-b2*(y(i))^2-c2*x(i).*y(i)); | y(i+1)=y(i)+h*(a2*y(i)-b2*(y(i))^2-c2*x(i).*y(i)); | ||
end | end | ||
| − | %Para conocer los valores máximos y mínimos de las funciones | + | %Para conocer los valores máximos y mínimos de las funciones |
[Mx, pMx]=max(x); [My, pMy]=max(y); | [Mx, pMx]=max(x); [My, pMy]=max(y); | ||
[mx, pmy]=min(x); [mx, pmy]=min(y); | [mx, pmy]=min(x); [mx, pmy]=min(y); | ||
| − | %Representación de las gráficas de ambas poblaciones | + | %Representación de las gráficas de ambas poblaciones |
hold on | hold on | ||
plot(t,x) | plot(t,x) | ||
| Línea 285: | Línea 309: | ||
% y'=a2*y-b2*y^2-c2*x*y | % y'=a2*y-b2*y^2-c2*x*y | ||
clear all; clf | clear all; clf | ||
| − | %Introducción de los coeficientes, instante final y pasos de los diferentes casos | + | %Introducción de los coeficientes, instante final y pasos de los diferentes casos |
a1=input('a1: '); a2=input('a2: '); | a1=input('a1: '); a2=input('a2: '); | ||
b1=input('b1: '); b2=input('b2: '); | b1=input('b1: '); b2=input('b2: '); | ||
| Línea 291: | Línea 315: | ||
h=input('Paso: '); | h=input('Paso: '); | ||
tN=input('Limite final: '); | tN=input('Limite final: '); | ||
| − | %Números de subintervalos | + | %Números de subintervalos |
t0=0; | t0=0; | ||
N=round((tN-t0)/h); | N=round((tN-t0)/h); | ||
| Línea 297: | Línea 321: | ||
x=zeros(1,N+1); | x=zeros(1,N+1); | ||
y=zeros(1,N+1); | y=zeros(1,N+1); | ||
| − | %Valores iniciales | + | %Valores iniciales |
x0=2; y0=7; | x0=2; y0=7; | ||
x(1)=x0; | x(1)=x0; | ||
y(1)=y0; | y(1)=y0; | ||
| − | %Bucle planteado con el método de Heun | + | %Bucle planteado con el método de Heun |
for i=1:N | for i=1:N | ||
k1x=a1*x(i)-b1*x(i)^2-c1*x(i)*y(i); | k1x=a1*x(i)-b1*x(i)^2-c1*x(i)*y(i); | ||
| Línea 307: | Línea 331: | ||
k2x=a1*(x(i)+k1x*h)-b1*(x(i)+k1x*h)^2-c1*(x(i)+k1x*h)*y(i); | k2x=a1*(x(i)+k1x*h)-b1*(x(i)+k1x*h)^2-c1*(x(i)+k1x*h)*y(i); | ||
k2y=a2*(y(i)+k1y*h)-b2*(y(i)+k1y*h)^2-c2*x(i)*(y(i)+k1y*h); | k2y=a2*(y(i)+k1y*h)-b2*(y(i)+k1y*h)^2-c2*x(i)*(y(i)+k1y*h); | ||
| − | |||
x(i+1)=x(i)+h/2*(k1x+k2x); | x(i+1)=x(i)+h/2*(k1x+k2x); | ||
y(i+1)=y(i)+h/2*(k1y+k2y); | y(i+1)=y(i)+h/2*(k1y+k2y); | ||
end | end | ||
| − | %Para conocer los valores máximos y | + | %Para conocer los valores máximos y mínimos de las funciones |
[Mx, pMx]=max(x); [My, pMy]=max(y); | [Mx, pMx]=max(x); [My, pMy]=max(y); | ||
[mx, pmx]=min(x); [mx, pmy]=min(y); | [mx, pmx]=min(x); [mx, pmy]=min(y); | ||
| − | %Representación de las gráficas de ambas poblaciones | + | %Representación de las gráficas de ambas poblaciones |
hold on | hold on | ||
plot(t,x) | plot(t,x) | ||
| Línea 326: | Línea 349: | ||
===Situaciones posibles=== | ===Situaciones posibles=== | ||
| + | |||
| + | En función de los valores de \(c_1\) y \(c_2\), se pueden presentar diferentes situaciones dentro del mencionado modelo de competencia. | ||
====Parasitismo==== | ====Parasitismo==== | ||
| − | + | En este caso, los datos son los siguientes \(a_1=−0.3\), \(a_2=1.15\), \(b_1=0\), \(b_2=0\), \(c_1=−0.08\), \(c_2=0.09\), \(x(0)=2\), \(y(0)=7\) y \(t∈[0,15]\). Es decir, \(c_1\) es negativo (aumentando la población del animal 1) y \(c_2\) es positivo (lo cual disminuye la población del animal 2). | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | [[Image:EULER21.png| | + | [[Image:EULER21.png|600px|image|centre|Método de Euler]] |
| − | + | ||
| − | + | [[Image:HEUN21.png|600px|image|centre|Método de Heun]] | |
| + | |||
| + | Se puede ver que los coeficientes no se corresponden con la realidad puesto que el animal 1 renace, pero se trataría de parasitismo. El mayor inconveniente del método de Euler es que es menos aproximado que cualquiera de los otros métodos. Existe un máximo de \(y=50.773\) del animal 1 en \(t=3.1\) y un máximo de \(y=28.612\) del animal 2 en \(t=2\). El crecimiento del animal 1 se ve ''afectado positivamente'' por el crecimiento del animal 2, a la vez que el crecimiento del animal 2 se ve afectado negativamente por el crecimiento del animal 1. Se trata de un ecosistema no estable ya que el animal 2 desaparece y se puede apreciar que el animal 1 tiende a hacer lo mismo. | ||
====Neutralismo==== | ====Neutralismo==== | ||
| − | + | En este caso, los datos son los siguientes \(a_1=0.16\), \(a_2=0.25\), \(b_1=0.04\), \(b_2=0.1\), \(c_1=0\), \(c_2=0\), \(x(0)=2\), \(y(0)=7\) y \(t∈[0,40]\). Es decir, \(c_1\) es 0 (la población del animal 1 ni aumenta ni disminuye) y \(c_2\) también (ídem). | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | [[Image:EULER22.png| | + | [[Image:EULER22.png|600px|image|centre|Método de Euler]] |
| − | + | ||
| − | + | [[Image:HEUN22.png|600px|image|centre|Método de Heun]] | |
| + | Puesto que \(c_1\) y \(c_2\) son \(0\), no existen interacciones entre ambas poblaciones. Se trata, pues de neutralismo, porque se elimina el término que relaciona las dos especies, el que provoca que ambas interactúen (quedando ecuaciones diferenciales de primer grado independientes). No existen máximos y mínimos, salvo en los extremos del intervalo de estudio (teorema de Weierstraß). No tiende a desaparecer ninguna especie, mientras que sí que tienden a ser estables, por tanto se puede afirmar que el crecimiento de cada una de ellas no afecta a la otra. El ecosistema es estable ya que las dos especies tienden a un número determinado. | ||
====Simbiosis o cooperación==== | ====Simbiosis o cooperación==== | ||
| − | + | En este caso, los datos son los siguientes \(a_1=0.16\), \(a_2=0.25\), \(b_1=0.04\), \(b_2=0.1\), \(c_1=−0.015\), \(c_2=-0.02\), \(x(0)=2\), \(y(0)=7\) y \(t∈[0,20]\). Es decir, \(c_1\) es negativo (aumentando la población del animal 1) y \(c_2\) también (es decir, también aumenta la población del animal 2). | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | Es | + | |
| − | [[Image:EULER23.png| | + | [[Image:EULER23.png|600px|image|centre|Método de Euler]] |
| − | + | ||
| − | + | [[Image:HEUN23.png|600px|image|centre|Método de Heun]] | |
| + | Se puede afirmar que se trata de una simbiosis ya que ambas especies empiezan a crecer al final del dominio de tiempo dado. Hay un mínimo de \(y=3.366\) del animal 2 en \(t=9\). Además, no tiende a desaparecer ninguna especie. Se ''afectan positivamente'' porque los coeficientes son negativos. Además, en la gráfica se ve que las dos especies crecen al final del intervalo, es decir, si se estableciera un intervalo mayor, se vería que las gráficas tienden a un determinado valor. Se confirma que es un ecosistema estable. | ||
====Competición==== | ====Competición==== | ||
| − | + | En este caso, los datos son los siguientes \(a_1=1\), \(a_2=1\), \(b_1=0.04\), \(b_2=0.1\), \(c_1=0.015\), \(c_2=0.02\), \(x(0)=2\), \(y(0)=7\) y \(t∈[0,20]\). Es decir, \(c_1\) es positivo (haciendo disminuir la población del animal 1) y \(c_2\) también (dicho de otra manera, también disminuye la población del animal 2). | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | Es | + | |
| − | [[Image:EULER24.png| | + | [[Image:EULER24.png|600px|image|centre|Método de Euler]] |
| − | + | ||
| − | + | [[Image:HEUN24.png|600px|image|centre|Método de Heun]] | |
| + | Es el modelo que corresponde a una competición, pues se ha visto que en una gráfica en la que no hay interacción, ambas poblaciones crecían más que en la gráfica correspondiente a la competición. Gráficamente, tomando solo como referencia la gráfica de competición, tiene aspecto de amensalismo, ya que el animal 1 perjudica el crecimiento del animal 2 sin verse afectado. El animal 2 tiene un máximo de \(t=8.576\) en \(t=1.9\). Las especies se afectan negativamente entre sí, pero tienden a estabilizarse entorno a un número, por lo que se trata de un ecosistema estable. | ||
====Amensalismo==== | ====Amensalismo==== | ||
| − | + | En este caso, los datos son los siguientes \(a_1=1\), \(a_2=1\), \(b_1=0.04\), \(b_2=0.1\), \(c_1=0\), \(c_2=0.2\), \(x(0)=2\), \(y(0)=7\) y \(t∈[0,10]\). Es decir, \(c_1\) es \(0\) (la población del animal 1 ni aumenta ni disminuye) y \(c_2\) es positivo (esto es, disminuye la población del animal 2). | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | [ | + | |
| − | + | ||
| − | + | [[Image:EULER25.png|600px|image|centre|Método de Euler]] | |
| − | + | [[Image:HEUN25.png|600px|image|centre|Método de Heun]] | |
| − | + | Se trata del caso de amensalismo, puesto que el animal 1 crece sin verse afectado por el animal 2, mientras que el animal 2 se ve afectado negativamente (llegando a extinguirse) por el animal 1, que tiende a estabilizarse en \(y=25\). No obstante, se trata de un ecosistema estable (aunque una de las poblaciones converja en \(0\)). | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ====Comensalismo==== | |
| − | + | ||
| − | + | En este caso, los datos son los siguientes \(a_1=1\), \(a_2=1\), \(b_1=0.04\), \(b_2=0.1\), \(c_1=0\), \(c_2=-0.2\), \(x(0)=2\), \(y(0)=7\) y \(t∈[0,10]\). Es decir, \(c_1\) es \(0\) (la población del animal 1 ni aumenta ni disminuye) y \(c_2\) es negativo (es decir, aumenta la población del animal 2). | |
| + | [[Image:EULER26.png|600px|image|centre|Método de Euler]] | ||
| + | [[Image:HEUN26.png|600px|image|centre|Método de Heun]] | ||
| + | |||
| + | Se trata de una situación de comensalismo, debido a que el crecimiento del animal 1 no se ve afectado, mientras que el animal 2 se beneficia a costa de la otra especie, sin perjudicarlo ni beneficiarlo. Ambas especies tienden a estabilizarse, por lo que se trata de un ecosistema estable. | ||
===Comparación de especies=== | ===Comparación de especies=== | ||
| − | + | Ahora, se procede a realizar el estudio comparativo del comportamiento de ambas poblaciones según las situaciones anteriormente expuestas. Para ello, se hace uso del siguiente código de MATLAB: | |
| + | |||
{{matlab|codigo= | {{matlab|codigo= | ||
%SISTEMA NO LINEAL POR EL MÉTODO DE HEUN | %SISTEMA NO LINEAL POR EL MÉTODO DE HEUN | ||
| Línea 419: | Línea 420: | ||
% y'=a2*y-b2*y^2-c2*x*y | % y'=a2*y-b2*y^2-c2*x*y | ||
clear all; clf | clear all; clf | ||
| − | %Introducción de los coeficientes, instante final y pasos de los diferentes casos | + | %Introducción de los coeficientes, instante final y pasos de los diferentes casos |
a1=input('a1: '); a2=input('a2: '); | a1=input('a1: '); a2=input('a2: '); | ||
b1=input('b1: '); b2=input('b2: '); | b1=input('b1: '); b2=input('b2: '); | ||
| Línea 425: | Línea 426: | ||
h=input('Paso: '); | h=input('Paso: '); | ||
tN=input('Limite final: '); | tN=input('Limite final: '); | ||
| − | %Números de subintervalos | + | %Números de subintervalos |
t0=0; | t0=0; | ||
N=round((tN-t0)/h); | N=round((tN-t0)/h); | ||
| Línea 431: | Línea 432: | ||
x=zeros(1,N+1); | x=zeros(1,N+1); | ||
y=zeros(1,N+1); | y=zeros(1,N+1); | ||
| − | %Valores iniciales | + | %Valores iniciales |
x0=2; y0=7; | x0=2; y0=7; | ||
x(1)=x0; | x(1)=x0; | ||
y(1)=y0; | y(1)=y0; | ||
| − | %Bucle planteado con el método de Heun | + | %Bucle planteado con el método de Heun |
for i=1:N | for i=1:N | ||
k1x=a1*x(i)-b1*x(i)^2-c1*x(i)*y(i); | k1x=a1*x(i)-b1*x(i)^2-c1*x(i)*y(i); | ||
| Línea 441: | Línea 442: | ||
k2x=a1*(x(i)+k1x*h)-b1*(x(i)+k1x*h)^2-c1*(x(i)+k1x*h)*y(i); | k2x=a1*(x(i)+k1x*h)-b1*(x(i)+k1x*h)^2-c1*(x(i)+k1x*h)*y(i); | ||
k2y=a2*(y(i)+k1y*h)-b2*(y(i)+k1y*h)^2-c2*x(i)*(y(i)+k1y*h); | k2y=a2*(y(i)+k1y*h)-b2*(y(i)+k1y*h)^2-c2*x(i)*(y(i)+k1y*h); | ||
| − | |||
x(i+1)=x(i)+h/2*(k1x+k2x); | x(i+1)=x(i)+h/2*(k1x+k2x); | ||
y(i+1)=y(i)+h/2*(k1y+k2y); | y(i+1)=y(i)+h/2*(k1y+k2y); | ||
end | end | ||
| − | %Para conocer los valores máximos y mísimos de las funciones | + | %Para conocer los valores máximos y mísimos de las funciones |
[Mx, pMx]=max(x); [My, pMy]=max(y); | [Mx, pMx]=max(x); [My, pMy]=max(y); | ||
[mx, pmx]=min(x); [mx, pmy]=min(y); | [mx, pmx]=min(x); [mx, pmy]=min(y); | ||
| − | %Representación de las gráficas de ambas poblaciones | + | %Representación de las gráficas de ambas poblaciones |
| − | + | ||
subplot(1,2,1) | subplot(1,2,1) | ||
hold on | hold on | ||
| Línea 467: | Línea 466: | ||
====Parasitismo==== | ====Parasitismo==== | ||
| − | En | + | |
| + | En el momento en que el animal 2 aumenta su población, el animal 1 comienza a aumentar su población a costa de aquél, por lo que se trata de un parasitismo. Cuando el animal 2 está casi extinto, el animal 1 empieza también a desaparecer. | ||
| + | |||
[[Image:COMP1.png|1000px|image|centre|Comparativa]] | [[Image:COMP1.png|1000px|image|centre|Comparativa]] | ||
====Neutralismo==== | ====Neutralismo==== | ||
| − | Aunque | + | |
| + | Aunque pueda parecer un amensalismo (una especie aumenta mientras que la otra desciende), se trata de un neutralismo ya que ninguna de las dos especies tiende a desaparecer. | ||
| + | |||
[[Image:COMP2.png|1000px|image|centre|Comparativa]] | [[Image:COMP2.png|1000px|image|centre|Comparativa]] | ||
| + | |||
====Simbiosis o cooperación==== | ====Simbiosis o cooperación==== | ||
| − | Se trata de una simbiosis ya que en la parte final de la gráfica ambas especies tienden a crecer. | + | |
| − | [[Image: | + | Se trata de una simbiosis, ya que en la parte final de la gráfica ambas especies tienden a crecer. |
| + | |||
| + | [[Image:COMP3B.png|1000px|image|centre|Comparativa]] | ||
| + | |||
====Competición==== | ====Competición==== | ||
| − | A primera vista | + | |
| + | A primera vista, podría confundirse con una situación de parasitismo. No obstante, si fuera así, al verse reducido el número de individuos de la especie animal 2, el animal 1 (supuesto parásito) tendería a disminuir también su población al quedarse sin huésped. De ahí, deducimos que no es un caso de parasitismo, porque al verse disminuida la especie 2, la especie 1 no tiende a disminuir su población, sino que ambas se estabilizan. Es decir, se tratar de un caso de competición, porque el crecimiento de ambas especies llega a un máximo, a partir del cual el animal 1 sigue en tendencia positiva de crecimiento, mientras que el animal 2 decrece. | ||
| + | |||
[[Image:COMP4.png|1000px|image|centre|Comparativa]] | [[Image:COMP4.png|1000px|image|centre|Comparativa]] | ||
| + | |||
====Amensalismo==== | ====Amensalismo==== | ||
| − | En este caso se puede apreciar un amensalismo, ya que la especie 2 se ve reducida a medida que aumenta el número de individuos de la especie 1. | + | |
| + | En este caso, se puede apreciar que se trata de un amensalismo, ya que la especie animal 2 se ve reducida a medida que aumenta el número de individuos de la especie animal 1. A modo de observación, en la gráfica se ve que cuantos más individuos de la especie animal 1 hay, más rápido decrece la población del animal 2 y, además, cuantos menos individuos hay de la especie animal 2, más despacio decrece ésta. | ||
| + | |||
[[Image:COMP5.png|1000px|image|centre|Comparativa]] | [[Image:COMP5.png|1000px|image|centre|Comparativa]] | ||
| + | |||
====Comensalismo==== | ====Comensalismo==== | ||
| − | + | ||
| + | Se puede ver que una de las especies ve incrementada su población en proporción al número de individuos de la segunda especie, mientras ésta no se ve afectada por la primera. | ||
| + | |||
[[Image:COMP6.png|1000px|image|centre|Comparativa]] | [[Image:COMP6.png|1000px|image|centre|Comparativa]] | ||
Revisión actual del 21:48 12 mar 2015
| Trabajo realizado por estudiantes | |
|---|---|
| Título | Logística con Umbral (Grupo 15-A) |
| Asignatura | Ecuaciones Diferenciales |
| Curso | Curso 2014-15 |
| Autores | • Javier Colorado Martínez (1278) • Álvaro Llera Fernández (501) • Francisco Javier Alcaraz de Amuriza (567) • Daniel Ballesteros Gálvez (1376) • Alberto Rodríguez Fernández (357) • Francisco Javier Barral González (632) |
| Este artículo ha sido escrito por estudiantes como parte de su evaluación en la asignatura | |
Contenido
1 Introducción
El Problema de Valor Inicial (P.V.I.) de Logística con Umbral viene definido por la siguiente ecuación::
[math]\left\{\begin{matrix}y’=-ry(1-{y\over M_1})(1-{y\over M_2}),\ \ \ \ \ t\gt0\ltbr/\gt\\y=y_0\end{matrix}\right.[/math]
Donde \(M_1=30\), \(M_2=100\), \(r=0.04\) e \(y_0=60\). La resolución numérica a estudiar está definida en el intervalo \(I=[0,100]\).
2 Resolución numérica
A continuación, se va a proceder a modelizar la solución de dicha ecuación mediante los métodos de Euler, Heun y Runge-Kutta de orden 4. El procedimiento por el que se ha optado ha consistido en introducir en MATLAB cada uno de los métodos con los diferentes pasos, a saber, el caso 1 con un paso de \(h=1\), el caso 2 con \(h=0.1\) y el caso 3 con \(h=0.01\) y, finalmente, obtener las gráficas asociadas.
2.1 Euler
En primer lugar, se indica el método de Euler, con el código de MATLAB correspondiente y dos gráficas, una con todo el desarrollo en el intervalo y otra en la que se aprecia en detalle la exactitud de cada uno de los pasos, comparados entre sí.
%MÉTODO DE EULER
hold on
%Datos conocidos e intervalo de estudio
t0=0; tN=100; r=0.04; M1=30; M2=100; y0=60;
%-------------------------------------------------------
%CASO 1: paso de h=1
h1=1;
N1=(tN-t0)/h1;
t1=t0:h1:tN;
y1=zeros(1,N1+1);
y1(1)=y0;
for n=1:N1
y1(n+1)=y1(n)+h1*(-r*y1(n)*(1-y1(n)/M1)*(1-y1(n)/M2));
end
%-------------------------------------------------------
%CASO 2: paso de h=0.1
h2=0.1;
N2=(tN-t0)/h2;
t2=t0:h2:tN;
y2=zeros(1,N2+1);
y2(1)=y0;
for n=1:N2
y2(n+1)=y2(n)+h2*(-r*y2(n)*(1-y2(n)/M1)*(1-y2(n)/M2));
end
%------------------------------------------------------
%CASO 3: PASO DE h=0.01
h3=0.01;
N3=(tN-t0)/h3;
t3=t0:h3:tN;
y3=zeros(1,N3+1);
y3(1)=y0;
for n=1:N3
y3(n+1)=y3(n)+h3*-r*y3(n)*(1-y3(n)/M1)*(1-y3(n)/M2);
end
%-----------------------------------------------------
%Representación en gráficas.
plot(t1,y1,'r') %Caso 1
plot(t2,y2,'g') %Caso 2
plot(t3,y3,'b') %Caso 3
title('Método de Euler con todos los casos')
xlabel('Tiempo')
ylabel('Evolución de la y')
legend('Caso 1 Euler','Caso 2 Euler','Caso 3 Euler','Location','best')
hold off
2.2 Heun
Posteriormente, se introduce el método de Heun, con el que se adjunta el código de MATLAB y las gráficas con los 3 casos correspondientes.
%MÉTODO DE HEUN
hold on
%Datos conocidos e intervalo de estudio
t0=0; tN=100; r=0.04; M1=30; M2=100; y0=60;
%--------------------------------------------------------------
%CASO 1: paso de h=1
h1=1;
N1=(tN-t0)/h1;
t1=t0:h1:tN;
y1=zeros(1,N1+1);
y1(1)=y0;
for n=1:N1
k1=-r*y1(n)*(1-y1(n)/M1)*(1-y1(n)/M2);
k2=-r*(y1(n)+k1*h1)*(1-(y1(n)+k1*h1)/M1)*(1-(y1(n)+k1*h1)/M2);
y1(n+1)=y1(n)+h1/2*(k1+k2);
end
%---------------------------------------------------------------
%CASO 2: PASO DE h=0.1
h2=0.1;
N2=(tN-t0)/h2;
t2=t0:h2:tN;
y2=zeros(1,N2+1);
y2(1)=y0;
for n=1:N2
k1=-r*y2(n)*(1-y2(n)/M1)*(1-y2(n)/M2);
k2=-r*(y2(n)+k1*h2)*(1-(y2(n)+k1*h2)/M1)*(1-(y2(n)+k1*h2)/M2);
y2(n+1)=y2(n)+h2/2*(k1+k2);
end
%---------------------------------------------------------------
%CASO 3: PASO DE h=0.01
h3=0.01;
N3=(tN-t0)/h3;
t3=t0:h3:tN;
y3=zeros(1,N3+1);
y3(1)=y0;
for n=1:N3
k1=-r*y3(n)*(1-y3(n)/M1)*(1-y3(n)/M2);
k2=-r*(y3(n)+k1*h3)*(1-(y3(n)+k1*h3)/M1)*(1-(y3(n)+k1*h3)/M2);
y3(n+1)=y3(n)+h3/2*(k1+k2);
end
%---------------------------------------------------------------
%Representación en gráficas.
plot(t1,y1,'r') %Caso 1
plot(t2,y2,'g') %Caso 2
plot(t3,y3,'b') %Caso 3
title('Método de Heun con todos los casos')
xlabel('Tiempo')
ylabel('Evolución de la y')
legend('Caso 1 Heun','Caso 2 Heun','Caso 3 Heun','Location','best')
hold off
2.3 Runge-Kutta de orden 4
Por último, se representa el método de Runge-Kutta de orden 4 mediante otras dos gráficas con el mismo procedimiento y el código de MATLAB correspondiente.
%MÉTODO DE RUNGE-KUTTA DE ORDEN 4
hold on
%Datos conocidos e intervalo de estudio
t0=0; tN=100; r=0.04; M1=30; M2=100; y0=60;
%--------------------------------------------------------------------------
%CASO 1: paso de h=1
h1=1;
N1=(tN-t0)/h1;
t1=t0:h1:tN;
y1=zeros(1,N1+1);
y1(1)=y0;
for n=1:N1
k1=-r*y1(n)*(1-y1(n)/M1)*(1-y1(n)/M2);
k2=-r*(y1(n)+1/2*k1*h1)*(1-(y1(n)+1/2*k1*h1)/M1)*(1-(y1(n)+1/2*k1*h1)/M2);
k3=-r*(y1(n)+1/2*k2*h1)*(1-(y1(n)+1/2*k2*h1)/M1)*(1-(y1(n)+1/2*k2*h1)/M2);
k4=-r*(y1(n)+k3*h1)*(1-(y1(n)+k3*h1)/M1)*(1-(y1(n)+k3*h1)/M2);
y1(n+1)=y1(n)+h1/6*(k1+2*k2+2*k3+k4);
end
%--------------------------------------------------------------------------
%CASO 2: paso de h=0.1
h2=0.1;
N2=(tN-t0)/h2;
t2=t0:h2:tN;
y2=zeros(1,N2+1);
y2(1)=y0;
for n=1:N2
k1=-r*y2(n)*(1-y2(n)/M1)*(1-y2(n)/M2);
k2=-r*(y2(n)+1/2*k1*h2)*(1-(y2(n)+1/2*k1*h2)/M1)*(1-(y2(n)+1/2*k1*h2)/M2);
k3=-r*(y2(n)+1/2*k2*h2)*(1-(y2(n)+1/2*k2*h2)/M1)*(1-(y2(n)+1/2*k2*h2)/M2);
k4=-r*(y2(n)+k3*h2)*(1-(y2(n)+k3*h2)/M1)*(1-(y2(n)+k3*h2)/M2);
y2(n+1)=y2(n)+h2/6*(k1+2*k2+2*k3+k4);
end
%--------------------------------------------------------------------------
%CASO 3: paso de h=0.01
h3=0.01;
N3=(tN-t0)/h3;
t3=t0:h3:tN;
y3=zeros(1,N3+1);
y3(1)=y0;
for n=1:N3
k1=-r*y3(n)*(1-y3(n)/M1)*(1-y3(n)/M2);
k2=-r*(y3(n)+1/2*k1*h3)*(1-(y3(n)+1/2*k1*h3)/M1)*(1-(y3(n)+1/2*k1*h3)/M2);
k3=-r*(y3(n)+1/2*k2*h3)*(1-(y3(n)+1/2*k2*h3)/M1)*(1-(y3(n)+1/2*k2*h3)/M2);
k4=-r*(y3(n)+k3*h3)*(1-(y3(n)+k3*h3)/M1)*(1-(y3(n)+k3*h3)/M2);
y3(n+1)=y3(n)+h3/6*(k1+2*k2+2*k3+k4);
end
%--------------------------------------------------------------------------
%Representación en gráficas
plot(t1,y1,'r') %Caso 1
plot(t2,y2,'g') %Caso 2
plot(t3,y3,'b') %Caso 3
title('Método de Runge-Kutta con todos los casos')
xlabel('Tiempo')
ylabel('Evolución de la y')
legend('Caso 1 RK4','Caso 2 RK4','Caso 3 RK4','Location','best')
hold off
2.4 Interpretaciones
De todas las gráficas representadas anteriormente, se puede apreciar que aquellas que corresponden a un paso de \(h=1\) (el caso 1, considerado como un paso demasiado amplio), se alejan de la solución exacta, a diferencia de lo que sucede con pasos menores (casos 2 (\(h=0.1\)) y 3 (\(h=0.01\))). A su vez, la solución más cercana a la exacta es la obtenida mediante el método de Runge-Kutta de orden 4.
2.5 Dinámica de poblaciones
Desde un punto de vista de la dinámica de poblaciones, dado que se trata de un método logístico, se puede apreciar que la población no crece indefinidamente, sino que llega a un punto en el que el ecosistema no admite más individuos de la especie en cuestión, y ésta se estabiliza en un determinado valor.
3 Método de Heun para diferentes poblaciones iniciales
De nuevo, se procede a resolver numéricamente la ecuación inicial aportada en el enunciado. Esta vez, las poblaciones iniciales de cada especie son \(y_0=120\) e \(y_0=20\). El resto de constantes se mantienen como anteriormente.
%MÉTODO DE HEUN CON DISTINTOS VALORES INICIALES
clf; clear;
%Datos Iniciales
t0=0; tN=100; r=0.04; M1=30; M2=100;
y0=120; z0=20;
%Paso e intervalo de estudio
h=0.1;
N=(tN-t0)/h;
t=t0:h:tN;
%------------------------------------------------------------
%Heun con valor inicial y0=120.
y1=zeros(1,N+1);
y1(1)=y0;
for n=1:N
k1=-r*y1(n)*(1-y1(n)/M1)*(1-y1(n)/M2);
k2=-r*(y1(n)+k1*h)*(1-(y1(n)+k1*h)/M1)*(1-(y1(n)+k1*h)/M2);
y1(n+1)=y1(n)+h/2*(k1+k2);
end
%------------------------------------------------------------
%Heun con valor incial z0=20
z1=zeros(1,N+1);
z1(1)=z0;
for n=1:N
K1=-r*z1(n)*(1-z1(n)/M1)*(1-z1(n)/M2);
K2=-r*(z1(n)+K1*h)*(1-(z1(n)+K1*h)/M1)*(1-(z1(n)+k1*h)/M2);
z1(n+1)=z1(n)+h/2*(K1+K2);
end
%------------------------------------------------------------
%Comparación de gráficas
hold on
plot(t,y1,'r')
plot(t,z1,'g')
title('Comparativa del método de Heun')
xlabel('Tiempo')
ylabel('Evolución de la población')
legend('Heun 120','Heun 20','Location','best')
hold off3.1 Interpretación
Según lo que se puede apreciar en la gráfica, las poblaciones siempre tenderán a disminuir hasta estabilizarse en un valor determinado. Sin embargo, existen ciertas diferencias entre ambas que hacen que se comporten de maneras diferentes. Por un lado, en la población correspondiente a una población inicial de \(y_0=120\) individuos, la estabilización hacia el mencionado valor determinado (en este caso, \(y=100\)) se produce con una rapidez mayor a la de la población inicial de \(20\) individuos, necesitando mucho menos tiempo. Por otra parte, mientras que la población mayor se mantiene en un valor ligeramente inferior al inicial, la población menor tiende a extinguirse llegando a no tener ningún individuo pasado un tiempo.
4 Modelos de competencia
De ahora en adelante, se tendrá en cuenta que hay dos especies diferentes que ocupan un mismo ecosistema como competidores en el uso de los mismos recursos. Se ha designado \(x(t)\) e \(y(t)\) como la cantidad de individuos de cada especie cuando ha pasado un tiempo \(t\).
La razón de crecimiento de cada especie disminuye proporcionalmente a la cantidad de interacciones entre las especies, con tasas que determinan que cada población crece de forma logística (población acotada). Este proceso se ve sintetizado mediante un modelo no lineal, conocido como modelo de competencia, que responde al siguiente sistema de ecuaciones::
[math]\left\{\begin{matrix}x’=a_1x-b_1x^2-c_1xy,\\y’=a_2y-b_2y^2-c_2xy\end{matrix}\right.[/math]
Donde los coeficientes \(a_1\) y \(a_2\) determinan la razón de crecimiento de cada especie, \(b_1\) y \(b_2\) acotan dicho crecimiento y, en último lugar, \(c_1\) y \(c_2\) responden al tipo de interacción o situación que existe entre las dos especies.
A continuación, se detallan los códigos de MATLAB empleados para representar el comportamiento de las especies en cada una de las situaciones. En las imágenes adjuntas, se pueden apreciar las representaciones correspondientes al uso del método de Heun y de Euler, para la primera parte, con una frecuencia de paso de \(h=0.1\) (que evita sobrecargas en el proceso de cálculo sin ser mucho más preciso \(h=0.001\)). En la parte comparativa, sólo se adjunta la gráfica del método de Heun (por ser más preciso que el de Euler).
%SISTEMA NO LINEAL POR EL MÉTODO DE EULER
%x'=a1*x-b1*x^2-c1*x*y
%y'=a2*y-b2*y^2-c2*x*y
clear all; clf
%Introducción de los coeficientes, instante final y pasos de los diferentes casos
a1=input('a1: '); a2=input('a2: ');
b1=input('b1: '); b2=input('b2: ');
c1=input('c1: '); c2=input('c2: ');
h=input('Paso: ');
tN=input('Limite final: ');
%Números de subintervalos
t0=0;
N=round((tN-t0)/h);
t=[t0:h:tN];
x=zeros(1,N+1);
y=zeros(1,N+1);
%Valores iniciales
x0=2; y0=7;
x(1)=x0;
y(1)=y0;
%Bucle planteado con el método de Euler
for i=1:N
x(i+1)=x(i)+h*(a1*x(i)-b1*(x(i))^2-c1*x(i).*y(i));
y(i+1)=y(i)+h*(a2*y(i)-b2*(y(i))^2-c2*x(i).*y(i));
end
%Para conocer los valores máximos y mínimos de las funciones
[Mx, pMx]=max(x); [My, pMy]=max(y);
[mx, pmy]=min(x); [mx, pmy]=min(y);
%Representación de las gráficas de ambas poblaciones
hold on
plot(t,x)
plot(t,y, 'r')
legend('Animal 1', 'Animal 2', 'Location' , 'best')
xlabel('Tiempo');
ylabel('Población');
title('Euler')
hold off
%SISTEMA NO LINEAL POR EL MÉTODO DE HEUN
% x'=a1*x-b1*x^2-c1*x*y
% y'=a2*y-b2*y^2-c2*x*y
clear all; clf
%Introducción de los coeficientes, instante final y pasos de los diferentes casos
a1=input('a1: '); a2=input('a2: ');
b1=input('b1: '); b2=input('b2: ');
c1=input('c1: '); c2=input('c2: ');
h=input('Paso: ');
tN=input('Limite final: ');
%Números de subintervalos
t0=0;
N=round((tN-t0)/h);
t=[t0:h:tN];
x=zeros(1,N+1);
y=zeros(1,N+1);
%Valores iniciales
x0=2; y0=7;
x(1)=x0;
y(1)=y0;
%Bucle planteado con el método de Heun
for i=1:N
k1x=a1*x(i)-b1*x(i)^2-c1*x(i)*y(i);
k1y=a2*y(i)-b2*y(i)^2-c2*x(i)*y(i);
k2x=a1*(x(i)+k1x*h)-b1*(x(i)+k1x*h)^2-c1*(x(i)+k1x*h)*y(i);
k2y=a2*(y(i)+k1y*h)-b2*(y(i)+k1y*h)^2-c2*x(i)*(y(i)+k1y*h);
x(i+1)=x(i)+h/2*(k1x+k2x);
y(i+1)=y(i)+h/2*(k1y+k2y);
end
%Para conocer los valores máximos y mínimos de las funciones
[Mx, pMx]=max(x); [My, pMy]=max(y);
[mx, pmx]=min(x); [mx, pmy]=min(y);
%Representación de las gráficas de ambas poblaciones
hold on
plot(t,x)
plot(t, y,'r')
legend('Animal 1', 'Animal 2', 'Location', 'best')
xlabel('Tiempo');
ylabel('Población');
title('Heun')
hold off
4.1 Situaciones posibles
En función de los valores de \(c_1\) y \(c_2\), se pueden presentar diferentes situaciones dentro del mencionado modelo de competencia.
4.1.1 Parasitismo
En este caso, los datos son los siguientes \(a_1=−0.3\), \(a_2=1.15\), \(b_1=0\), \(b_2=0\), \(c_1=−0.08\), \(c_2=0.09\), \(x(0)=2\), \(y(0)=7\) y \(t∈[0,15]\). Es decir, \(c_1\) es negativo (aumentando la población del animal 1) y \(c_2\) es positivo (lo cual disminuye la población del animal 2).
Se puede ver que los coeficientes no se corresponden con la realidad puesto que el animal 1 renace, pero se trataría de parasitismo. El mayor inconveniente del método de Euler es que es menos aproximado que cualquiera de los otros métodos. Existe un máximo de \(y=50.773\) del animal 1 en \(t=3.1\) y un máximo de \(y=28.612\) del animal 2 en \(t=2\). El crecimiento del animal 1 se ve afectado positivamente por el crecimiento del animal 2, a la vez que el crecimiento del animal 2 se ve afectado negativamente por el crecimiento del animal 1. Se trata de un ecosistema no estable ya que el animal 2 desaparece y se puede apreciar que el animal 1 tiende a hacer lo mismo.
4.1.2 Neutralismo
En este caso, los datos son los siguientes \(a_1=0.16\), \(a_2=0.25\), \(b_1=0.04\), \(b_2=0.1\), \(c_1=0\), \(c_2=0\), \(x(0)=2\), \(y(0)=7\) y \(t∈[0,40]\). Es decir, \(c_1\) es 0 (la población del animal 1 ni aumenta ni disminuye) y \(c_2\) también (ídem).
Puesto que \(c_1\) y \(c_2\) son \(0\), no existen interacciones entre ambas poblaciones. Se trata, pues de neutralismo, porque se elimina el término que relaciona las dos especies, el que provoca que ambas interactúen (quedando ecuaciones diferenciales de primer grado independientes). No existen máximos y mínimos, salvo en los extremos del intervalo de estudio (teorema de Weierstraß). No tiende a desaparecer ninguna especie, mientras que sí que tienden a ser estables, por tanto se puede afirmar que el crecimiento de cada una de ellas no afecta a la otra. El ecosistema es estable ya que las dos especies tienden a un número determinado.
4.1.3 Simbiosis o cooperación
En este caso, los datos son los siguientes \(a_1=0.16\), \(a_2=0.25\), \(b_1=0.04\), \(b_2=0.1\), \(c_1=−0.015\), \(c_2=-0.02\), \(x(0)=2\), \(y(0)=7\) y \(t∈[0,20]\). Es decir, \(c_1\) es negativo (aumentando la población del animal 1) y \(c_2\) también (es decir, también aumenta la población del animal 2).
Se puede afirmar que se trata de una simbiosis ya que ambas especies empiezan a crecer al final del dominio de tiempo dado. Hay un mínimo de \(y=3.366\) del animal 2 en \(t=9\). Además, no tiende a desaparecer ninguna especie. Se afectan positivamente porque los coeficientes son negativos. Además, en la gráfica se ve que las dos especies crecen al final del intervalo, es decir, si se estableciera un intervalo mayor, se vería que las gráficas tienden a un determinado valor. Se confirma que es un ecosistema estable.
4.1.4 Competición
En este caso, los datos son los siguientes \(a_1=1\), \(a_2=1\), \(b_1=0.04\), \(b_2=0.1\), \(c_1=0.015\), \(c_2=0.02\), \(x(0)=2\), \(y(0)=7\) y \(t∈[0,20]\). Es decir, \(c_1\) es positivo (haciendo disminuir la población del animal 1) y \(c_2\) también (dicho de otra manera, también disminuye la población del animal 2).
Es el modelo que corresponde a una competición, pues se ha visto que en una gráfica en la que no hay interacción, ambas poblaciones crecían más que en la gráfica correspondiente a la competición. Gráficamente, tomando solo como referencia la gráfica de competición, tiene aspecto de amensalismo, ya que el animal 1 perjudica el crecimiento del animal 2 sin verse afectado. El animal 2 tiene un máximo de \(t=8.576\) en \(t=1.9\). Las especies se afectan negativamente entre sí, pero tienden a estabilizarse entorno a un número, por lo que se trata de un ecosistema estable.
4.1.5 Amensalismo
En este caso, los datos son los siguientes \(a_1=1\), \(a_2=1\), \(b_1=0.04\), \(b_2=0.1\), \(c_1=0\), \(c_2=0.2\), \(x(0)=2\), \(y(0)=7\) y \(t∈[0,10]\). Es decir, \(c_1\) es \(0\) (la población del animal 1 ni aumenta ni disminuye) y \(c_2\) es positivo (esto es, disminuye la población del animal 2).
Se trata del caso de amensalismo, puesto que el animal 1 crece sin verse afectado por el animal 2, mientras que el animal 2 se ve afectado negativamente (llegando a extinguirse) por el animal 1, que tiende a estabilizarse en \(y=25\). No obstante, se trata de un ecosistema estable (aunque una de las poblaciones converja en \(0\)).
4.1.6 Comensalismo
En este caso, los datos son los siguientes \(a_1=1\), \(a_2=1\), \(b_1=0.04\), \(b_2=0.1\), \(c_1=0\), \(c_2=-0.2\), \(x(0)=2\), \(y(0)=7\) y \(t∈[0,10]\). Es decir, \(c_1\) es \(0\) (la población del animal 1 ni aumenta ni disminuye) y \(c_2\) es negativo (es decir, aumenta la población del animal 2).
Se trata de una situación de comensalismo, debido a que el crecimiento del animal 1 no se ve afectado, mientras que el animal 2 se beneficia a costa de la otra especie, sin perjudicarlo ni beneficiarlo. Ambas especies tienden a estabilizarse, por lo que se trata de un ecosistema estable.
4.2 Comparación de especies
Ahora, se procede a realizar el estudio comparativo del comportamiento de ambas poblaciones según las situaciones anteriormente expuestas. Para ello, se hace uso del siguiente código de MATLAB:
%SISTEMA NO LINEAL POR EL MÉTODO DE HEUN
% x'=a1*x-b1*x^2-c1*x*y
% y'=a2*y-b2*y^2-c2*x*y
clear all; clf
%Introducción de los coeficientes, instante final y pasos de los diferentes casos
a1=input('a1: '); a2=input('a2: ');
b1=input('b1: '); b2=input('b2: ');
c1=input('c1: '); c2=input('c2: ');
h=input('Paso: ');
tN=input('Limite final: ');
%Números de subintervalos
t0=0;
N=round((tN-t0)/h);
t=[t0:h:tN];
x=zeros(1,N+1);
y=zeros(1,N+1);
%Valores iniciales
x0=2; y0=7;
x(1)=x0;
y(1)=y0;
%Bucle planteado con el método de Heun
for i=1:N
k1x=a1*x(i)-b1*x(i)^2-c1*x(i)*y(i);
k1y=a2*y(i)-b2*y(i)^2-c2*x(i)*y(i);
k2x=a1*(x(i)+k1x*h)-b1*(x(i)+k1x*h)^2-c1*(x(i)+k1x*h)*y(i);
k2y=a2*(y(i)+k1y*h)-b2*(y(i)+k1y*h)^2-c2*x(i)*(y(i)+k1y*h);
x(i+1)=x(i)+h/2*(k1x+k2x);
y(i+1)=y(i)+h/2*(k1y+k2y);
end
%Para conocer los valores máximos y mísimos de las funciones
[Mx, pMx]=max(x); [My, pMy]=max(y);
[mx, pmx]=min(x); [mx, pmy]=min(y);
%Representación de las gráficas de ambas poblaciones
subplot(1,2,1)
hold on
plot(t,x)
plot(t, y,'r')
xlabel('Tiempo');
ylabel('Animales');
legend('Animal 1', 'Animal 2', 'Location', 'best')
title('Heun')
subplot(1,2,2)
plot(x,y,'k')
xlabel('Animal 1');
ylabel('Animal 2');
title('Comparación de especies')
hold off
4.2.1 Parasitismo
En el momento en que el animal 2 aumenta su población, el animal 1 comienza a aumentar su población a costa de aquél, por lo que se trata de un parasitismo. Cuando el animal 2 está casi extinto, el animal 1 empieza también a desaparecer.
4.2.2 Neutralismo
Aunque pueda parecer un amensalismo (una especie aumenta mientras que la otra desciende), se trata de un neutralismo ya que ninguna de las dos especies tiende a desaparecer.
4.2.3 Simbiosis o cooperación
Se trata de una simbiosis, ya que en la parte final de la gráfica ambas especies tienden a crecer.
4.2.4 Competición
A primera vista, podría confundirse con una situación de parasitismo. No obstante, si fuera así, al verse reducido el número de individuos de la especie animal 2, el animal 1 (supuesto parásito) tendería a disminuir también su población al quedarse sin huésped. De ahí, deducimos que no es un caso de parasitismo, porque al verse disminuida la especie 2, la especie 1 no tiende a disminuir su población, sino que ambas se estabilizan. Es decir, se tratar de un caso de competición, porque el crecimiento de ambas especies llega a un máximo, a partir del cual el animal 1 sigue en tendencia positiva de crecimiento, mientras que el animal 2 decrece.
4.2.5 Amensalismo
En este caso, se puede apreciar que se trata de un amensalismo, ya que la especie animal 2 se ve reducida a medida que aumenta el número de individuos de la especie animal 1. A modo de observación, en la gráfica se ve que cuantos más individuos de la especie animal 1 hay, más rápido decrece la población del animal 2 y, además, cuantos menos individuos hay de la especie animal 2, más despacio decrece ésta.
4.2.6 Comensalismo
Se puede ver que una de las especies ve incrementada su población en proporción al número de individuos de la segunda especie, mientras ésta no se ve afectada por la primera.