用Matlab写SIRP传染病模型
时间: 2024-06-09 11:07:52 浏览: 10
SIRP模型是一种经典的传染病模型,由Susceptible(易感者)、Infected(感染者)、Recovered(康复者)和Permanently immune(永久免疫者)四个部分组成。在Matlab中,可以通过以下代码实现SIRP模型:
```matlab
% 设置初始参数
N = 1000; % 总人口数
I0 = 1; % 初始感染人数
R0 = 0; % 初始康复人数
S0 = N - I0 - R0; % 初始易感人数
P0 = 0; % 初始免疫人数
beta = 0.2; % 感染率
gamma = 0.1; % 康复率
alpha = 0.01; % 免疫率
t = 0:1:100; % 时间范围
% 定义ODE函数
f = @(t,y) [-beta*y(1)*y(2)/N; beta*y(1)*y(2)/N-gamma*y(2); gamma*y(2)-alpha*y(3); alpha*y(3)];
% 解ODE方程
[t,Y] = ode45(f,[0,100],[S0;I0;R0;P0]);
% 绘制图像
plot(t,Y(:,1),'b',t,Y(:,2),'r',t,Y(:,3),'g',t,Y(:,4),'k');
legend('易感者','感染者','康复者','免疫者');
xlabel('时间');
ylabel('人数');
title('SIRP模型');
```
运行以上代码,即可得到SIRP模型的人数随时间变化的图像。其中,蓝色曲线代表易感者人数,红色曲线代表感染者人数,绿色曲线代表康复者人数,黑色曲线代表免疫者人数。