The mathematics behind modelling
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Muse Riveria
le 29 Déc 2015
Réponse apportée : MOUSSA DOUMBIA
le 6 Juin 2016
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 commentaires
John D'Errico
le 29 Déc 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
le 29 Déc 2015
There was a Mathworks server problem this morning that prevented people from telling that their question had been posted.
Réponse acceptée
Josh Meyer
le 31 Déc 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 commentaires
Walter Roberson
le 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.
Plus de réponses (2)
Torsten
le 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 commentaires
Star Strider
le 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
le 6 Juin 2016
Can anybody provide me a sample of an optimal control problem with 3 different control functions?
0 commentaires
Voir également
Catégories
En savoir plus sur Ordinary Differential Equations dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!