Borrar filtros
Borrar filtros

ODE45 SIR model problem

5 visualizaciones (últimos 30 días)
Brilliant Purnawan
Brilliant Purnawan el 19 de Nov. de 2020
Comentada: Brilliant Purnawan el 19 de Nov. de 2020
Hi, I'm quite new to MATLAB and recently tried to plot a SIR model using its first order equations, but everytime I tried to use the ODE45 it the equation doesn't seem to change it just gives me a constant plot of the initial value. Can anyone spot a problem? Code is below:
clear all, close all, clc
A = 0.1;
B = 0.3;
tspan = [0:0.01:300];
y0 = [300 0 0];
[t,y] = ode45(@(t,y)odefcn(y,A,B),tspan,y0);
plot(t,y)
function dydt = odefcn(y,A,B)
dydt = zeros(3,1);
dydt(1) = -A*y(2)*y(1);
dydt(2) = A*y(2)*y(1)-B*y(2);
dydt(3) = B*y(2);
end

Respuesta aceptada

Bjorn Gustavsson
Bjorn Gustavsson el 19 de Nov. de 2020
In your initial conditions you have everyone perfectly "healthy" - therefore no one will ever get infected. You have to set at leas some small fraction of your population to infected. That is something like this:
y0 = [299 1 0];
That should kick things off...
HTH

Más respuestas (0)

Categorías

Más información sobre Programming en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by