T4. Modelos Epidemiológicos

De MateWiki
Saltar a: navegación, buscar
Trabajo realizado por estudiantes
Título Modelos Epidemiológicos, desarrollo de una epidemia. Grupo 28
Asignatura Ecuaciones Diferenciales
Curso Curso 2014-15
Autores Luis Doreste Henríquez 127
Luis López Díaz
Enrique Martínez Mur 271
Este artículo ha sido escrito por estudiantes como parte de su evaluación en la asignatura


1 Interpretación de los diferentes parámetros

En el desarrollo de la epidemia encontramos dos tipos distintos de población que influyen a la evolución de la misma y que se rigen por las siguientes ecuaciones

[math]\frac{\mathrm{d} S}{\mathrm{d} T}=-aSI [/math]
[math]\frac{\mathrm{d} I}{\mathrm{d} T}=aSI-bI-cI [/math]

Identificando primero las variables y luego los parámetros diferenciamos:

  • T: tiempo
  • S: población que puede ser infectada por la enfermedad. Parámetro en función del tiempo.
  • I: población infectada por la enfermedad. Parámetro en función del tiempo.
  • a: interacción entre el número de individuos infectados y no infectados.
  • b: fallecimientos a causa de la enfermedad.
  • c: población que consigue recuperarse de la enfermedad.

Además, en el desarrollo de la epidemia consideraremos que la tasa de cambio depende tanto de los fallecimientos como de la población curada y que la tasa de población susceptible a ser infectada es proporcional a la interacción entre ambas poblaciones.

Si queremos entender las ecuaciones por las que se rige nuestra epidemia:

[math]\frac{\mathrm{d} S}{\mathrm{d} T}=-aSI [/math]

Representa la exposición a la que se encuentra la población frente a la epidemia, es decir, la variación de la población susceptible a ser infectada, [math]S[/math], a causa de la interacción directa de ésta con la población ya infectada, [math]I[/math], en función del paramtro [math]a[/math] antes descrito. Así observamos que es una función no lineal (producto de las variables [math]S[/math] y [math]I[/math]) y decreciente en el tiempo.

[math]\frac{\mathrm{d} I}{\mathrm{d} T}=aSI-bI-cI [/math]

En este caso se representa la variación de la población infectada con un primer término similar a la primera ecuación pero de signo contrario lo que significa que este término hace crecer el número de infectados por la epidemia y otro posterior ya únicamente dependiente de la población infectada, [math]I[/math], que esta acompañado por [math]-(b+c)[/math] que representas las muertes y curas a causa de la enfermedad.


2 Método de Euler y Trapecio

Consideramos que los parámetros del problema en el desarrollo de los metodos de Euler y del Trapecio son [math]I0 = 2000[/math], [math]b = 0.3[/math] y [math]c = 0.01[/math] y lo resolveremos en ambos casos para una discretización [math]h = 0.1[/math]

2.1 S=0

2.2 S=100

En este segundo caso necesitamos también el valor del parametro [math]a=0.003[/math].

%Apartado 3
clear all
t0=0; tN=40; %Intervalo de tiempo tomado
S0=100; 
I0=2000;
%Valores iniciales de infectados(I) y susceptibles de ser infectados(S) 
h=0.1; 
t=t0:h:tN; %Desarrollo del tiempo desde t0 hasta tN tomando intervalos del valor paso h introducido antes
a=0.003; %valores de los parametros
b=0.3;
c=0.01;
N=(tN-t0)/h;
S(1)=S0; %Asignacion del valor incial para la primera componente
I(1)=I0;
%Resolucion del sistema de forma matricial
for n=1:N
    A=[S0;I(n)]+h*[-a*S0*I(n);a*S0*I(n)-(b+c)*I(n)];
    S(n+1)=S0;%Asignacion de los distintos valores de S como la primera compnente de la matriz A
    I(n+1)=A(2); %Asignacion de los distintos valores de I como la primera componente de la matriz A
end 
%Interpretación gráfica 
hold on
figure(1) 
plot(t,S,'r')
plot(t,I,'b')
hold off


3 Euler Completo

