手搓传染病模型(SEIR)
先看模型
在本模型中,人群有四种自然史状态:易感者(S),暴露者(E),感染者(I)以及康复者(R) 2.模型假设人群分布是同质均匀的,未考虑人群出生、死亡、迁入迁出对疾病传播的影响 3.康复者永久免疫:康复者永久免疫该传染病,无再感染风险。
话不说多,开始手搓
% 模型参数
N = 10000; % 总人数
I0 = 10; % 初始感染人数
R0 = 0; % 初始康复人数
E0 = 2 * I0; % 初始暴露人数
S0 = N - I0 - R0 - E0; % 初始易感人数
beta = 0.4402; % 传染率
w = 0.2; % 暴露转化速率
gamma = 1 / 12; % 康复速率
num_days = 100; % 模拟天数
% x(1):感染人群I,
% x(2):易感人群S,
% x(3):康复人群R,
% x(4):暴露人群E
dxdt = @(t, x) [w * x(4) - gamma * x(1); % dIdt-beta * x(2) * x(1) / N; % dSdtgamma * x(1); % dRdtbeta * x(2) * x(1) / N - w * x(4); % dEdt];[t, y] = ode45(dxdt, 1: num_days, [I0, S0, R0, E0]);
hold on
plot(t, y(:, 1));
plot(t, y(:, 2));
plot(t, y(:, 3));
plot(t, y(:, 4));
legend('感染人数I', '易感人数S', '康复人群R', '暴露人群E');
看下效果
Over!