|
|
| (No se muestran 6 ediciones intermedias del mismo usuario) |
| Línea 1: |
Línea 1: |
| − | {{ TrabajoED | Modelos epidemiológicos. Grupo A11 | [[:Categoría:Ecuaciones Diferenciales|Ecuaciones Diferenciales]]|[[:Categoría:ED14/15|Curso 2014-15]] | Nuestros nombres }}
| + | NOMBRE DEL ARTICULO ERRONEO. |
| | | | |
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
| − | =PÁGINA EN CONSTRUCCIÓN=
| + | IR A https://mat.caminos.upm.es/wiki/Modelos_epidemiol%C3%B3gicos_(Grupo_11A) |
| − | | + | |
| − | = Exposición del problema =
| + | |
| − | | + | |
| − | 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ón de 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</math>
| + | |
| − |
| + | |
| − | <math>dI/dt=aSI-bI-cI </math>
| + | |
| − | | + | |
| − | Donde: a, b y c son parámetros.
| + | |
| − | | + | |
| − | = Estudio de poblaciones mediante el método de Runge-Kutta =
| + | |
| − | | + | |
| − | 1.Realizaremos varias simulaciones con diferentes valores de las poblaciones iniciales de infectados y susceptibles, el tiempo del estudio y el numero de intervalos.
| + | |
| − | 2. Tomamos los mismos valores de los parámetros que en el apartado anterior: a = 0.003, b = 0.3 y c = 0.01
| + | |
| − | | + | |
| − | 3. Los datos de poblaciones iniciales los nombraremos como '''S0''' para los individuos susceptibles e '''I0''' para los infectados. El tiempo de estudio lo indica la variable '''tN''' y el paso la variable '''h'''.
| + | |
| − | | + | |
| − | | + | |
| − | 4.Aplicamos el método Runge-Kutta y lo programamos en Octave UPM. Escribimos el código una sola vez. Para sacar todas las gráficas de los diferentes modelos solo hay que cambiar los valores de las poblaciones iniciales, tiempo y paso.
| + | |
| − | | + | |
| − | | + | |
| − | {{matlab|codigo=
| + | |
| − | clear all
| + | |
| − | | + | |
| − | %Valores del tiempo
| + | |
| − | t0 = 0;
| + | |
| − | tN = 40;
| + | |
| − | h = 0.1;
| + | |
| − | N = round((tN-t0)/h);
| + | |
| − | t = t0:h:tN;
| + | |
| − | | + | |
| − | %Vectores que contendrán la solución
| + | |
| − | S = zeros(1,N+1);
| + | |
| − | I = zeros(1,N+1);
| + | |
| − | | + | |
| − | %Valores iniciales
| + | |
| − | S(1) = 800;
| + | |
| − | I(1) = 20;
| + | |
| − | | + | |
| − | %Valores de los parámetros
| + | |
| − | a = 0.003;
| + | |
| − | b = 0.3;
| + | |
| − | c = 0.01;
| + | |
| − | | + | |
| − | %Bucle para sacar la componente i+1 de cada vector desde la primera hasta la N
| + | |
| − | for i = 1:N
| + | |
| − | | + | |
| − | K1 = -a*S(i)*I(i);
| + | |
| − | K2 = -a*S(i)*I(i) + 1/2*K1*h;
| + | |
| − | K3 = -a*S(i)*I(i) + 1/2*K2*h;
| + | |
| − | K4 = -a*S(i)*I(i) + K3*h;
| + | |
| − | S(i+1) = S(i) + h/6*(K1+2*K2+2*K3+K4);
| + | |
| − | | + | |
| − | L1 = (a*S(i)*I(i)) -I(i)*(b+c);
| + | |
| − | L2 = (a*S(i)*I(i)) -I(i)*(b+c) + 1/2*L1*h;
| + | |
| − | L3 = (a*S(i)*I(i)) -I(i)*(b+c) + 1/2*L2*h;
| + | |
| − | L4 = (a*S(i)*I(i)) -I(i)*(b+c) + L3*h;
| + | |
| − | I(i+1) = I(i) + h/6*(L1+2*L2+2*L3+L4);
| + | |
| − | | + | |
| − | end
| + | |
| − | | + | |
| − | %Gráficas
| + | |
| − | hold on
| + | |
| − | plot (t,S,'-')
| + | |
| − | plot (t,I,'-r')
| + | |
| − | hold off
| + | |
| − | }}
| + | |
| − | --------------
| + | |
| − | ------grafica del codigo de arriba-------
| + | |
| − | ----------
| + | |
| − | ------grafica con poblaciones 10000,40--------
| + | |
| − | --------------
| + | |
| − | En esta gráfica se observa que al aumentar mucho los valores de la población el método no funciona. Es obvio, por ejemplo, que no puede haber poblaciones negativas ni existir las variaciones que se muestran en la gráfica. Esto es debido a que el paso es demasiado grande y en el bucle al haber números grandes también en la operaciones dan un error que provoca resultados incorrectos. Para solucionar esto simplemente disminuimos el paso a ''h=0.01'' para analizar una mayor cantidad de intervalos y la nueva gráfica sale con la forma correcta. Añadimos también las gráficas con pasos ''h=0.001'' y ''h=0.0001'' en --colores-- y vemos que no hay mucha variación entre ellas.
| + | |
| − | ---------------
| + | |
| − | -------gráfica arreglada + otros h-------
| + | |
| − | ----------------
| + | |
| − | Hacemos un tercer análisis variando de nuevo las poblaciones y el tiempo de estudio. En los casos anteriores toda la población susceptible acababa infectada y posteriormente la población infectada también llegaba a 0. En este caso vemos que el parámetro ''a'' que es el de contagio, junto con los datos de las poblaciones iniciales no consiguen que toda la población susceptible sea infectada antes de que la población infectada desaparezca; por lo que cuando esta desaparece la población de susceptibles se mantiene constante.
| + | |
| − | --------------------
| + | |
| − | -------grafica con gente salvada----------
| + | |
| − | ---------------------
| + | |
| − | | + | |
| − | <gallery>
| + | |
| − | Archivo:Euler(700,1).jpeg|(s0,i0)=(700,1)
| + | |
| − | Archivo:Euler(5000,5).JPG|(s0,i0)=(5000,5)
| + | |
| − | </gallery>
| + | |
| − | | + | |
| − | | + | |
| − | Utilizamos los métodos de Euler y Runge-Kutta porque son métodos explícitos, es decir, que para calcular el valor del termino '''i+i''' solo se necesitan los valores de los términos '''i''' anteriores. por el contrario, en los métodos implícitos para calcular el valor '''i+1''' se necesitan los propios valores '''i+1''' lo que conlleva a despejar manualmente los parámetros que se buscan, lo que en muchos casos es complicado o incluso imposible.
| + | |
| − | | + | |
| − | =Análisis con parámetros variables=
| + | |
| − | | + | |
| − | En este apartado utilizaremos el método de Heun para solucionar el mismo problema, pero le añadiremos unas pequeñas variaciones.
| + | |
| − | | + | |
| − | 1. Cambiamos los valores de las poblaciones iniciales haciendo que en inicio los susceptibles sean 1600 y los infectados 40.
| + | |
| − | | + | |
| − | 2. El parámetro de contagio 'a' será variable con el tiempo con valor:
| + | |
| − | <math>a=0.003/1+t</math>
| + | |
| − | Esto significa que para el momento inicial tendrá un valor de 0.003; pero al ser el denominador negativo según avance el tiempo se ira haciendo cada vez mas pequeño; es decir, que cuanto mas avance el tiempo se tendrán menos posibilidades de ser infectado en el contacto de las dos poblaciones. Matemáticamente esto significa que el primer sumando de ambas ecuaciones, que es en el que interviene '''a''', se hará cada vez menor, por lo que '''S''' decrecerá mas lentamente (al tener signo negativo) e '''I''' crecerá mas lentamente (al tener signo positivo).
| + | |
| − | | + | |
| − | El código utilizado y los resultados obtenidos son los siguientes.
| + | |
| − | | + | |
| − | {{matlab|codigo=
| + | |
| − | clear all
| + | |
| − | | + | |
| − | %Valores del tiempo | + | |
| − | t0 = 0;
| + | |
| − | tN = 40;
| + | |
| − | h = 0.1;
| + | |
| − | N = round((tN-t0)/h);
| + | |
| − | t = t0:h:tN;
| + | |
| − | | + | |
| − | %Vectores que contendrán la solución | + | |
| − | S = zeros(1,N+1);
| + | |
| − | I = zeros(1,N+1);
| + | |
| − | a = zeros(1,N+1);
| + | |
| − | %Valores iniciales
| + | |
| − | S(1) = 1600;
| + | |
| − | I(1) = 40;
| + | |
| − | | + | |
| − | %Valores de los parámetros
| + | |
| − | a(1) = 0.003/(1+t0);
| + | |
| − | b = 0.3;
| + | |
| − | c = 0.01;
| + | |
| − | | + | |
| − | %Bucle para sacar la componente i+1 de cada vector desde la primera hasta la N
| + | |
| − | for i = 1:N
| + | |
| − |
| + | |
| − | a(i+1) = 0.003/(1+t(i));
| + | |
| − |
| + | |
| − | K1 = -a(i)*S(i)*I(i);
| + | |
| − | K2 = -a(i)*S(i)*I(i) + K1*h;
| + | |
| − | S(i+1) = S(i) + h/2*(K1+K2);
| + | |
| − |
| + | |
| − | L1 = (a(i)*S(i)*I(i)) -I(i)*(b+c);
| + | |
| − | L2 = (a(i)*S(i)*I(i)) -I(i)*(b+c) + L1*h;
| + | |
| − | I(i+1) = I(i) + h/2*(L1+L2);
| + | |
| − |
| + | |
| − | end
| + | |
| − | | + | |
| − | %Gráficas
| + | |
| − | hold on
| + | |
| − | plot (t,S,'-')
| + | |
| − | plot (t,I,'-r')
| + | |
| − | hold off
| + | |
| − | }}
| + | |
| − | | + | |
| − | -----------------------
| + | |
| − | -----grafica------
| + | |
| − | -----------------------
| + | |
| − | | + | |
| − | Como vemos, al disminuir el ratio de contagio conseguimos que parte de la población sana no se infecte; y cuando esta desaparece por culpa de los terminos '-bI' y '-cI', l apoblacion sana se mantiene constante.
| + | |
| − | Si al contrario de esto el parametro 'a' tuviera un denominador menor que 1, cada vez el riesgo de contagio seria mayor y la disminucion de poblacion sana y aumento de los infectados sería mucho mas rápido.
| + | |
| − | | + | |
| − | [[Categoría:Ecuaciones Diferenciales]]
| + | |
| − | [[Categoría:ED14/15]]
| + | |
| − | [[Categoría:Trabajos 2014-15]]
| + | |
NOMBRE DEL ARTICULO ERRONEO.