Diferencia entre revisiones de «Lógistica con umbral (Grupo 18)»

De MateWiki
Saltar a: navegación, buscar
Línea 8: Línea 8:
  
 
Eduardo Rodríguez Ubeda 1620}}
 
Eduardo Rodríguez Ubeda 1620}}
 +
 +
== 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.
 +
 +
== Problema de valor inicial ==
 +
 +
=== Resolución numérica ===
 +
 +
{{matlab|codigo=
 +
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
 +
}}

Revisión del 17:35 3 mar 2015

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

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