Diferencia entre revisiones de «Modelos epidemiológicos (Grupo 3A)»
De MateWiki
| 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/)=== | ||
| − | [[ | + | {{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 | |
Contenido
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 interfieraY en este programa, sustituyendo las h para 0.1 0.01 0.001 y 0.0001 obtendremos los siguientes resultados.