En el modelo de Euler completo consideramos ahora los datos iniciales [math]S0=800[/math], [math]I0=20[/math] y [math]S0=10000[/math] y [math]I0=40[/math] para tiempos menores de [math]40[/math] días y discretización temporal [math]h=0.1, h=0.01,h=0.001,h=0.0001[/math].

%Apartado 4
clear all
t0=0; tN=40; %Intervalo de tiempo tomado
S0=input('Introduce valor de población susceptible: '); 
I0=input('Introduzca el número de infectados: ');
%Valores iniciales de infectados(I) y susceptibles de ser infectados(S) 
h=input('Introduzca el valor del paso: '); 
t=t0:h:tN; %Desarrollo del tiempo desde t0 hasta tN tomando intervalos del valor paso h introducido antes
a=0.003; %valores de los parametros
b=0.3;
c=0.01;
N=(tN-t0)/h;
S(1)=S0; %Asignacion del valor incial para la primera componente
I(1)=I0;
%Resolucion del sistema de forma matricial
for n=1:N
    A=[S(n);I(n)]+h*[-a*S(n)*I(n);a*S(n)*I(n)-(b+c)*I(n)];
    S(n+1)=A(1);%Asignacion de los distintos valores de S como la primera compnente de la matriz A
    I(n+1)=A(2); %Asignacion de los distintos valores de I como la primera componente de la matriz A
end 
%Interpretación gráfica 
hold on
figure(1) 
plot(t,S,'r')
plot(t,I,'b')
hold off
maxi=max(I);
pos=find(I==maxi);
tiempo=t(pos);
t1=sprintf('El número máximo de infectados será %d',maxi);
t2=sprintf(' y se dará transcurridos %d días',tiempo);
t3=[t1 t2];
disp(t3)


4 Runge-Kutta 4º Orden

%Apartado5
clear all
t0=0; tN=30; %Intervalo de tiempo tomado, tomamos otro tiempo diferente
y1=input('Introduce población susceptible de ser contagiada: ');
y2=input('Introduce población infectada inicialmente: ');
y0=[y1;y2]; %Valores de población iniciales (Susceptibles e Infectados)
h=input('Introduce valor del salto de paso: ');
N=(tN-t0)/h;
y=y0;
S(1)=y(1); %Asignación del valor incial para la primera componente de S
I(1)=y(2); %Asignación del valor incial para la primera componente de I
a=0.003; b=0.3; c=0.01; % Valores de los parámetros
%Resolución empleando el método Runge Kutta
for n=1:N  
    k1=[-a*y(1)*y(2);a*y(1)*y(2)-(b+c)*y(2)];
    k2=[-a*(y(1)+1/2*h*k1(1))*(y(2)+1/2*h*k1(2));a*(y(1)+1/2*h*k1(1))*(y(2)+1/2*h*k1(2)-(b+c)*(y(2)+1/2*h*k1(2)))];
    k3=[-a*(y(1)+1/2*h*k2(1))*(y(2)+1/2*h*k2(2));a*(y(1)+1/2*h*k2(1))*(y(2)+1/2*h*k2(2)-(b+c)*(y(2)+1/2*h*k2(2)))];
    k4=[-a*(y(1)+h*k3(1))*(y(2)+h*k3(2));a*(y(1)+h*k3(1))*(y(2)+h*k3(2)-(b+c)*(y(2)+h*k3(2)))];
    y=y+h/6*(k1+2*k2+2*k3+k4);
    S(n+1)=y(1);
    I(n+1)=y(2);
end
t=t0:h:tN;
hold on
figure(1)
plot(t,S,'b')
plot(t,I,'r')
hold off
for n=1:N
    A=[S(n);I(n)]+h*[-a*S(n)*I(n);a*S(n)*I(n)-(b+c)*I(n)];
    S(n+1)=A(1);%Asignacion de los distintos valores de S como la primera compnente de la matriz A
    I(n+1)=A(2); %Asignacion de los distintos valores de I como la primera componente de la matriz A
end
%Interpretación gráfica
figure(2)
hold on
plot(t,S,'b')
plot(t,I,'r')
hold off

4.1 Comparativa con Euler

4.2 Dificultad Método del Trapecio