Diferencia entre revisiones de «Modelos epidemiológicos (Grupo 3A)»

De MateWiki
Saltar a: navegación, buscar

Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/mat/public_html/w/includes/diff/DairikiDiff.php on line 434
Línea 9: Línea 9:
  
 
===Situación inicial de /I_{0}=20 y  S_{0}=800/)===
 
===Situación inicial de /I_{0}=20 y  S_{0}=800/)===
[[Archivo:TRABAJOEJ4.jpg]]
+
{{matlab|codigo=
 +
 
 +
%Euler
 +
clear all
 +
%Datos
 +
%Introducimos los valores de las constantes
 +
a=0.003;
 +
b=0.3;
 +
c=0.01;
 +
h=input('Introducir valores de h:');
 +
t0=0;
 +
y0=input('Introducir vector [So,Io]:');
 +
tN=40;
 +
% calculamos los subintervalos
 +
t=t0:h:tN;         
 +
N=(tN-t0)/h;
 +
y=zeros(2,length(t));
 +
y(:,1)=y0';
 +
for i= 1:N;
 +
    y(:,i+1)=y(:,i)+h*[-a*y(1,i).*y(2,i);a*y(1,i).*y(2,i)-b*y(2,i)-c*y(2,i)];
 +
end
 +
 
 +
% grafico
 +
plot(t,y)
 +
% vector que contiene la variación de la población de infectados con el tiempo
 +
I=y(2,:);
 +
% Días de máximos infectados.
 +
[fila,col]=find(I==max(max(I)));
 +
% Valor máximo de infectados.
 +
Diademaximo=(col-1)*h
 +
legend('Euler','Location','best'); %Lo ultimo es para que la legenda no interfiera
 +
 
 +
}}
 
Y en este programa, sustituyendo las h para 0.1 0.01 0.001 y 0.0001 obtendremos los siguientes resultados.
 
Y en este programa, sustituyendo las h para 0.1 0.01 0.001 y 0.0001 obtendremos los siguientes resultados.

Revisión del 18:30 27 abr 2016

Trabajo realizado por estudiantes
Título Modelos Epidemológicos (Grupo 3A)
Asignatura Ecuaciones Diferenciales
Curso Curso 2015-16
Autores Ignacio Mollá Carcaño, Pablo Revuelta Aragón, David González Hernández, Jose María García Rodríguez, Alejandro Martínez Gamonal
Este artículo ha sido escrito por estudiantes como parte de su evaluación en la asignatura

1 Introducción y planteamiento del problema

2 Resolución del problema con una sola ecuación diferencial

3 Resolución del problema completo

Vamos a resolver el problema completo para ver como evolucionarían las poblaciones en un periodo de 40 días. Primero supongamos una población infectada inicial de 20 individuos y una población en riesgo de contagio de 800. Después supondremos el caso de 40 individuos enfermos y 10000 en riesgo de contagio. Para resolverlo usaremos el método de Euler con distintas discretizaciones y así ver la influencia de estas.

3.1 Situación inicial de /I_{0}=20 y S_{0}=800/)

%Euler
clear all
%Datos
%Introducimos los valores de las constantes
a=0.003;
b=0.3;
c=0.01;
h=input('Introducir valores de h:'); 
t0=0;
y0=input('Introducir vector [So,Io]:');
tN=40;
% calculamos los subintervalos
t=t0:h:tN;          
N=(tN-t0)/h;
y=zeros(2,length(t));
y(:,1)=y0';
for i= 1:N;
    y(:,i+1)=y(:,i)+h*[-a*y(1,i).*y(2,i);a*y(1,i).*y(2,i)-b*y(2,i)-c*y(2,i)];
end

% grafico
plot(t,y)
% vector que contiene la variación de la población de infectados con el tiempo
I=y(2,:);
% Días de máximos infectados.
[fila,col]=find(I==max(max(I)));
% Valor máximo de infectados.
Diademaximo=(col-1)*h
legend('Euler','Location','best'); %Lo ultimo es para que la legenda no interfiera

Y en este programa, sustituyendo las h para 0.1 0.01 0.001 y 0.0001 obtendremos los siguientes resultados.