The mathematics behind modelling
2 次查看(过去 30 天)
显示 更早的评论
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 个评论
John D'Errico
2015-12-29
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
2015-12-29
There was a Mathworks server problem this morning that prevented people from telling that their question had been posted.
采纳的回答
Josh Meyer
2015-12-31
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 个评论
Walter Roberson
2016-1-7
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.
更多回答(2 个)
Torsten
2016-1-7
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 个评论
Star Strider
2016-1-10
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
2016-6-6
Can anybody provide me a sample of an optimal control problem with 3 different control functions?
0 个评论
另请参阅
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!