传染病模型知识储备

一、模型中的人群分类

S (Susceptible),易感者,指缺乏免疫能力健康人,与感染者接触后容易受到感染;

E (Exposed),暴露者 ,指接触过感染者但暂无传染性的人,可用于存在潜伏期的传染病;

I (Infectious),患病者,指有传染性的病人,可以传播给 S,将其变为 E 或 I ;

R (Recovered),康复者,指病愈后具有免疫力的人,如是终身免疫性传染病,则不可被重新变为 S 、E 或 I ,如果免疫期有限,就可以重新变为 S 类,进而被感染。

由于个体之间的接触而导致疾病传播的概率为β,疾病仅在感染个体和易感个体之间进行接触时才会以概率β将疾病传染给易感个体。在时刻t,易感个体的比例为S(t)/N,感染个体的数量为I(t),一次,易感个体的数量将以如下变化率减少ds/dt = -β*S(t)I(t)/N

二、四类传染病模型

艾滋传染模型(SI)

普通流感模型(SIS)

急性传染病模型(SIR)及其扩展模型(SIRS)

带潜伏着的恶性传染病模型(SEIR)

 1.艾滋传染模型(SI):

此情形所考虑的情形为:易感染者被感染

模型的建立:

 

  2.普通流感模型(SIS):

 由于流感病毒容易变异,所以没有能杜绝流感的体质存在,则该 模型为:感染,恢复为易感者,再感染,不断循环。

该模型与上一个模型的区别即就是感染者可以恢复为易感者,再次被感染

3.急性传染病模型及(SIR)其拓展模型(SIRS) 

这种模型刻画的传染病为:发病迅速,康复后含抗体不再被感染(单程),如:天花、麻 疹、腮腺炎等。

 如果再添加一个条件:将单程变为循环型,康复者可能再一次被感染。

 

4. 带潜伏期的恶性传染病模型(SEIR 

 这种模型刻画的传染病为:传染潜伏,确认感染,治疗康复后含抗体不再被感染(单程),如:SARS、SARI等。

 进⼀步需要考虑的问题:(⾼年级学⽣建议考虑⑥ - ⑨)

① 如果模型中“康复”的群体会再次被感染;
② 如果模型中含因病死亡的群体;
③ 如果潜伏者的潜伏期长短不⼀;
④ 如果含感染者分为隔离和未被隔离;
⑤ 如果潜伏者中有直接自己痊愈群体;
⑥ 如果潜伏者分为疑似并感染和疑似非感染(变系数问题);
⑦ 如果含超级感染者;
⑧ 如果已知目前的数据,可否反推出初期感染⼈数和日期;
⑨如果已知目前的数据,可否反推传播源;
通过对上述模型的完善,可以预测⼀个封闭地区(如:目前的湖北 省或武汉市)的疫情爆发情况:最⼤感染峰值、感染⼈数、治愈⼈数等。
但对于未实⾏封闭前的时期,我们就需要将地区看成图的节点,然 后需要考虑:
⑩节点之间的 流动 ,即区域之间的传染。 (注:区域间传染可考虑马尔科夫链、复杂⽹络等)

 三、传染病模型的求解

1.SI的求解

 (1)解析解

 2.用MATLAB求解LOGISTIC模型

Matlab求常微分方程组的解析解_y=520(2sinM-sin2M)的博客-CSDN博客_matlab求解微分方程组解析解

(1)dsolve 函数

dsolve函数用于求常微分方程组的精确解,也称为常微分方程的符号解。如果没有初始条件或边界条件,则求出通解;如果有,则求出特解。

1)函数格式  

Y = dsolve(‘eq1,eq2,…’ , ’cond1,cond2,…’ , ’Name’)

其中,‘eq1,eq2,…’:表示微分方程或微分方程组;

            ’cond1,cond2,…’:表示初始条件或边界条件;

            ‘Name’:表示变量。没有指定变量时,matlab默认的变量为t;

利用dsolve函数进行求解


(2)diff函数

diff函数式用于求导数和差分的.

无论是求导数还是差分,其原理是一样的.

这里简单介绍下其用法:

对连续求导

diff(X) , 求函数X的一阶导数;

diff(X,n) , 求函数X的n阶导 (n是具体整数);

diff(X,变量名), 求函数X的偏导数(对谁求偏导数,变量名就是谁)

diff(X,变量名,n) ,求函数X的n阶偏导数。

(3)代码解析

>> syms a b y(t) y0
>> eqn=diff(y,t)==a*y*(1-b*y);
>> cond=y(0)==y0;
>> ySol(t)=dsolve(eqn,cond)

 3.解的大致图像



