SIR传染病模型 matlab实现
时间: 2023-10-02 18:08:13 浏览: 116
Matlab实现疫情SIRS模型
5星 · 资源好评率100%
SIR模型是一种描述传染病传播过程的数学模型,其中S表示易感者数量,I表示感染者数量,R表示康复者数量。在传染病传播过程中,易感者可以通过与感染者接触而被感染,感染者最终会康复,并且具有免疫力,不再易感。
以下是使用MATLAB实现SIR模型的示例代码:
```
% 定义参数和初值
beta = 0.2; % 感染率
gamma = 0.1; % 恢复率
N = 1000; % 总人口
I0 = 1; % 初始感染者数量
S0 = N - I0; % 初始易感者数量
R0 = 0; % 初始康复者数量
% 定义ODE方程
fun = @(t, y) [-beta*y(1)*y(2)/N; beta*y(1)*y(2)/N - gamma*y(2); gamma*y(2)];
% 解ODE方程
[t, y] = ode45(fun, [0, 100], [S0, I0, R0]);
% 绘图
plot(t, y(:,1), 'b', t, y(:,2), 'r', t, y(:,3), 'g')
legend('易感者', '感染者', '康复者')
xlabel('时间')
ylabel('人数')
title('SIR模型')
```
在这个例子中,我们将总人口设置为1000,初始感染者数量为1,其余人数为易感者。我们使用MATLAB的ODE45函数求解ODE方程,并绘制了易感者、感染者和康复者随时间变化的图形。
需要注意的是,这只是一个简单的示例,实际上SIR模型中的参数和初值可能会因为具体情况而有所不同。
阅读全文