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

article/2025/9/25 13:33:11

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

先从最简单的看起,

指数传播模型

为了简化模型,我们做如下假设

  • 所研究区域无人员流动,无迁入迁出,不考虑出生率死亡率,区域总人口保持不变 。
  • 患病人数N(t)是随时间t的连续可微函数。
  • 每个病人在单位时间内传染到的人数为为常数p。

模型建立 

设t时刻患病人数为N(t),t+▲t时刻患病人数为 N(t+▲t),在▲t的时间段内,患病人数为pN(t)▲t.那么就有

由于N(t)连续可微,将上述方程两边同时除以 ▲t,并且▲t趋近于0,得到微分方程

 求得此模型的解析解为

适用阶段:

因为该模型表示患病人数是呈现指数型增长的,在传染病爆发初期,由于不懂得如何预防,不懂得病毒的传染方式等原因,病毒传播较快,该指数模型较为适合。

模型缺点与改进:

指数模型在t趋近与无穷时患病人数是无限增加的,这显然是不可能的,因为当健康人数减少时,单位时间内新增人数肯定是会减少的。由此我们把人均分为感染者和被感染者,建立下面的SI模型。

SI模型

 为了简化模型,我们做如下假设,

  • 和指数模型一样,依旧假设区域总人口N保持不变。
  • 总人群分为健康者(易感染者)和已感染者,设t时刻健康者(易感染者)和已感染者占总人口比例分别为s(t)和i(t),s(t)+i(t)=1.
  • 每个病人单位时间(每天)接触平均人数为p,称为日感染率,当接触到的人为健康者,就会将其感染为病人。
  • 总人数保持不变,无论是健康者还是病人,都不会死亡。

模型建立 

在t到和t+▲t时刻,患病人数占据总人口比例分别为i(t),i(t+▲t),所以在这▲t时间段内,新增患病人数为Ni(t+▲t)-Ni(t).

由于病人接触的人可能为病人也可能为正常人,因此1个病人单位时间内可使ps(t)个健康人变为病人,t时刻病人总数是Ni(t),那么在▲t时间新增病人数为ps(t)Ni(t)▲t.

根据上面两条得到Ni(t+▲t)-Ni(t)=ps(t)Ni(t)▲t即

 令▲t趋近于0,得到

 因为s(t)+i(t)=1,

 设t=0时,患病比例为i(0)=i0,则SI模型为

 求解方程得到解析解

 i(t)是患病人数占总人数比例,很明显t趋近于无穷时患病比例趋近于1,即所有人都被感染。

SI模型虽然把人群分为了健康者和病人,优化了指数模型中病人不断增加的缺点,但是SI模型并未考虑到病人可以被治愈,因此我们建立下面的SIS模型。

SIS模型

为了简化模型,做如下假设

  • 区域总人口不变
  • 把总人群分为健康者(易感染者)和已感染者,设t时刻健康者(易感染者)和已感染者占总人口比例分别为s(t)和i(t),s(t)+i(t)=1.
  • 每个病人单位时间(每天)接触平均人数为p,称为日感染率,当接触到的人为健康者,就会将其感染为病人。
  • 病人可以被治愈,每天被治愈人数占总人口比例为u,病人被治愈后依然可以被二次感染。

 模型建立

只需在SI模型基础上减去被治愈人数 

 

解析解为

 

 令传染强度为

得到微分方程

 

 解析解

 显然,传染强度是一个阈值

  • 传染强度小于等于1,病人日接触率小于等于病人每日被治愈比例,即新增病人小于被治愈病人,随着时间推移,所有病人终究会被治愈。
  • 传染强度大于于1,病人日接触率大于等于病人每日被治愈比例,即新增病人多于被治愈病人,随着时间推移,总有一定人口被感染成病人。

SIS假设病人可以被二次感染,但是现实中有例如天花,麻疹,肝炎等病毒在感染后会产生非常强的抗体,这些人不会再被感染,即不属于易感染者也不属于病人,这就需要用我们下面的SIR模型了。

SIR模型 

为了简化模型,做如下假设,

把人群分为易感染者,病人,和有不会被感染的移除者(退出系统) ,t时刻这三种人占总人口比例为s(t),i(t),r(t),s(t)+i(t)+r(t)=1.病人日接触率为p,日治愈率为u,总人口N保持不变。

模型建立

移出者,患者,健康者人数分别为

 

 建立微分方程传染病预测的SIR

SIR模型是多个相互关联的系统变量之间的常微分方程组,属于典型的系统动力学模型。

如果病毒具有潜伏期,那么需要多考虑一类人为潜伏者,建立SEIR模型。 

 

 

 


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

相关文章

数学模型:传染病模型

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

传染病模型知识储备

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

传染病模型-SIR

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

服务熔断降级

之前给大家讲了很多服务之前的关系&#xff0c;今天主要给大家介绍&#xff0c;当服务出现问题时&#xff0c;我们该如何解决。 首先我们先进行一些场景分析&#xff1a; 场景一 服务提供端提供了A、B、C、D 4个服务&#xff0c;服务调用方调用服务时&#xff0c;D服务出现了…