Modelo para epidemias (Grupo 9C, Trabajo 7)

De MateWiki
Saltar a: navegación, buscar

1 ª Parte

1.1 Número de contactos 'aproximados'

Para calcular los contactos 'aproximados', hemos empleado el método de Euler. Sabiendo que C tiene valores entre 0.01 y 0.99, hemos creado un bucle que ha pasado por cada uno de esos valores, guardando en un vector la condición de |I(primera semana) - 500| y dibujándolo en comparación con todas las C posibles para ver gráficamente, además de numéricamente, la variación de la condición.

El código empleado para estos cálculos es el siguiente:

clear all
clc
clf
% Apartado 1
y0=200;
h=0.01;
n=99;                    % Número de puntos
c=0.01:0.01:0.99;        % Vector de posibles C
Y=zeros(n,n);            % Matriz donde guardamos, por filas, las soluciones de los infectados según C
y(:,1)=y0;
% Método de Euler-------------------------------------------------------------------------------------
for k=1:n
  for i=1:n-1
    y(i+1)=y(i)+h*(c(k)/500000*(500000-y(i))*y(i));
    Y(k,i)=y(i);
    Y(k,n)=y(i+1);
  end
end
I=abs(Y(:,n).-500);      % Condición de abs(I(primera semana)-500)
minimo=min(I);           % Mínimo de la condición
[u,v]=find(I==minimo);   % Posición del mínimo
C=u/100                  % C obtenida
plot(c,I)                % Gráfica comparativa de C con la condición

Y la gráfica obtenida de la comparación de la condición en función de cada valor posible de C es:

Error absoluto en I(1) para cada c