传染病模型

article/2025/9/25 13:20:06

参考:https://www.zhihu.com/question/367466399?from=groupmessage
假定人群分为4种,分别是:

  • SUSCEPTIBLES:易感者,潜在的可感染人群。
  • EXPOSED:潜伏者,已经被感染没有表现出来的人群。
  • INFECTIVES:感染者,已经表现出感染症状的人
  • RESISTANCES:抵抗者,感染者痊愈后获得抗性的人。
  • 有些时候可以把R解释成恢复者,但实际上如果是致死性疾病,死者也算进这一项里,因为死者妥善处理之后无法被感染,也无法感染别人,和恢复者是一样的。

假设在某时刻t上,易感者为S(t),感染者为:I(t),康复者(有抗体)为R(t)。
那麽在时刻t,总人口数为N(t)=S(t)+I(t)+R(t)。如果暂时不考虑人口的增加和死亡的情况,那么N(t)=N是一个恒定的值。
除此之外:

  • r r r表示在单位时间内感染者接触到的易感者人数;
  • 传染率: β \beta β表示感染者接触到易感者之后,易感者得病的概率;
  • 康复率: γ \gamma γ表示感染者康复的概率,有可能变成易感者S(可再感染),也有可能变成康复者R(不再感染)。

预备知识:
假设 x = x ( t ) x=x(t) x=x(t)是关于 t t t的一个方程,且满足 d x d t + a 1 x + a 2 x 2 = 0 \frac{dx}{dt}+a_1x+a_2x^2=0 dtdx+a1x+a2x2=0 x ( 0 ) = x 0 x(0)=x_0 x(0)=x0,那么它的解为:
x ( t ) = e − a 1 t 1 x 0 − a 2 a 1 ( e − a 1 t − 1 ) x(t)=\frac{e^{-a_1t}}{\frac{1}{x_0}-\frac{a_2}{a_1}(e^{-a_1t}-1)} x(t)=x01a1a2(ea1t1)ea1t
在这里插入图片描述

四类传染病模型:

  • 艾滋传染模型 SI
  • 普通流感模型 SIS
  • 急性传染病模型 SIR 及其拓展模型 SIRS
  • 带潜伏期的恶性传染病模型 SEIR

SI模型

在 SI 模型里面,只考虑了易感者和感染者,并且感染者不能够恢复,此类病症有 HIV 等;
由于艾滋传染之后不可治愈,所以该模型为:易感染者被感染。
在这里插入图片描述

假定:总人口数为N(t)=S(t)+I(t),疾病流行期间,人口的出生率和自然死亡率分别为 μ \mu μ ν \nu ν,不考虑因病死亡,新增人都是易感染者,感染人数为 β S I N \frac{\beta SI}{N} NβSI

