- 基础定义
将传染病范围内的人群分为以下类别:S (Susceptible) 类:指未得病,但与感染者接触后容易收到感染的人。E (Exposed) 类:指接触过感染者,但暂时没有传播的能力的人。I(Infectious) 类:指染上传染病,具有传播能力的人。(可以传播给S 类人员,将其变成E 类或I 类成员)R (Recovered / Removed) 类:指病愈而具有免疫力的人或被隔离的移出者。(如果免疫期有限,R 类人员可以重新变为S 类)
- 常见模型
1. SI 模型
1.1 模型假设
- 将人群分为S 类和I 类,在疾病传播期内所考察地区的总人数K 不变(即不考虑生死和迁移)。时刻t 这两类人群人数分别记为S(t) 和I(t) 。
- 每个传染病患者每天有效接触的平均人数为beta (称为日接触率)。当传染病患者与健康人接触会将健康人感染为传染病患者。
- 初始时刻传染病患者人数为I_0 。
1.2 模型建立
由以上假设可建立如下的微分方程:
1.3 模型求解
联立方程可得:
进一步化简可得:
令{i(t) = {I(t) over K} } ,则{i(t)} 称为感染率。得:
上述方程为logistic 模型,其解为:
{i(t)}~ t 和{di(t) over dt} ~ {i(t)} 的图像如下:
由上图可知,当{i(t) = {1 over 2} } 时,{di(t) over dt} 达到最大值{({di(t) over dt})_m} ,此时
2. SIS 模型
1.4 模型假设
- 将人群分为S 类和I 类,在疾病传播期内所考察地区的总人数K 不变(即不考虑生死和迁移)。时刻t 这两类人群人数分别记为S(t) 和I(t) 。
- 每个传染病患者每天有效接触的平均人数为beta (称为日接触率)。当传染病患者与健康人接触会将健康人感染为传染病患者。
- 每天被治愈的患者数占总患者的比率为常熟mu (称为日治愈率)。病人治愈后成为仍可被感染的健康人。易知{1 over mu} 为传染病的平均传染期。
- 初始时刻传染病患者人数为I_0 。
1.5 模型建立
由以上假设可以建立如下微分方程:
1.6 模型求解
联立方程可得:
进一步化简可得:
令{i(t) = {I(t) over K} } ,则{i(t)} 称为感染率。得:
令{sigma = {beta over mu} } ,可知sigma 是整个传染期内每个患者有效接触的平均人数,称为接触数。得:
由以上方程可得 SIS 模型的{di(t) over dt} ~ {i(t)} 和{i(t)} ~ t 图像:
3. SIR 模型
3.1 模型假设
- 将人群分为健康人(S 类)、传染病患者(I 类)和病愈 / 死亡的移出者(R 类)(免疫期近似infty ),在疾病传播期内所考察地区的总人数K 不变。时刻t 这三类人群人数分别记为S(t) 、I(t) 和R(t) 。
- 传染病患者的日接触率为beta ,日治愈率为mu ,传染期接触的总人数为{sigma = {beta over mu} } 。
- 初始时刻的健康人数和患者数分别为{S_0} 、{I_0} 。
3.2 模型建立
由以上假设可以建立如下微分方程:
令{s(t) = {S(t) over K} } ,则{s(t)} 称为未感染率;令{i(t) = {I(t) over K} } ,则{i(t)} 称为感染患病率;令{r(t) = {R(t) over K} } ,则{r(t)} 称为移出率。 上述方程可进一步化简为:
上述方程的解析解很难解出,可以利用仿真计算帮助我们分析该模型。
3.3 模型仿真
设{K = 10000} ,{beta = 1} ,{mu = 0.3} ,{s_0 = 0.98} ,{i_0 = 0.02} 。
- 利用 AnyLogic 仿真软件仿真模型如下:
- 仿真数据:
- 仿真图像:
- 利用 matlab 仿真模型如下:
- matlab 代码:
function y = ill(t,x)
a = 1;
b = 0.3;
y = [a*x(1)*x(2) - b*x(1), -a*x(1)*x(2)]';
end
代码语言:javascript复制ts = 0:50;
x0 = [0.02, 0.98];
[t, x] = ode45('ill', ts, x0)
figure
plot(t, x(:,1), t, x(:,2))
title("s(t)、i(t)~t图像");
xlabel("t/天");
ylabel("s(t)/i(t)");
legend("i(t)","s(t)");
grid
figure
plot(x(:,2), x(:,1))
title("i(t)~s(t)图像");
xlabel("s(t)");
ylabel("i(t)");
grid
3.4 模型分析
- 相轨线定义(摘自百度百科 —— 相轨线) 对于微分方程:
其解为:
则该组解在{xOy} 平面(称为 相平面)所描绘的曲线即相轨线。
- 相轨线分析 由以上可知,{s} ~{i} 平面成为相平面,相轨线在相平面上的定义域为:
令 {sigma = {beta over mu} } (含义同 SIS 模型)。 对 SIR 模型微分方程:
相除消去{dt} ,得:
可求得方程的解为:
由方程可知 SIR 模型的相轨线:
分析如上曲线可得 SIR 模型以下性质:
- 不论初始条件{s_0} 、{i_0} 如何,病人终将消失,即
- 最终未被感染的健康者的比例是{s_infty} ,{s_infty} 是方程
在{(0, {1 over sigma})} 内的根。
- 若{s_0 gt {1 over sigma} } ,则{i(t)} 先增加后减小;当{s = {1 over sigma} } 时,{i(t)} 达到最大值
然后{i(t)} 单调减小且趋于 0,{s(t)} 则单调减小至{s_infty} 。
- 若{s_0 leq {1 over sigma} } ,则{i(t)} 单调减小至零,{s(t)} 单调减小至{s_infty} 。
可以看出,{1 over sigma} 是一个阈值,当{s_0 gt {1 over sigma} } 时传染病就会蔓延,而当{s_0 leq {1 over sigma} } 时传染病就不会蔓延。
在{sigma = {beta over mu} } 中,人们的卫生水平越高,日接触率beta 越小;医疗水平越高,日治愈率mu 越大。可知,提高医疗卫生水平有助于控制传染病的蔓延。
另外,{sigma s = beta s {1 over mu} } 是传染期内一个病人传染的健康者的平均数,称为交换数,其含义为一个病人被{sigma s} 个健康者交换。故当{s_0 leq {1 over sigma} } ,即{sigma s_0 leq 1} 时,必有{sigma s leq 1} ,即交换数不超过 1,此时病人比例{i(t)} 不会增加,传染病不会蔓延。
4. SIRS 模型
4.1 模型假设
- 将人群分为健康人(S 类)、传染病患者(I 类)和病愈的移出者(R 类)(免疫期近似infty ),在疾病传播期内所考察地区的总人数K 不变。时刻t 这三类人群人数分别记为S(t)、I(t) 和R(t) 。
- 传染病患者的日接触率为beta ,日治愈率为mu ,传染期接触的总人数为{sigma = {beta over mu} } 。
- 初始时刻的健康人数和患者数分别为{S_0} 、{I_0} 。