ODE45 SIR model problem
5 ビュー (過去 30 日間)
古いコメントを表示
Brilliant Purnawan
2020 年 11 月 19 日
コメント済み: Brilliant Purnawan
2020 年 11 月 19 日
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
0 件のコメント
採用された回答
Bjorn Gustavsson
2020 年 11 月 19 日
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
その他の回答 (0 件)
参考
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!