用微分方程的式子表达
{ d S d t = − r β I N S d I d t = r β I N S \left\{\begin{matrix} \frac{dS}{dt}=-\frac{r\beta I}{N}S\\ \frac{dI}{dt}=\frac{r\beta I}{N}S \end{matrix}\right. {dtdS=NrβISdtdI=NrβIS
初始条件是 S ( t ) = S 0 , I ( 0 ) = I 0 S(t)=S_0,I(0)=I_0 S(t)=S0,I(0)=I0,并且 N ( t ) = S ( t ) + I ( t ) N(t)=S(t)+I(t) N(t)=S(t)+I(t)对于所有的 t ≥ 0 t\geq 0 t0都成立。
于是,把 S = N − I S=N-I S=NI代入第二个微分方程中,最后常微分方程的解为:
I ( t ) = N I 0 I 0 + ( N − I 0 ) e − r β t I(t)=\frac{NI_0}{I_0+(N-I_0)e^{-r\beta t}} I(t)=I0+(NI0)erβtNI0
这就是所谓的逻辑回归函数,而在机器学习领域,最简单的逻辑回归函数为 σ ( x ) = 1 1 + e − x \sigma (x)=\frac{1}{1+e^{-x}} σ(x)=1+ex1,而 I ( t ) I(t) I(t)只是做了一些坐标轴的平移和压缩而已。由于 l i m t → + ∞ e − t = 0 lim_{t\rightarrow +\infty }e^{-t}=0 limt+et=0,所以 l i m t → + ∞ I ( t ) = N lim_{t\rightarrow +\infty }I(t)=N limt+I(t)=N,从而 l i m t → + ∞ S ( t ) = 0 lim_{t\rightarrow +\infty }S(t)=0 limt+S(t)=0
通过数值模拟可以进一步知道:
在这里插入图片描述
此处最好的办法应该是用拟和优化。
简单来看,再SI模型下,最后全部的人群都会被感染。

SIS模型

除了 HIV 这种比较严重的病之外,还有很多小病是可以恢复并且反复感染的,例如日常的感冒,发烧等。在这种情况下,感染者就有一定的几率重新转化成易感者。如下图所示:
在这里插入图片描述其微分方程就是:
{ d S d t = − r β S I N + γ I d I d t = r β S I N − γ I \left\{\begin{matrix} \frac{dS}{dt}=-\frac{r\beta SI}{N}+\gamma I\\ \frac{dI}{dt}=\frac{r\beta SI}{N}-\gamma I \end{matrix}\right. {dtdS=NrβSI+γIdtdI=NrβSIγI其初始条件为 S ( 0 ) = S 0 , I ( 0 ) = I 0 S(0)=S_0,I(0)=I_0 S(0)=S0,I(0)=I0
是用同样的办法,把 S = N − I S=N-I S=NI导入第二个微分方程。最后得到的最终解为
在这里插入图片描述
从而也得到 l i m t → + ∞ I ( t ) = N ( r β − γ ) r β lim_{t\rightarrow +\infty }I(t)=\frac{N(r\beta -\gamma )}{r\beta } limt+I(t)=rβN(rβγ),且 l i m t → + ∞ S ( t ) = N γ r β lim_{t\rightarrow +\infty }S(t)=\frac{N\gamma }{r\beta } limt+S(t)=rβNγ,这个方程同样也是逻辑回归方程,只是它的渐近线与之前的SI模型有所不同。

在这里插入图片描述

SIR模型

有的时候,感染者在康复之后,就有了抗体,于是后续就不会再获得此类病症,这种时候,考虑SIS模型就不再合适了,需要考虑SIR模型。此类病症有麻疹,腮腺炎,风疹等。
在这里插入图片描述其微分方程是:
{ d S d t = − r β S I N d I d t = r β S I N − γ I d R d t = γ I \left\{\begin{matrix} \frac{dS}{dt}=-\frac{r\beta SI}{N}\\ \frac{dI}{dt}=\frac{r\beta SI}{N}-\gamma I\\ \frac{dR}{dt}=\gamma I \end{matrix}\right. dtdS=NrβSIdtdI=NrβSIγIdtdR=γI
其初始条件是 S ( 0 ) = S 0 , I ( 0 ) = I 0 , R ( 0 ) = R 0 S(0)=S_0,I(0)=I_0,R(0)=R_0 S(0)=S0,I(0)=I0,R(0)=R0,并且 S ( t ) , I ( t ) , R ( t ) ≥ 0 S(t),I(t),R(t)\geq 0 S(t),I(t),R(t)0 S ( t ) + I ( t ) + R ( t ) = N S(t)+I(t)+R(t)=N S(t)+I(t)+R(t)=N对于所有的 t ≥ 0 t\geq 0 t0都成立。

对于这类方程,就不能够得到其解析解了,只能够从它的动力系统开始进行分析,得到解的信息。根据第一个微分方程可以得到 d S d t = − r β S I N < 0 \frac{dS}{dt}=-\frac{r\beta SI}{N}<0 dtdS=NrβSI<0 ,于是 S ( t ) S(t) S(t) 是一个严格递减函数,同时, 0 ≤ S ( t ) ≤ N 0\leq S(t)\leq N 0S(t)N 对于所有的 t ≥ 0 t\geq 0 t0 都成立,于是存在 S ∞ ∈ [ 0 , + ∞ ] S_\infty \in [0,+\infty ] S[0,+],使得 l i m t → + ∞ S ( t ) = S ∞ lim_{t\rightarrow +\infty }S(t)=S_\infty limt+S(t)=S
通过第一个微分方程和第二个微分方程可以得到: d ( S + I ) d t = − γ I \frac{d(S+I)}{dt}=-\gamma I dtd(S+I)=γI,因此对它两边积分得到
在这里插入图片描述由于 S ( t ) S(t) S(t)是严格单调递减函数,因此从第二个微分方程可以得到:当 S ( t ) = N γ r β S(t)=\frac{N\gamma}{r\beta} S(t)=rβNγ时,感染人数 I ( t ) I(t) I(t)达到最大值。
在这里插入图片描述在这里插入图片描述

SEIR模型

在这里插入图片描述注意此处的SEIR模型加入了扰动因子v,前面三种模型也可以加入扰动因子,加入扰动因子的模型往往更合理。
原因:就拿SEIR模型来说,
它不是万能的,总有一些异常状况,如有的人潜伏期短,有的人潜伏期长,还可能有超级感染者,有的潜伏者可能就直接痊愈了,变成了抵抗者。方程并没有单独处理这些情况,因为一定程度内这些异类都可以被扰动因子所包含。研究一个固定的模型加扰动项,比不断地往模型里加扰动项好研究的多。

通过对 SEIR 模型的研究, 可以预测一个封闭地区疫情的爆发情况, 最大峰值, 感染人数等等

但是显然没有任何地区是封闭的, 所以就要把各个地区看成图的节点, 地区之间的流动可以由马尔可夫转移所刻画, 对每个结点单独跑 SEIR 模型.

最后整个仿真模型就可以比较准确的反应疫情的散播和爆发情况

当然可以再加入更多的决策因素。


http://chatgpt.dhexx.cn/article/c5R6QA3Q.shtml

相关文章

微分方程传染病模型之指数模型-SI模型-SIS模型-SIR模型

传染病&#xff08;瘟疫&#xff09;经常在世界各地流行&#xff0c;如霍乱、天花、艾滋病、SARS、新型冠状病毒、H5N1病毒等&#xff0c;建立传染病的数学模型&#xff0c;分析其变化规律&#xff0c;防止其蔓延是一项艰巨的任务&#xff0c;这里就一般的传染规律讨论传染病的…

数学模型:传染病模型

传染病模型 需要考虑的问题基本方法模型1模型2&#xff08;SI模型&#xff09;模型3&#xff08;SIS模型&#xff09;模型4&#xff08;SIR模型&#xff09; 需要考虑的问题 描述传染病的传播过程分析受感染人数的变化规律预报传染病高潮到来的时刻预防传染病蔓延的手段 基本…

传染病模型知识储备

一、模型中的人群分类 S (Susceptible)&#xff0c;易感者&#xff0c;指缺乏免疫能力健康人&#xff0c;与感染者接触后容易受到感染&#xff1b; E (Exposed)&#xff0c;暴露者 &#xff0c;指接触过感染者但暂无传染性的人&#xff0c;可用于存在潜伏期的传染病&#xff…

传染病模型-SIR

一、模型背景 传染病模型指传染病的基本数学模型&#xff0c;主要研究传染病的传播速度、空间范围、传播途径、动力学机理等问题&#xff0c;以指导对传染病的有效地预防和控制。常见的传染病模型按照传染病类型分为 SI、SIR、SIRS、SEIR 模型&#xff0c;本文着重介绍其中的SI…

C语言用函数、递归的方法求n的阶乘

函数fac代码 当n<1时&#xff0c;结果为1 当n>1时&#xff0c;n只要乘前一个n的阶乘值就是n的阶乘&#xff0c;即&#xff1a;n*fac(n-1) int fac(int n) {if(n<1)return 1;elsereturn n*fac(n-1); } 主函数代码 int main() {int n0;int ret0;scanf("%d&quo…

通过C语言实现函数的递归 ---自己调用自己

Hellow&#xff0c;我是jack&#xff0c;今天给大家分享的是C语言实现函数的递归调用。 在使用递归调用时&#xff0c;我们应明白以下几点&#xff1a; 1.存在限制条件 限制条件不存在时&#xff0c;不在递归 2.递归越来越接近结尾 3.递归层次不能太深 注意这几点就是让我们在…

C++语言基础--递归函数

对于很多编程初学者来说&#xff0c;递归算法是学习语言的最大障碍之一。可能也有一大部分人知道递归&#xff0c;也能看的懂递归&#xff0c;但在实际做题过程中&#xff0c;却不知道怎么使用 递归的定义 1、很官方的说法 递归&#xff0c;在数学与计算机科学中&#xff0c;…

11.函数(C语言)+递归函数(超清晰图解递归)

函数 1.函数是什么&#xff1f;2.库函数1&#xff09;库函数的基本知识2&#xff09;初识几个库函数 3.自定义函数自定义函数的组成 4.函数参数1 )实际参数&#xff08;实参&#xff09;&#xff1a;2) 形式参数&#xff08;形参&#xff09;&#xff1a; 5.函数调用1) 传值调用…

C语言之函数递归

前言   从前有座山&#xff0c;山里有座庙&#xff0c;庙里有个老和尚&#xff0c;正在给小和尚讲故事呢&#xff01;故事是什么呢&#xff1f;"从前有座山&#xff0c;山里有座庙&#xff0c;庙里有个老和尚&#xff0c;正在给小和尚讲故事呢&#xff01;故事是什么呢&…

C语言——函数递归

文章目录 前言递归的概念递归的两个必要条件例题1.递归实现阶乘2.递归实现strlen函数3.计算一个正整数各位数字的和4.递归实现整数n的整数k次方5.递归实现斐波那契数6.递归实现字符串逆序7.汉诺塔8.青蛙跳台阶9.将一个十进制数以二进制的形式打印 前言 本文总结了几个递归基础例…

C语言的递归函数

递归函数&#xff08;一&#xff09; 递归就是一个函数在它的函数体内调用它自身。 执行递归函数将反复调用其自身&#xff0c;每调用一次就进入新的一层。 注意递归函数必须有结束条件 递归函数&#xff08;二&#xff09; 5的阶乘这个例子进行一下剖析&#xff0c;看一看他…

函数递归调用(c语言为例)

定义:在调用一个函数的过程中又出现直接或间接调用该函数本身&#xff0c;称为函数的递归调用。 int fun(int x){return fun(x2);//在执行f函数的过程中又要调用f函数 } 在调用函数f的过程中&#xff0c;又要调用f函数&#xff0c;这是直接调用本函数&#xff0c;如图1 图 1 如…

【C语言】函数递归(详解)

文章目录 函数递归什么是递归&#xff1f;递归的俩个必要条件代码引例1栈溢出&#xff08;Stack Overflow&#xff09; 合理使用递归代码引例3代码引例4解释要合理使用递归 结束语 函数递归 程序调用自身的编程技巧称为递归 recursion&#xff09; 函数自己调用自己就是递归 …

php熔断,微服务-API熔断原理

伴随微服务&#xff0c;出现了很多新鲜的名词&#xff0c;其实剥去外衣并没有那么高大上。 今天要谈到的&#xff0c;叫做”熔断”&#xff0c;一个典型的开源实现是Hystrix(JAVA实现)。 背景 一个分布式系统中&#xff0c;服务间互相调用错综复杂&#xff0c;假设某个基础服务…

接口熔断 java_SpringCloud(五):服务熔断与熔断监控

一、概念部分 1.什么是熔断器? 熔断,就是断开与服务器的连接,熔断器是在服务不可用的时候主动断开,以免造成更多的雪崩效应,他是保护服务高可用的最后一道防线。 2.为什么需要熔断器? 为保证服务高可用,最先想到的是服务集群,但集群并不能完全的保证服务高可用, 当某个…

分布式系统服务熔断

# 服务熔断 - “熔断器”本身是一种开关装置&#xff0c;当某个服务单元发生故障之后&#xff0c;通过断路器(hystrix)的故障监控&#xff0c;某个异常条件被触发&#xff0c;直接熔断整个服务。向调用方法返回一个符合预期的、可处理的备选响应(FallBack),而不是长时间的等待或…

微服务熔断

https://mp.weixin.qq.com/s/cxd0Fol4BBzx4v2qm-hlwQ 我这篇文章来的晚了些&#xff0c;因为hystrix已经进入维护模式。但已经有非常多的同学入坑了&#xff0c;那么本篇文章就是及时雨。本文将说明熔断使用的一些注意事项&#xff0c;可能会细的让你厌烦。 前半段&#xf…

【服务熔断】服务熔断完整说明

文章目录 1.创始人文档2.熔断机制3.原理总结4.断路器打开之后5.服务监控hystrixDashboarda.七色b.一圈c.一线d.单个图说明e.多个图说明 1.创始人文档 大神文档 2.熔断机制 熔断机制概述 熔断机制是应对雪崩效应的一种微服务链路保护机制。当扇出链路的某个微服务出错不可用…

Istio的熔断

一、理解熔断   熔断&#xff08;Circuit Breaker&#xff09;&#xff0c;原是指当电流超过规定值时断开电路&#xff0c;进行短路保护或严重过载时的一种保护机制。后来熔断也广泛应用于金融领域&#xff0c;指当股指波幅达到规定的熔断点时&#xff0c;交易所为控制风险采…

hystrix熔断

熔断操作放在服务提供层&#xff0c;是在类的方法上&#xff0c;而降级是在消费者的接口层面设置 1.加入jar包 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-hystrix</artifactId><version&…