Lógistica con umbral (Grupo 18)

De MateWiki
Revisión del 23:06 3 mar 2015 de Luis Moreno (Discusión | contribuciones) (Resolución numérica)

Saltar a: navegación, buscar


Trabajo realizado por estudiantes
Título Logistica con umbral. Grupo 18-C/D
Asignatura Ecuaciones Diferenciales
Curso Curso 2014-15
Autores Gonzalo Ucar Lopez-Monis 1638

Alvaro Solís Gonzalez 1628

Luis Moreno Fernandez de Soria 1348

Fabio Torres Salas 1635

Eduardo Rodríguez Ubeda 1620

Este artículo ha sido escrito por estudiantes como parte de su evaluación en la asignatura


1 Introducción

En este trabajo se estudiarán dos modelos matemáticos, el primero de ellos sobre dinamica de poblaciones y en el segundo se estudiará un modelo de competencia.

2 Problema de valor inicial

2.1 Resolución numérica

Para la resolución numérica de este problema vamos a implementar con Matlab los métodos de Euler, Heun y Runge-Kutta de grado cuatro, ambos tres con diferente tamaño de paso: 1; 0.1; 0.01 de tal modo que podremos observar tanto las diferencias entre los diferentes métodos como de la precisión conseguida con los diferentes tamaños de paso.

clear all
%DATOS DEL PROBLEMA
%Intervalo de tiempo [0,100].
t0=0;tN=100;    
%Población inicial
y0=input('introduzca poblacion inicial');          
%Se ejecutarán los 3 métodos con tres tamaños de paso: h=1,0.1,0.01 viendo asi como cambia la precisión  

%Tamaño de paso
h=input('Introduce tamaño de paso:');      
%Nodos
N=(tN-t0)/h;        
%Constantes de la ecuación logística. 
%r:constante de crecimiento
%M1:umbral
%M2: población cuando el tiempo tiende a infinito
r=0.04;M1=30;M2=100;
%Discretizacion del tiempo.
t=t0:h:tN;         
%Condición inicial.
E=zeros(1,N+1);E(1)=y0;    %Euler
HE=zeros(1,N+1);HE(1)=y0;  %Heun
R=zeros(1,N+1); R(1)=y0;   %Runge-Kutta
for i=1:N
 %Método Euler:
 E(i+1)=E(i)+h*((-r*R(i))*(1-R(i)/M1)*(1-R(i)/M2));
 
 %Método de Heun:
 Kh1=-r*HE(i)*(1-HE(i)/M1)*(1-HE(i)/M2);
 Kh2=-r*(HE(i)+Kh1*h)*(1-((HE(i)+Kh1*h)/M1))*(1-((HE(i)+Kh1*h)/M2));
 HE(i+1)= HE(i)+h/2*(Kh1+Kh2);
 
 %Método Runge-Kutta: 
 K1=-r*R(i)*(1-R(i)/M1)*(1-R(i)/M2);
 K2=-r*(R(i)+1/2*K1*h)*(1-((R(i)+1/2*K1*h)/M1))*(1-((R(i)+1/2*K1*h)/M2));
 K3=-r*(R(i)+1/2*K2*h)*(1-((R(i)+1/2*K2*h)/M1))*(1-((R(i)+1/2*K2*h)/M2));
 K4=-r*(R(i)+K3*h)*(1-((R(i)+K3*h)/M1))*(1-((R(i)+K3*h)/M2));
 R(i+1)= R(i)+h/6*(K1+2*K2+2*K3+K4);
 
     
end
%Ahora dibujamos las gráficas resultantes:
hold on  %Para mostrar todas las gráfcas a la vez
plot(t,E,'k') 
plot(t,HE,'r')
plot(t,R,'g')

hold off

legend('EULER','HEUN','RUNGE-KUTTA','location','best')

format long

%Máximo error entre métodos (2 a 2)
C1=max(abs(R-E))    %Runge-Kutta y Euler
C2=max(abs(E-HE))   %Euler y Heun
C3=max(abs(HE-R))   %Heun y Runge-Kutta


2.2 Interpretación Numérica

Se aprecia que con tamaño de paso 1 exite una leve diferencia entre los métodos de Runge-kutta y Heun frente al método de Euler, mientras que según vamos disminuyendo el tamaño de paso las diferencias entre los diferentes métodos disminuyen de manera sustancial, aún así los métodos de Runge-Kutta y Heun siguen siendo mas precisos que el de Euler.

2.3 Interepretacion según la dinámica de poblaciones