如果把传染病的爆发比作一场吞噬易感人群的森林大火,那么“康复并获得免疫抗体的人群”就是森林中被提前砍伐出的隔离防火带。
在现实中,许多传染病(如麻疹、天花、腮腺炎及冠状病毒)在人体康复后,会产生持久的特异性免疫力。经典 SIR 动力学模型(由 Kermack 与 McKendrick 于 1927 年提出)通过三组耦合的非线性微分方程,优雅地揭示了疫情蔓延的终极机理:当免疫屏障达到临界阈值 $1 - 1/R_0$ 时,火势将彻底失去自持蔓延的燃料。
当年国际上关于“群体免疫”的讨论一度甚嚣尘上,甚至引发了诸多认知混乱。本文使用 SIR 模型作为数学工具,从第一性原理推导群体免疫阈值,并通过 ODE 仿真论证为什么“压平感染曲线”是现代公共卫生的科学底线。
1. SIR 模型动力学方程组
在 SIR 模型中,总人口 $N$ 保持恒定,划分为三类人群:
- $S(t)$:易感人群(Susceptible),尚未感染但缺乏免疫力;
- $I(t)$:感染人群(Infective),具有传染性;
- $R(t)$:移出/免疫人群(Removed / Recovered),康复获得抗体或病亡移出系统。
设人群比例分别为 $s = \frac{S}{N}, i = \frac{I}{N}, r = \frac{R}{N}$,满足 $s(t) + i(t) + r(t) = 1$。
1.1 非线性微分方程组
$$ \begin{cases} \dfrac{ds}{dt} = -\beta s i \\[2ex] \dfrac{di}{dt} = \beta s i - \gamma i = (\beta s - \gamma) i \\[2ex] \dfrac{dr}{dt} = \gamma i \end{cases} $$- $\beta$:传染接触率参数;
- $\gamma$:移出/康复率(平均传染期为 $D = \frac{1}{\gamma}$ 天);
- 基本传染数 $R_0 = \frac{\beta}{\gamma}$。
2. 核心数学推论与相平面分析
2.1 疫情蔓延与拐点条件
$$ \frac{di}{dt} = \gamma \left(R_0 s - 1\right) i $$- 爆发条件:若初始易感比例 $s_0 > \frac{1}{R_0}$,则 $\frac{di}{dt} > 0$,感染人数将持续攀升;
- 峰值拐点:随着易感人群被大量感染消耗,当易感者比例下降至临界阈值 $s(t^*) = \frac{1}{R_0}$ 时,$\frac{di}{dt} = 0$,现存感染人数达到历史峰值(Peak);
- 衰退阶段:当 $s < \frac{1}{R_0}$ 时,$\frac{di}{dt} < 0$,新增感染低于康复速度,疫情进入不可逆的下行衰退期。
2.2 群体免疫阈值(Herd Immunity Threshold, HIT)
要让疫情无法在大规模人群中自发蔓延,必须使易感人群比例压低至 $s < \frac{1}{R_0}$。
$$ p_{\text{threshold}} = 1 - \frac{1}{R_0} $$| 基本传染数 $R_0$ | 典型传染病参考 | 群体免疫所需免疫屏障比例 ($1 - 1/R_0$) |
|---|---|---|
| $R_0 = 1.5$ | 普通季节性流感 | $33.3\%$ |
| $R_0 = 2.5$ | 早期新冠毒株 / SARS | $60.0\%$ |
| $R_0 = 5.0$ | 脊髓灰质炎 / 腮腺炎 | $80.0\%$ |
| $R_0 = 12.0 \sim 18.0$ | 麻疹(极强空气传播) | $91.7\% \sim 94.4\%$ |
3. Python 数值求解与“压平曲线”仿真
我们通过 Python 求解 SIR 微分方程组,并对比两种不同干预强度下的医疗负荷曲线:
import numpy as np
import pandas as pd
from scipy.integrate import odeint
def sir_model(y, t, beta, gamma):
s, i, r = y
dsdt = -beta * s * i
didt = beta * s * i - gamma * i
drdt = gamma * i
return [dsdt, didt, drdt]
# 参数设定
gamma = 1.0 / 10.0 # 平均病程 10 天 (gamma = 0.1)
R0_natural = 2.5 # 无干预自然传播 R0 = 2.5 (beta = 0.25)
R0_control = 1.4 # 强力干预后 R0 = 1.4 (beta = 0.14)
y0 = [0.999, 0.001, 0.0] # 初始 0.1% 感染
t = np.linspace(0, 160, 161)
# 求解两种场景
sol_natural = odeint(sir_model, y0, t, args=(R0_natural * gamma, gamma))
sol_control = odeint(sir_model, y0, t, args=(R0_control * gamma, gamma))
i_natural = sol_natural[:, 1]
i_control = sol_control[:, 1]
peak_nat_day = t[np.argmax(i_natural)]
peak_nat_val = np.max(i_natural)
peak_ctrl_day = t[np.argmax(i_control)]
peak_ctrl_val = np.max(i_control)
print(f"自然无干预场景: 感染峰值 {peak_nat_val*100:.2f}%, 出现在第 {peak_nat_day:.0f} 天")
print(f"干预压平曲线场景: 感染峰值 {peak_ctrl_val*100:.2f}%, 出现在第 {peak_ctrl_day:.0f} 天")
4. 仿真结果与防控启示
| 场景 | $R_0$ | 感染峰值占比 ($I_{\max}$) | 峰值到达时间 | 最终累计总感染率 ($R_\infty$) | 医疗系统挤兑风险 |
|---|---|---|---|---|---|
| 无干预自然传播 | 2.5 | 22.4% | 第 38 天 | 89.3% | 极高(瞬间击穿医疗承载力) |
| 积极干预与防控 | 1.4 | 3.8% | 第 82 天 | 51.2% | 可控(有效压平波峰) |
5. 公共卫生决策的科学理性与人道底线
SIR 模型用无懈可击的数学推导,为我们厘清了关于疫情应对的最核心争论:
5.1 自然免疫的残酷数学真相
所谓的“放任自然感染达到群体免疫”,在数学上意味着必须让全社会付出承受感染峰值(超过 $22%$ 的人同时染病)的沉重代价。这会瞬间击穿任何国家的重症 ICU 承载极限,引发不可挽回的人道主义灾难。疫苗接种才是唯一科学、安全且人道地越过群体免疫阈值的工程方案。
5.2 “压平曲线(Flatten the Curve)”的核心价值
通过非药物干预措施(NPI)将有效传染数从 2.5 压低至 1.4,虽然延长了总病程,但将最高并发医疗负荷削减了 $83%$(从 $22.4%$ 降至 $3.8%$)。时间换空间,正是现代重症救治与疫苗研发能够力挽狂澜的关键所在。
5.3 动力学思维在系统工程中的复用
从传染病扩散到分布式系统中的消息广播、缓存击穿与级联故障雪崩,SIR 模型的微分结构随处可见。掌握了相平面分析与阈值控制,就掌握了守护复杂系统稳健性(Resilience)的核心密码。