sirp传染病模型matlab
时间: 2023-10-02 20:06:45 浏览: 86
SIR模型是一种常见的传染病模型,用于描述人口中某种传染病的传播过程。SIR模型将人口分为三类:易感者(S),感染者(I)和康复者(R)。在模型中,假设人口总数为N,传染病的传播只发生在易感者和感染者之间。传染病的传播可以用以下三个方程来描述:
dS/dt = -βSI
dI/dt = βSI - γI
dR/dt = γI
其中,β是感染率,γ是康复率。
以下是一个简单的MATLAB代码实现SIR模型:
```matlab
%定义参数
beta = 0.3;
gamma = 0.05;
N = 1000;
I0 = 1;
S0 = N - I0;
R0 = 0;
tspan = [0 200];
%定义初始条件
y0 = [S0; I0; R0];
%解SIR模型
[t,y] = ode45(@(t,y) sir(t,y,beta,gamma,N), tspan, y0);
%绘图
plot(t,y(:,1),'b',t,y(:,2),'r',t,y(:,3),'g','LineWidth',2);
legend('易感者','感染者','康复者');
xlabel('时间');
ylabel('人数');
%定义SIR模型方程
function dydt = sir(t,y,beta,gamma,N)
S = y(1);
I = y(2);
R = y(3);
dSdt = -beta*S*I/N;
dIdt = beta*S*I/N - gamma*I;
dRdt = gamma*I;
dydt = [dSdt; dIdt; dRdt];
end
```
运行以上代码,即可得到SIR模型的人数随时间变化的图表。
阅读全文