用MATLAB写程序,写传染病SIR模型的MATLAB程序,可以得到s(t),i(t),r(t)曲线
时间: 2024-02-29 17:55:25 浏览: 112
基于MATLAB的SEIR模型病毒传染过程仿真-源码
好的,以下是传染病SIR模型的MATLAB程序:
```matlab
% 定义参数
N = 10000; % 总人口数
beta = 0.4; % 传染系数
gamma = 0.1; % 恢复系数
I0 = 1; % 初始感染人数
R0 = 0; % 初始治愈人数
S0 = N - I0 - R0; % 初始易感人数
% 定义模型函数
sir = @(t,x) [-beta*x(1)*x(2)/N; beta*x(1)*x(2)/N-gamma*x(2); gamma*x(2)];
% 求解ODE
[t, y] = ode45(sir, [0, 100], [S0, I0, R0]);
% 绘制曲线
plot(t, y(:,1), 'r', t, y(:,2), 'g', t, y(:,3), 'b');
legend('易感人数', '感染人数', '治愈人数');
xlabel('时间');
ylabel('人数');
title('传染病SIR模型');
```
这个程序会输出易感人数(s(t)),感染人数(i(t))和治愈人数(r(t))随时间的变化曲线。你可以根据自己的需求修改参数和初始条件。
阅读全文