Diferencia entre revisiones de «Modelos epidemiológicos»
(→4. Estudio de poblaciones concretas por el método Runge-Kutta) |
(→4. Estudio de poblaciones concretas por el método Runge-Kutta) |
||
| Línea 165: | Línea 165: | ||
%%Ejecutamos el bucle | %%Ejecutamos el bucle | ||
for n=1:N | for n=1:N | ||
| − | + | K1=-a*s(n)*i(n); | |
| − | + | K2=-a*(s(n)+(h/2)*K1)*(i(n)+(h/2)*K1); | |
| − | + | K3=-a*(s(n)+(h/2)*K2)*(i(n)+(h/2)*K2); | |
| − | + | K4=-a*(s(n)+h*K3)*(i(n)+h*K3); | |
| − | + | s(n+1)=s(n)+(h/6)*(K1+2*K2+2*K3+K4); | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| + | k1=a*s(n)*i(n)-(b+c)*i(n); | ||
| + | k2=a*(s(n)+(h/2)*k1)*(i(n)+(h/2)*k1)-(b+c)*(i(n)+(h/2)*k1); | ||
| + | k3=a*(s(n)+(h/2)*k2)*(i(n)+(h/2)*k2)-(b+c)*(i(n)+(h/2)*k2); | ||
| + | k4=a*(s(n)+h*k3)*(i(n)+h*k3)-(b+c)*(i(n)+h*k3); | ||
| + | i(n+1)=i(n)+(h/6)*(k1+2*k2+2*k3+k4); | ||
| + | |||
end | end | ||
| − | + | ||
%%Dibujamos las dos gráficas | %%Dibujamos las dos gráficas | ||
x=t0:h:tN; | x=t0:h:tN; | ||
| Línea 185: | Línea 185: | ||
plot(x,i,'-') | plot(x,i,'-') | ||
}} | }} | ||
| + | |||
| + | |||
| + | Este método es más precioso que el Euler pero también más difícil de programar | ||
| + | |||
| + | '''Comparación Runge-Kutta con Euler''' | ||
| + | Nos dan datos muy parecidos, a continuación las gráficas de ambos métodos: | ||
| + | <gallery> | ||
| + | Archivo:Comparacion r-e.JPg | ||
| + | </gallery> | ||
Revisión del 16:52 1 mar 2013
Contenido
1 1. Exposición del sistema:
En el desarrollo de una epidemia se distinguen dos tipos de individuos: los que ya han contraído la enfermedad o infectados I, y los que son susceptibles de contraerla por encontrarse en zona de riesgo S. Supongamos que se dan las siguientes hipótesis:
1. La poblaciónde personas infectadas se altera por el fallecimiento o la cura de las mismas.En ambos casos, la tasa de cambio depende del número de personas infectadas;
2. La tasa de individuos que pasan de ser susceptibles a contraer la enfermedad a estar infectados es proporcional a la interacción entre el número de individuos en ambas clases.
Consideramos las variables: t tiempo, S(t) población de individuos susceptibles a contraer la enfermedad, I(t) población de individuos infectados; y el sistema:
[math] dS/dt=-aSI;
dI/dt=aSI-bI-cI [/math]
Donde: a, b y c son parámetros.
2 2. Definición de las variables:
1. ’’Interpretar los diferentes parámetros en la ecuación de acuerdo a las hipótesis. ’’
| VARIABLE | DEFINICIÓN | RELACIÓN |
|---|---|---|
| a | Número de interacciones entre personas infectadas y a su vez descendera el numero de personas susceptibles a contraer la enfermedad | Indistintamente número de infectados que mueren y/o se curan |
| b y c |
Si aumenta el número de interacciones aumentarán los contagios y por ello la población susceptible a contraer la enfermedad a↑↑ I ↑↑ a↑↑ S↓↓ |
El número de individuos que perecen infectados así como el que supera la enfermedad lógicamente disminuye el número de infectados pero no afecta directamente a los susceptibles b↑↑ I↓↓ S=cte
|
Nota:aunque S no depende directamente de b ni de c si depende indirectamente pues está ligado a I que si que tiene relación con ellos
3 3. Estudio de poblaciones concretas mediante el método de Euler:
2. Tomar a = 0:003, b = 0:3 y c = 0:2. Usar el método de Euler para resolver el sistema con los datos iniciales (S0; I0) = (700; 1) and (S0; I0) = (5000; 5), y el tiempo t:[0; 30] días. Tomar como paso de discretización temporal h = 10^-1; 10^-2; 10^-3; 10^-4.
3. Elegir otros datos iniciales (S0; I0) e interpretar los resultados.
S0=700 I0=1
%%Establecemos valores de los parametros
a=0.003;
b=0.3;
c=0.2;
t0=0;
tN=30;
h=10^-1;
N=(tN-t0)/h;
%%Damos la primera componente a s
s0=700;
s(1)=s0;
%%Damos la primera componente a i
i0=1;
i(1)=i0;
n=1:N
s(n+1)=s(n)-h*a*s(n)*i(n);
i(n+1)=i(n)+h*(a*s(n)*i(n)-(b+c)*i(n));
for
end
hold on
x=t0:h:tN;
plot(x,s,'x b')
Repitiendo el mismo programa con h=10^-2;10^-3;10^-4 así como para los valores (S0; I0) = (5000; 5) nos da los siguientes valores finales y gráficas:
Las gráficas estan ordenadas en función de sus h de mayor a menor
(s0,i0)=(700,1)
Infectados finales (h=10^-1) =Infectados finales (h=10^-2) =Infectadosfinales (h=10^-3)=Infectados finales (h=10^-4)=0
Conclusión: El número de infectados finales tenderá a 0 por lo que la epidemia acabará por extinguirse
Susceptibles finales (h=10^-1)= 9,75
Susceptibles finales (h=10^-2)= 11,02
Susceptibles finales (h=10^-3)= 11,14
Susceptibles finales (h=10^-4)= 11,16
Conclusión: La cantidad de susceptibles tiende a una cantidad ligeramente superior a 11.
(s0,i0)=(5000,5)
Infectados finales (h=10^-1) =Infectados finales (h=10^-2) =Infectados finales (h=10^-3)= Infectados finales (h=10^-4)=0
Conclusión: Igual que en el caso anterior, el número de infectados finales tenderá a 0 por lo que la epidemia acabará por extinguirse
Susceptibles finales (h=10^-1)= 27,16
Susceptibles finales (h=10^-2)= 28,55
Susceptibles finales (h=10^-3)= 28,68
Susceptibles finales (h=10^-4)= 28,7
Conclusión: La cantidad de susceptibles tiende a 29
¿Por qué la S queda por encima de 0 si el número de infectados si que tiende a 0? Conclusión: Esa pequeña variación de S por encima de cero suponemos que es por el riesgo que existe a lo largo del tiempo de contraer la enfermedad por otros medios que por el contagio directo entre personas. Incluso cuando practicamente a desaparecido la epidemia.
4 4. Estudio de poblaciones concretas por el método Runge-Kutta
%%Introducimoslos datos:
a=0.003;
b=0.3;
c=0.2;
t0=0;
tN=30;
s0=700;
i0=1;
h=10^-1;
N=(tN-t0)/h;
%%Iniciamoslos vectores 's' e 'i'
s(1)=s0;
i(1)=i0;
%%Ejecutamos el bucle
for n=1:N
K1=-a*s(n)*i(n);
K2=-a*(s(n)+(h/2)*K1)*(i(n)+(h/2)*K1);
K3=-a*(s(n)+(h/2)*K2)*(i(n)+(h/2)*K2);
K4=-a*(s(n)+h*K3)*(i(n)+h*K3);
s(n+1)=s(n)+(h/6)*(K1+2*K2+2*K3+K4);
k1=a*s(n)*i(n)-(b+c)*i(n);
k2=a*(s(n)+(h/2)*k1)*(i(n)+(h/2)*k1)-(b+c)*(i(n)+(h/2)*k1);
k3=a*(s(n)+(h/2)*k2)*(i(n)+(h/2)*k2)-(b+c)*(i(n)+(h/2)*k2);
k4=a*(s(n)+h*k3)*(i(n)+h*k3)-(b+c)*(i(n)+h*k3);
i(n+1)=i(n)+(h/6)*(k1+2*k2+2*k3+k4);
end
%%Dibujamos las dos gráficas
x=t0:h:tN;
plot(x,s,'- g')
hold on
plot(x,i,'-')
Este método es más precioso que el Euler pero también más difícil de programar
Comparación Runge-Kutta con Euler Nos dan datos muy parecidos, a continuación las gráficas de ambos métodos:
- Comparacion r-e.JPg