4.数值解

(1)ode

ode是Matlab专门用于解微分方程的功能函数。该求解器有变步长(variable-step)和定步长(fixed-step)两种类型。不同类型有着不同的求解器,其中ode45求解器属于变步长的一种,采用Runge-Kutta算法;其他采用相同算法的变步长求解器还有ode23。

ode45表示采用四阶-五阶Runge-Kutta算法,它用4阶方法提供候选解,5阶方法控制误差,是一种自适应步长(变步长)的常微分方程数值解法,其整体截断误差为(Δx)^5。解决的是Nonstiff(非刚性)常微分方程

ode45是解决数值解问题的首选方法,若长时间没结果,应该就是刚性的,可换用ode15s试试。

[t,y]=ode45(ode45,tspan,y0):

ode45- MathWorks 中国

(2)数值解

是相对于解析解而言退而求其次的说法,或者解析解很复杂而取得足够精确的位数的解。

解析解,是指通过严格的公式所求得的解。

数值解,是指给出一系列对应的自变量,采用数值方法求出的解。

解析法是常见的微积分技巧,如分离变量法等。解析解为一封闭形式的函数,因此对任一独立变量,皆可将其代入解析函数求得正确的相依变量。因此,解析解也称为闭式解。

当无法由微积分技巧求得解析解时,便只能利用数值分析的方式来求得其数值解了,数值方法变成了求解过程重要的媒介。

(3)龙格库塔法

是用于非线性常微分方程的解的重要的一类隐式或显式迭代法。

1)算法

2)原理

3) 程序

function [T,X,dX] = ODE_RK4( Hfun,t,h,x0 )
% [T,X] = ODE_RK4( Hfun,t,h,x0 ) 4阶龙格-库塔法求解常微分方程
% Hfun为描述状态导数的函数句柄,格式为 dX = Hfun( t,X )
% 必须保证返回dX的格式为行向量
% t为时间节点,可为标量,时间范围为 T = 0:h:t
%             长2向量 ,时间范围为 T = t(1):h:t(2)
%             向量 ,时间范围为 T = t
% h为时间步长,在t的前两种情况下,必须给出h具体值
% 直接给出时间节点t时,h可用[]或任意值占位
% x0为状态量初始值  
% 算法:
%      K1  = Hfun( t(k-1),X(k-1) ) =  dX(k-1)
%      K2 =  Hfun( t(k-1)+h/2,X(k-1)+h*K1/2 )
%      K3 =  Hfun( t(k-1)+h/2,X(k-1)+h*K2/2 )
%      K4 =  Hfun( t(k-1)+h  ,X(k-1)+h*K3 )
%    X(k) =  X(k-1) + (h/6) * (K1 + 2*K2 + 2*K3 +K4)

 (4)MATLAB解析

  3.SIR的求解

  

#传染病模型为常微分方程模型

注意

本文题目来源为上海财经⼤学数学学院

  • 11
    点赞
  • 136
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MATLAB中,传染病模型是一种数学模型,通常用于研究传染病的传播动态,如SIR(Susceptible-Infected-Recovered)模型、SEIR(Susceptible-Exposed-Infected-Recovered)模型等。这些模型可以帮助研究人员预测疫情的发展趋势、评估防疫策略的效果,以及优化资源分配。 SIR模型是最基础的模型,分为三个状态: 1. **易感者(Susceptible, S)**:未感染的人群,能够接触到感染者而被传染。 2. **感染者(Infected, I)**:已经感染但尚未康复的人。 3. **恢复者(Recovered, R)**:已经从疾病中康复,且对疾病免疫的人。 SEIR模型则增加了一个暴露(Exposed, E)阶段,表示那些已感染但还未表现出病症的人。 在MATLAB中,你可以使用微分方程来描述这些模型,每个状态变量的变化率是基于与其他状态的相互作用。构建这样的模型通常涉及以下步骤: - 定义模型参数,如初始条件(感染者数量、易感者数量等)、传染率、恢复率等。 - 编写微分方程系统,描述各个状态随时间的变化。 - 使用`ode45`或其他数值解算器求解这些方程。 - 可视化结果,比如绘制感染曲线和恢复曲线,分析不同干预措施的影响。 如果你对具体的MATLAB代码或者如何使用这些模型进行模拟感兴趣,我可以提供一些基本示例或指导步骤。你想了解哪部分内容?例如: 1. 如何在MATLAB中定义和求解SIR模型? 2. SEIR模型的微分方程是什么? 3. MATLAB中有哪些内置函数或工具可以用来绘制模型结果? 4. 我应该如何设置模型参数以反映特定疾病的特性?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值