The mathematics behind modelling
3 views (last 30 days)
Show older comments
This is my first time using MATLAB and despite reading up on tutorials I am still confused in regards to how to utilise MATLAB. I am trying to simulate a SEIR model, which consists of a system of differential equations, for the spread of dengue fever in MATLAB with the following equations and parameters:
Thank you!!!
2 Comments
John D'Errico
on 29 Dec 2015
Please stop posting the identical question every hour just because you are in a hurry. I've now deleted most of your replicate questions.
Walter Roberson
on 29 Dec 2015
There was a Mathworks server problem this morning that prevented people from telling that their question had been posted.
Accepted Answer
Josh Meyer
on 31 Dec 2015
You have a system of 7 coupled ODEs. You will need to code the equations into a function, define the initial conditions and interval for integration, then use an ODE solver such as ODE45 to solve the equations numerically. I got you started on your function, but you'll need to fill in the gaps and double check it:
function dSdt = denguefeverODE(t,S)
% Define parameters
Nh =
Nm =
uh =
um =
Pmh =
Phm =
beta =
nu_h =
epsilon_m =
tau_h =
f =
% Define the equations. Each element in the output contains the answer for
% one equation, so there are 7 components. For ex. S(1) is Sh while dSdt(1)
% is dSh/dt, and S(7) is Im while dSdt(7) is dIm/dt.
dSdt = zeros(7,1);
dSdt(1) = uh*Nh - (beta*Pmh*(S(7)/Nh)+uh)*S(1);
dSdt(2) = beta*Pmh*(S(7)/Nh)*S(1) - (tau_h+uh)*S(2);
.
.
.
dSdt(7) = epsilon_m*S(6) - um*S(7);
Once you are ready to solve, the solver syntax is
tspan = [t0 tf]; % Change to initial and final times
y0 = [a b c d e f g]; % Need 7 initial conditions, 1 for each variable
[t,y] = ode45(@denguefeverODE, tspan, y0)
Then you can see all of the solution components with
plot(t,y)
6 Comments
Walter Roberson
on 7 Jan 2016
We need your updated code including the code for denguefeverODE, and you should also post the complete error message including the traceback showing where the error is occurring.
More Answers (2)
Torsten
on 7 Jan 2016
function main
to = 0;
tf = 100;
tspan = [to tf];
y0 = [5535002 50 50 0 0 0 0 ];
[t,S] = ode45(@denguefeverODE, tspan, y0);
plot(t,S)
title('Human Population Without Control')
xlabel('Time')
ylabel('Susceptible, Exposed, Infected, Recovered')
legend('Susceptible', 'Exposed', 'Infected', 'Recovered')
function dSdt = denguefeverODE(t,S)
Nh = 5535002;
Nm = 33210012;
uh = 0.0045;
um = 0.02941;
Pmh = 0.375;
Phm = 0.750;
beta = 1;
nu_h = 0.1666;
epsilon_m = 0.1;
tau_h = 0.1176;
f = 6;
dSdt = zeros(7,1);
dSdt(1) = uh*Nh - (beta*Pmh*(S(7)/Nh)+uh)*S(1);
dSdt(2) = beta*Pmh*(S(7)/Nh)*S(1) - (tau_h+uh)*S(2);
dSdt(3) = tau_h*S(2)-(nu_h+uh)*S(3);
dSdt(4) = nu_h*S(3)-uh*S(4);
dSdt(5) = um*Nm - (beta*Phm*(S(3)/Nh)+um)*S(5);
dSdt(6) = beta*Phm*(S(3)/Nh)*S(5);
dSdt(7) = epsilon_m*S(6) - um*S(7);
Best wishes
Torsten.
7 Comments
Star Strider
on 10 Jan 2016
I doubt the DEs would change, since the epidemiology would be essentially the same, but the parameters likely would. (Islands in the Caribbean might be similar enough to not require any significant changes.) If you’re using them for a more northerly latitude in response to global warming, there are several changes you would have to consider. The human epidemiology would be the same, but you might have to consult with an entomologist with a particular interest in Aedes aegypti to determine what would have to change about the vectors.
MOUSSA DOUMBIA
on 6 Jun 2016
Can anybody provide me a sample of an optimal control problem with 3 different control functions?
0 Comments
See Also
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!