当我们描述实际对象的某些特性随时间(空间)而演变的过程、分析它的变化规律、预测它的未来形态、研究它的控制手段时。通常要建立对象的动态模型。在许多实际问题中,当直接导出变量之间的函数关系较为困难时,但导出包含未知函数的导数或微分的关系较为容易时,可用建立微分方程模型的方法来研究该问题。
把形形色色的实际问题化为微分方程的定解问题,大体上可以分为以下几步:
(1)根据实际要求确定要研究的量(自变量、未知函数、必要的参数等)并确定坐标系。
(2)找出这些量所满足的基本规律(物理的、几何的、化学的或生物学的等)
(3)运用这些规律列出方程和定解条件。
列方程常见的方法有以下几种:
(1)按规律直接列方程。数理化等学科中常见的自然规律,可直接由微分方程描述,如牛顿第二定律加速度和速度位移之间的微分关系。
(2)微元分析法与任意区域上取积分的方法。当利用变量的微元之间的关系式来表达某种现象满足的规律时。对于这类问题无法直接列出自变量和未知函数及其变化率之间的关系式,而是通过微元分析法,利用已知的规律建立一些变量的微元之间的关系式,然后通过取极限的方法得到微元方程,或等价的通过任意区域上取积分的方法来建立微分方程。
(3)模拟近似法。通过大量的实验数据提出各种假设模拟某种现象,利用适当的数学方法列出微分方程。
场景:20世纪的一段时间内人口增长速度过快;老龄化提速,性别比例失调等凸显,开始调整人口政策
应用:建立数学模型描述人口发展规律,制定积极、稳定人口政策的前提
模型基本前提–增长率 r r r在 k k k年内保持不变。
不符合19世纪多数地区的人口增长规律。只适用于短时期。
实际上只有在群体总数不太大时才合理,当总数增大时,生物群体的各成员之间由于有限的生存空间,资源,食物等原因可能发生竞争的情况。人口净增长率不可能始终保持常熟,它应当与人口数量有关。
人口增长到一定数量后增长率下降的原因–资源、环境等因素对人口增长的阻滞作用,且阻滞作用随人口增加而变大。
指数增长模型和logistic模型均为对微分方程所做的模拟近似方程。前一模型假设了增长率r为一常数,后一模型则假设环境只能供养一定数量的种群,从而引入了一个竞争项。指数增长模型呈现的是J型增长,只适应于短期内,并无外界因素影响。而logistic模型呈现S型,适应于中长期且有外界因素影响。
阻滞增长模型的形式如下:
{ d x d t = r ( 1 − x x m ) x x ( t 0 ) = x 0 \begin{cases} \frac{dx}{dt}=r(1-\frac{x}{x_m})x\\ x(t_0)=x_0 \end{cases} {dtdx=r(1−xmx)xx(t0)=x0
求解该微分方程
ans=dsolve('Dx=r*(1-x/xm)*x','x(t0)=x0','t');
latex(ans);%将表达式转化为latex语言
x ( t ) = x 0 x m e r ( t − t 0 ) x m − x 0 + x 0 e r ( t − t 0 ) x(t)=\frac{x_{0}\,\mathrm{x_m}\,{\mathrm{e}}^{r\,\left(t-t_{0}\right)}}{\mathrm{x_m}-x_{0}+x_{0}\,{\mathrm{e}}^{r\,\left(t-t_{0}\right)}} x(t)=xm−x0+x0er(t−t0)x0xmer(t−t0)
其中 x m x_m xm和 r r r是待拟合参数,使用matlab的拟合工具箱,对上式进行非线性最小二乘拟合。
clc;clear
year=1790:10:2000;
population = [3.9,5.3,7.2,9.6,12.9,17.1,23.2,31.4,38.6,50.2,62.9,76.0,92.0,106.5,123.2,131.7,150.7,179.3,204.0,226.5,251.4,281.4];
cftool %拟合工具箱
依次点击拟合工具箱的菜单栏最左边的文件—Generate Code,可以得到一个未命名的脚本文件,将该脚本保存到工作文件夹中,调用函数得到参数的拟合值和预测的结果。
clc;clear
year=1790:10:2000;
population = [3.9,5.3,7.2,9.6,12.9,17.1,23.2,31.4,38.6,50.2,62.9,76.0,92.0,106.5,123.2,131.7,150.7,179.3,204.0,226.5,251.4,281.4];
%cftool %拟合工具箱
[fitresult, gof] = createFit(year, population);
%r = 0.02735 (0.0265, 0.0282)
%xm = 342.4 (311, 373.8)
t = 2001:2030;
xm = 342.4;
r = 0.02735;
predictions = xm./(1+(xm./3.9-1).*exp(-r.*(t-1790))); % 计算预测值
figure(2)
plot(year,population,'o',t,predictions,'.') % 绘制预测结果图
disp(predictions) % 预测的数值
如果一个自然环境中存在两个或两个以上的种群,它们之间的关系大致可分为以下几种:相互竞争,相互依存,弱肉强食(食饵与捕食者),也可能毫无关系。
由两条一阶非线性微分方程组成。经常用来描述生物系统中,捕食者与猎物进行互动时的动力学,也就是两者族群规模的消长。
Volterra模型(沃尔泰拉模型)
食饵(即猎物)和捕食者在时刻t的数量分别记为 x 1 ( t ) x_1(t) x1(t)和 x 2 ( t ) x_2(t) x2(t).因为大海中资源丰富,可以假设如果食饵独立生存则将以增长率 r 1 r_1 r1按指数规律增长,即有 d x 1 d t = r 1 x 1 \frac{dx_1}{dt}=r_1x_1 dtdx1=r1x1。捕食者的存在使得食饵的增长率降低,假设降低的程度正比于捕食者的数量,于是 x 1 ( t ) x_1(t) x1(t)满足方程:
d x 1 d t = x 1 ( r 1 − λ 1 x 2 ) \frac{dx_1}{dt}=x_1(r_1-\lambda_1x_2) dtdx1=x1(r1−λ1x2)
其中:比例系数 λ 1 \lambda_1 λ1反应捕食者掠夺食饵的能力。
捕食者离开食饵无法生存,若假设它独自存在时的死亡率为r2,即 d x 2 d t = − r 2 x 2 \frac{dx_2}{dt}=-r_2x_2 dtdx2=−r2x2,而食饵为它提供事物的作用相当于使其死亡率降低。假设这个作用与食饵数量成正比,于是 x 2 ( t ) x_2(t) x2(t)满足方程:
d x 2 d t = x 2 ( − r 2 + λ 2 x 1 ) \frac{dx_2}{dt}=x_2(-r_2+\lambda_2x_1) dtdx2=x2(−r2+λ2x1)
其中:比例系数 λ 2 \lambda_2 λ2反映食饵对捕食者的供养能力。
这两个方程是在没有人工捕获情况下的自然环境中食饵与捕食者之间的制约关系。
考虑单个种群在自然资源有限的环境下生存时,常用阻滞增长模型来描述它的数量的演变过程,即 d x ( t ) d t = r x ( 1 − x N ) \frac{dx(t)}{dt}=rx(1-\frac{x}{N}) dtdx(t)=rx(1−Nx),其中r是增长率,N是该环境下能容纳的最大数量。
假设甲乙两个种群是相互竞争的关系,我们定义以下符号: x 1 ( t ) , x 2 ( t ) x_1(t),x_2(t) x1(t),x2(t)分别是甲乙两个种群的数量; r 1 , r 2 r_1,r_2 r1,r2分别是甲乙两个种群的固有增长率; N 1 , N 2 N_1,N_2 N1,N2分别是甲乙两个种群的最大容量; x 1 ( 0 ) , x 2 ( 0 ) x_1(0),x_2(0) x1(0),x2(0))表示甲乙两个的种群的初始数量。
有甲乙两个种群,它们独自生存时数量变化均服从Logistic规律:
d x d t = r 1 x ( 1 − x N 1 ) d y d t = r 1 y ( 1 − y N 1 ) \frac{d x}{d t}=r_{1} x\left(1-\frac{x}{N_{1}}\right)\\ \frac{d y}{d t}=r_{1} y\left(1-\frac{y}{N_{1}}\right) dtdx=r1x(1−N1x)dtdy=r1y(1−N1y)
两种群在一起生存时,乙对甲的阻滞作用与乙的数量成正比;甲对乙有同样作用。
d x d t = r 1 x ( 1 − x N 1 − σ 1 y N 2 ) d y d t = r 2 y ( 1 − y N 2 − σ 2 x N 1 ) \begin{equation} \begin{aligned} &\frac{d x}{d t}=r_{1} x\left(1-\frac{x}{N_{1}}-\sigma_{1} \frac{y}{N_{2}}\right) \\ &\frac{d y}{d t}=r_{2} y\left(1-\frac{y}{N_{2}}-\sigma_{2} \frac{x}{N_{1}}\right) \end{aligned} \end{equation} dtdx=r1x(1−N1x−σ1N2y)dtdy=r2y(1−N2y−σ2N1x)
其中 σ 1 \sigma_1 σ1的含义是对于供养甲的资源来说,单位数量的乙(相对N2)的消耗为单位数量甲(相对N1)消耗的 σ 1 \sigma_1 σ1倍, σ 2 \sigma_2 σ2同理。 σ 1 \sigma_1 σ1和 σ 2 \sigma_2 σ2一般是相互独立的。只有在甲乙两个种群的食物选择以及对食物的偏好完全相同时,有 σ 1 ∗ σ 2 = 1 \sigma_1*\sigma_2=1 σ1∗σ2=1.
自然界中处于同一环境下的两个种群相互依存的现象是很多的。相互依存是指甲乙一起生存时相互提供食物或提供繁殖的途径。如植物与昆虫之间,昆虫可以帮助植物充分授粉,而昆虫也在此过程中获得食物(花粉)。人类与人工饲养的牲畜之间也有类似的关系。
现在只考虑两个种群的情况,甲乙两种群的相互依存有三种形式:
1)甲可以独自生存.乙不能独自生存(或者反过来);
2)甲乙均可以独自生存;
3)甲乙均不能独自生存。
其中情况三的甲乙最终都会走向灭绝。
传染病的基本数学模型,研究传染病的传播速度、空间范围、传播途径、动力学机理等问题,以指导对传染病的有效地预防和控制。常见的传染病模型按照传染病类型分为 SI、SIR、SIRS、SEIR 模型等,按照传播机理又分为基于常微分方程、偏微分方程、网络动力学的不同类型。
解决步骤 :描述传染病的传播过程、分析受感染人数的变化规律、预报传染病高发期到来的时刻、按照传播过程的一般规律,用机理分析方法建立模型。
传染病模型中通用的符号系统
(1)易感者(S,Susceptible):潜在的可感染人群
(2)潜伏者(E,Exposed):已经被传染但没表现出来的人群
(3)感染者(I,Infected):确诊感染的人群
(4)康复者(R,Recovered):已痊愈的感染者,体内含抗体。也可解释为移出状态(removed),表示脱离系统不再受到传染病影响的人(痊愈,死亡或被有效隔离的人)。
将人群分为两类:易感染人群(S)和已感染者(I),建立如下微分方程:
d S d t = − β S I , d I d t = β S I \frac{d S}{d t}=-\beta S I, \quad \frac{d I}{d t}=\beta S I dtdS=−βSI,dtdI=βSI
这里 β 为传染率。在疾病传播期内,所考察地区的总人数 S(t) + I(t) = K 保持不变。利用这一守恒关系得:
d I d t = r I ( 1 − I K ) , r = β K \frac{d I}{d t}=r I\left(1-\frac{I}{K}\right), \quad r=\beta K dtdI=rI(1−KI),r=βK
这是一个逻辑斯谛模型。其指数增长率 r = βK 正比于总人数 K 和传染率 β。这个模型有两个主要结论:
(1)指数增长率 r 正比于总人数。当传染率 β 一定时,一定染病地区内的总人数 K 越多,传染病爆发的速度越快,说明了隔离的重要性;
(2)在 I = K/2 时,病人数目 I 增加得最快,是医院的门诊量最大的时候,医疗卫生部门要重点关注。
SI模型没有考虑到疾病可治愈的情况
某些疾病容易被治愈,但是却容易发生变异,例如流感病毒。假设从某种疾病恢复后仍不能产生抗体,即未来仍可能患病,即我们可能会经历:感染,恢复为易感者,再感染,不断循环下去的过程。我们可以建立SIS模型来描述这一过程,假定总人口数为N,且不考虑因病死亡和自然出生死亡,单位时间内感染人数BSI/N,由感染状态Ⅰ恢复为易感者状态S的恢复率为α.对应的微分方程组为:
{ d S d t = α I − β S × I N d I d t = β S × I N − α I \left\{\begin{array}{l} \frac{\mathrm{dS}}{\mathrm{dt}}=\alpha \mathrm{I}-\beta \frac{\mathrm{S} \times \mathrm{I}}{\mathrm{N}} \\ \frac{\mathrm{dI}}{\mathrm{dt}}=\beta \frac{\mathrm{S} \times \mathrm{I}}{\mathrm{N}}-\alpha \mathrm{I} \end{array}\right. {dtdS=αI−βNS×IdtdI=βNS×I−αI
考虑到病人有免疫系统,则病人治愈后不会再得该传染病。即病人治愈后移出感染系统,称为移出者。
d S d t = − β I S N , d I d t = β I S N − γ I , d R d t = γ I \frac{d S}{d t}=-\beta I \frac{S}{N}, \quad \frac{d I}{d t}=\beta I \frac{S}{N}-\gamma I, \quad \frac{d R}{d t}=\gamma I dtdS=−βINS,dtdI=βINS−γI,dtdR=γI
总人数 S(t) + I(t) + R(t) = 常数N。这里假设病人康复后就获得了永久免疫,因而可以移出系统。对于致死性的传染病,死亡的病人也可以归入 R 类。
如果模型中康复者R可能会以α的转移率再次变为易感者S,那我们应该如何进行建模?事实上这个就可以看作SIS模型和SIR模型的一个融合,我们将其命名为SIRS模型,当不考虑出生和死亡时,总人口数N=S+Ⅰ+R保存不变。对应的微分方程组为:
{ d S d t = − β S × I N + α R d I d t = β S × I N − γ I d R d t = γ I − α R \left\{\begin{array}{l} \frac{\mathrm{dS}}{\mathrm{dt}}=-\beta \frac{\mathrm{S} \times \mathrm{I}}{\mathrm{N}}+\alpha \mathrm{R} \\ \frac{\mathrm{dI}}{\mathrm{dt}}=\beta \frac{\mathrm{S} \times \mathrm{I}}{\mathrm{N}}-\gamma \mathrm{I} \\ \frac{\mathrm{dR}}{\mathrm{dt}}=\gamma \mathrm{I}-\alpha \mathrm{R} \end{array}\right. ⎩ ⎨ ⎧dtdS=−βNS×I+αRdtdI=βNS×I−γIdtdR=γI−αR
总人数 S(t) + I(t) + R(t) = N 为常数。参数 α 决定康复者获得免疫的平均保持时间。系统有两个不动点 S = N(I = R = 0)或 S = γ / β(I / R = α / γ)。前者表示疾病从研究地区消除,而后者则是流行状态。消除流行病的参数条件是 γ > βN。若做不到,则要尽量减小 α 而增加 γ,使更多人保持对该疾病的免疫力。
某些疾病具有潜伏期,被传染的人群会进入潜伏期,我们称为潜伏者E,潜伏者转换为感染者有一个速率σ(sigma),σ在数学意义上等价于平均潜伏期时长的倒数。在最简单的SEIR模型中,潜伏者E不具有传染性,从SIR模型很容易能够拓展得到SEIR模型:
{ d S d t = − β S × I N ′ d E d t = β S × I N ′ − σ E d I d t = σ E − γ I d R d t = γ I , N ′ = S + E + I \left\{\begin{array}{l} \frac{\mathrm{dS}}{\mathrm{dt}}=-\beta \frac{\mathrm{S} \times \mathrm{I}}{\mathrm{N}^{\prime}} \\ \frac{\mathrm{dE}}{\mathrm{dt}}=\beta \frac{\mathrm{S} \times \mathrm{I}}{\mathrm{N}^{\prime}}-\sigma \mathrm{E} \\ \frac{\mathrm{dI}}{\mathrm{dt}}=\sigma \mathrm{E}-\gamma \mathrm{I} \\ \frac{\mathrm{dR}}{\mathrm{dt}}=\gamma \mathrm{I} \end{array}, N^{\prime}=S+\mathrm{E}+\mathrm{I}\right. ⎩ ⎨ ⎧dtdS=−βN′S×IdtdE=βN′S×I−σEdtdI=σE−γIdtdR=γI,N′=S+E+I
仍有守恒关系 S(t) + E(t) + I(t) + R(t) = 常数,病死者可归入 R 类。潜伏期康复率 γ1 和患者康复率 γ2 一般不同。潜伏期发展为患者的速率为 α。与 SIR 模型相比,SEIR 模型进一步考虑了与患者接触过的人中仅一部分具有传染性的因素,使疾病的传播周期更长。疾病最终的未影响人数 S∞ 和影响人数 R∞ 可通过数值模拟得到。
传染病模型画状态转换图;