SIR 模型
在SIR 模型里,我们把人群分成三种
- 易感人数
- 感染人数
- 恢复人数
数学建模就是找出这些函数满足的方程,然后求解方程,从而预测以后的情况。
建议先阅读 COVID-19 的数学模型(1):SI 模型 理解最基本的 SI 模型。
模型
我们用代表从感染到恢复的比例。比如 ,就是说 80%的感染者可以恢复到健康状态,而且就有了抗体,不再归入易感人群。
所以恢复人数增加的速度等于.
代表感染人数占总人口的比例,也代表遇到感染者的概率。比如说,,那你就有一半的概率碰到感染者。易感人群乘上这个比例就意味着有多少易感者接触到了生病的人。
但并不是碰到就感染了。有个传染的概率,这个就是. 比如 ,就是说没生病的人碰到了生病的人之后,被传染的可能性是十分之一。
所以感染人数增加的速度等于 ,然后减去恢复的那部分.
易感人数减少的速度等于变成感染人数的速度,就是.
总结一下,我们得到下面的方程组:
初始值 , 并且满足. 注意到前面两个方程和 SI 模型里加入了死亡率是一样的。实际上如果我们把 理解成 Resistence (抵抗力),那么死亡也可以当做 的一部分,两者就是一样的。
怎么计算死亡人数?把 SIR 模型中的 理解成痊愈的人数和死亡人数之和。最后总计的 乘上致死率就得到了死亡人数。
用化学反应式的简洁写法是:
人口守恒律仍然成立:对所有的时间
证明还是一样的,把三个方程加起来,得到三者总和关于时间的导数为 0。
数值解法
解析解不太好解,但数值解法还是一样的。的向前欧拉法是:
这个离散的模型提供了一个更容易理解的解释。比如最后一个方程的意思是明天的恢复人数等于今天的恢复人数加上恢复率乘上当前的感染人数。
这里直接用 MATLB 的ode45 来求解,代码如下。
function SIR(N,I0,beta,gamma,tend)tspan = [0,tend];S0 = N - I0;R0 = 0