一般做网站多少钱网络销售好不好做
本文是SIS模型的原理与公式推导,不涉及代码(后续补充)。
对了宝贝儿们,卑微小李的公众号【野指针小李】已开通,期待与你一起探讨学术哟~摸摸大!
目录
- 1 背景
- 2 SIS模型原理
- 3 求解微分方程
- 4 参考
1 背景
SIS模型是流行病学中的一个模型,流行病是具有传播效应的,能够在一个社会网络中进行传播(比如今年的疫情),在这个网络中,每个节点代表一个人,当两个人联系(建立边)的时候,疾病就有可能进行传播。
而信息传播(information dissemination,也称信息扩散)也可以看作是流行病传播,因为信息传播也需要节点与节点之间有边,才能产生概率进行传播。
就比如我得关注某个小姐姐的微博,并且评论了一句“小姐姐真好看,还缺男朋友么”,那么我和小姐姐就是两个节点,关注与评论这个过程就是建立边的过程,这个边是有向边,由我这个节点指向小姐姐这个节点,我传播的信息是“小姐姐真好看,还缺男朋友么”,但是如果小姐姐私信太多,忽略了我这个私信,或者直接把我拉黑了,那么我这个消息就传播不过去。
流行病学模型中是将传播过程分为了三类:
- 敏感期(susceptible):节点尚未患病(获得信息),并且处于容易被邻居传染的时期;
- 感染期(infectious):一个被传染了的节点(获得信息),并且有一定的几率把疾病(信息)传感给处于敏感期的邻居;
- 隔离期(removed):当一个节点经历了完整的感染期,就不会再被感染(免疫了),也不会再感染其他的节点。
本文讨论的是SIS模型,即节点只有敏感期和感染期的节点,不考虑隔离期的节点。
2 SIS模型原理
由于没有隔离期,所以SIS模型只允许节点在 S S S和 I I I两个状态之间交替变换,就如新冠一样,你病好了依然有可能继续被感染,所以大家一定要勤通风,多戴口罩。
在《网络、群体与市场》这本书上,将整个模型的流程概括为:
- 初始情况下,一些节点处于状态 I I I,其余节点处于状态 S S S;
- 每个状态 I I I的节点 v v v在固定数量的步骤 t i t_i ti期间内具有传染性;
- 在 t i t_i ti期间的每一步, v v v以概率 p p p将疾病传染给它所有出在状态 S S S的邻居;
- 经过 t i t_i ti步骤后,节点 v v v不再具有传染性,返回状态 S S S。
但是还有种情况,也就是我主要要讲的情况:
- 整个网络中共有 N N N个人,该网络并不会发生变化;
- 在最初时刻,有 I I I个被感染的人, S S S个易感染的人,即 N = I + S N=I+S N=I+S;
- 每个时刻被感染者的比例为 i ( t ) i(t) i(t),易感者的比例为 s ( t ) s(t) s(t),这里 i ( t ) + s ( t ) = 1 i(t)+s(t)=1 i(t)+s(t)=1, i ( t ) i(t) i(t)是 t t t时刻的 I ( t ) N \frac{I(t)}{N} NI(t), s ( t ) s(t) s(t)是 t t t时刻的 S ( t ) N \frac{S(t)}{N} NS(t);
- 假设在每一个时刻每个感染者有 λ \lambda λ的概率把毒传染给邻居,且有 μ \mu μ的概率被治疗成功。
由于这是个需要考虑变化率的问题,所以我们可以通过构建微分方程求解。微分方程为:
N d i ( t ) d t = N i ( t ) λ s ( t ) − μ N i ( t ) N \frac{di(t)}{dt} = N i(t) \lambda s(t) - \mu Ni(t) Ndtdi(t)=Ni(t)λs(t)−μNi(t)
N d s ( t ) d t = − N i ( t ) λ s ( t ) + μ N i ( t ) N \frac{ds(t)}{dt} = - N i(t) \lambda s(t) + \mu Ni(t) Ndtds(t)=−Ni(t)λs(t)+μNi(t)
我们以第一个公式来看,该公式表达了在 t t t时刻感染者 i ( t ) i(t) i(t)的变化率,其构成为当日新增的患者 N i ( t ) λ s ( t ) N i(t) \lambda s(t) Ni(t)λs(t)减去当日治愈的患者 μ N i ( t ) \mu Ni(t) μNi(t)。
N i ( t ) λ s ( t ) N i(t) \lambda s(t) Ni(t)λs(t)的意思是,一共有 N i ( t ) N i(t) Ni(t)个患者,每个人有 λ \lambda λ的概率感染别人,被感染的人的比率那么就有 λ s ( t ) \lambda s(t) λs(t)。 μ N i ( t ) \mu Ni(t) μNi(t)的意思是,一共有 N i ( t ) N i(t) Ni(t)个患者,每个人有 μ \mu μ的概率被治愈。这里都是概率,是因为 d i ( t ) d t \frac{di(t)}{dt} dtdi(t)求的就是比率。
由上面的内容我们可以绘制出如下图:
有了公式后,我们就开始解该微分方程。
3 求解微分方程
由于两个公式只是个负号的区别,所以我们只讨论第一个公式:
N d i ( t ) d t = N i ( t ) λ s ( t ) − μ N i ( t ) N \frac{di(t)}{dt} = N i(t) \lambda s(t) - \mu Ni(t) Ndtdi(t)=Ni(t)λs(t)−μNi(t)
我们首先先把公式改为习惯的样子:
d i d t = λ i s − μ i \frac{di}{dt} = \lambda i s - \mu i dtdi=λis−μi
这里只是为了方便书写,把 ( t ) (t) (t)去掉了,但是大家要时刻记得 i i i和 s s s都是关于 t t t的函数,而 λ \lambda λ和 μ \mu μ是常数项。
并且我们由已知可得:
s ( t ) + i ( t ) = 1 → s ( t ) = 1 − i ( t ) s(t)+i(t)=1 \rightarrow s(t)=1-i(t) s(t)+i(t)=1→s(t)=1−i(t)
于是公式转换为:
d i d t = ( λ − μ ) i − λ i 2 \frac{di}{dt} = (\lambda - \mu)i - \lambda i^2 dtdi=(λ−μ)i−λi2
由于有 i 2 i^2 i2,所以这是个伯努利方程,采用伯努利方程的解法,等式两边同时除 i 2 i^2 i2:
i − 2 i ′ − ( λ − μ ) i − 1 = − λ i^{-2}i' - (\lambda - \mu)i^{-1} = -\lambda i−2i′−(λ−μ)i−1=−λ
令 i − 1 = u i^{-1}=u i−1=u,并对其求导可得:
− i − 2 i ′ = d u d t → i − 2 i ′ = − d u d t -i^{-2}i'=\frac{du}{dt} \rightarrow i^{-2}i'=-\frac{du}{dt} −i−2i′=dtdu→i−2i′=−dtdu
于是原等式变为:
− d u d t − ( λ − μ ) u = − λ -\frac{du}{dt} - (\lambda - \mu)u=-\lambda −dtdu−(λ−μ)u=−λ
将负号去掉:
d u d t + ( λ − μ ) u = λ \frac{du}{dt} + (\lambda - \mu)u=\lambda dtdu+(λ−μ)u=λ
我们发现这是一个一阶线性微分方程,直接带通解公式得:
u = e − ∫ ( λ − μ ) d t [ ∫ λ e ∫ ( λ − μ ) d t d t + c ] u=e^{-\int(\lambda - \mu)dt}[\int \lambda e^{\int (\lambda - \mu)dt}dt + c] u=e−∫(λ−μ)dt[∫λe∫(λ−μ)dtdt+c]
对其求解积分得:
u = e − ( λ − μ ) t [ λ λ − μ e ( λ − μ ) t + c ] u=e^{-(\lambda - \mu)t}[\frac {\lambda}{\lambda - \mu} e^{ (\lambda - \mu)t} + c] u=e−(λ−μ)t[λ−μλe(λ−μ)t+c]
将其化简可得:
u = λ λ − μ + c e − ( λ − μ ) t u = \frac{\lambda}{\lambda - \mu} + c e^{-(\lambda - \mu)t} u=λ−μλ+ce−(λ−μ)t
将 u u u变回 i i i得:
i − 1 = λ λ − μ + c e − ( λ − μ ) t i^{-1} = \frac{\lambda}{\lambda - \mu} + c e^{-(\lambda - \mu)t} i−1=λ−μλ+ce−(λ−μ)t
解得 i i i:
i = [ λ λ − μ + c e − ( λ − μ ) t ] − 1 i=[\frac{\lambda}{\lambda - \mu} + c e^{-(\lambda - \mu)t}]^{-1} i=[λ−μλ+ce−(λ−μ)t]−1
我们现在的目标是求解 c c c,令 i ( 0 ) = b i(0)=b i(0)=b,代入上面的方程得:
b = [ λ λ − μ + c ] − 1 b=[\frac{\lambda}{\lambda - \mu} + c]^{-1} b=[λ−μλ+c]−1
解得:
c = 1 b − λ λ − μ c=\frac{1}{b}-\frac{\lambda}{\lambda - \mu} c=b1−λ−μλ
于是得到结果:
i = [ λ λ − μ + ( 1 b − λ λ − μ ) e − ( λ − μ ) t ] − 1 i=[\frac{\lambda}{\lambda - \mu} + (\frac{1}{b}-\frac{\lambda}{\lambda - \mu}) e^{-(\lambda - \mu)t}]^{-1} i=[λ−μλ+(b1−λ−μλ)e−(λ−μ)t]−1
到这里公式就求解完毕了,不过需要讨论 λ \lambda λ与 μ \mu μ的关系:
- 如果 λ ≠ μ \lambda ≠ \mu λ=μ,那么就是上面的公式;
- 如果 λ = μ \lambda = \mu λ=μ,那么公式为: i = [ λ t + 1 b ] − 1 i=[\lambda t + \frac{1}{b}]^{-1} i=[λt+b1]−1
至于这个怎么算出来的,我查了许多资料都没有讲解的,只有这么一串代码:
那么这告诉我们,这不是人算的,所以只要会用就行了。
4 参考
[1]大卫·伊斯利, 乔恩·克莱因伯格.网络、群体与市场——揭示高度互联世界的行为原理与效应机制[M].清华大学出版社:北京,2011-10:398-411.
[2]贺先平贺先平.传染病模型(微分方程)[EB/OL].https://wenku.baidu.com/view/0783ee1e2e3f5727a4e9620d.html,2014-6-22.
[3]KeepLearn.数学建模常用算法——传染病模型(二)SIS模型[EB/OL].https://zhuanlan.zhihu.com/p/142017716,2020-5-20.