Diferencia entre revisiones de «Lógistica con umbral (Grupo 18)»
De MateWiki
| 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