Diferencia entre revisiones de «T4. Modelos Epidemiológicos»
| Línea 2: | Línea 2: | ||
== Interpretación de los diferentes parámetros == | == 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 | + | 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} S}{\mathrm{d} T}=-aSI </math> | ||
| Línea 34: | Línea 34: | ||
En este segundo caso necesitamos también el valor del parametro <math>a=0.003</math>. | En este segundo caso necesitamos también el valor del parametro <math>a=0.003</math>. | ||
| + | {{matlab|codigo= | ||
| + | %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 | ||
| + | }} | ||
| + | == 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>. | ||
| + | {{matlab|codigo= | ||
| + | %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) | ||
| + | }} | ||
| + | == Runge-Kutta 4º Orden == | ||
| + | {{matlab|codigo= | ||
| + | %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 | ||
| + | |||
| + | }} | ||
| + | === Comparativa con Euler === | ||
| + | |||
| + | === Dificultad Método del Trapecio === | ||
Revisión del 20:39 5 mar 2015
| 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 | |
Contenido
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