常微分方程I ODE的例子3 生态学模型:Malthus增长模型、Lotka-Volterra模型

在数学生态学中,建立常微分方程模型的思路主要就是:
变化率=输入−输出变化率=输入-输出变化率=输入−输出

例1 Malthus增长模型
用x(t)x(t)x(t)表示population of a species at time t,则
x˙=rx,r=b−d\dot{x}=rx,r=b-dx˙=rx,r=b−d

其中bbb表示birth rate,ddd表示death rate,rrr表示intrinsic growth rate,这个方程的解是
x(t)=x0er(t−t0)x(t)=x_0e^{r(t-t_0)}x(t)=x0​er(t−t0​)

其中(t0,x0)(t_0,x_0)(t0​,x0​)是初值。Malthus的论断是人口增长是等比型的,粮食的增长是等差型的,所以随着时间推移,人均粮食逐渐降低,当人口增长到人均粮食位于养活一个人的最低水平时,社会就陷入了Malthus陷阱,这时的均衡是人口较多,人均粮食刚刚够,要打破这个陷阱,一种可能性是引入新的作物。

例2 Lotka-Volterra模型
Malthus的模型并不能完全cover他的论述,我们可以对他的模型做一些简单修正。Verhulst建立了Logistics Equation,在Malthus增长模型引入了资源约束,从而把种群内竞争引入了模型
x˙=rx−ax2\dot{x}=rx-ax^2x˙=rx−ax2

Lotka-Volterra模型在Logistics Equation的基础上引入了食物链,即同时考虑捕食者与被捕食者的population,并加入交互项表示它们之间的捕食关系:

{x˙=ax−bxyy˙=cxy−dy\begin{cases} \dot{x} = ax - bxy \\ \dot{y}=cxy-dy \end{cases}{x˙=ax−bxyy˙​=cxy−dy​

这里的aaa表示被捕食者的增长率,bbb表示被捕食率,ccc表示捕食者因为捕食获得的population增益,ddd表示捕食者的死亡率;

另一种Lotka-Volterra模型是
{x˙=rx(1−xk)−bxyy˙=cxy−dy\begin{cases} \dot{x} = rx(1-\frac{x}{k})-bxy \\ \dot{y}=cxy-dy \end{cases}{x˙=rx(1−kx​)−bxyy˙​=cxy−dy​

第一个方程的含义是假设环境资源有限,那么被捕食者自由增长是Logistics的,在此基础上再引入捕食者的效应bxybxybxy;

还有一种Lotka-Volterra模型是关于物种间竞争的,用x,yx,yx,y表示两个物种的population,如果两个物种间不存在竞争,则
{x˙=r1x(1−xk1)y˙=r2x(1−xk2)\begin{cases} \dot{x} = r_1x(1-\frac{x}{k_1}) \\ \dot{y}=r_2x(1-\frac{x}{k_2}) \end{cases}{x˙=r1​x(1−k1​x​)y˙​=r2​x(1−k2​x​)​

当存在物种间竞争时,引入竞争效应∝xy\propto xy∝xy,

{x˙=r1x(1−xk1)−αxyy˙=r2x(1−xk2)−βxy\begin{cases} \dot{x} = r_1x(1-\frac{x}{k_1})-\alpha xy \\ \dot{y}=r_2x(1-\frac{x}{k_2})-\beta xy \end{cases}{x˙=r1​x(1−k1​x​)−αxyy˙​=r2​x(1−k2​x​)−βxy​

例3 Rosenzweig-MacArthur模型
这个模型也是考虑捕食者-被捕食者关系的,在Lotka-Volterra模型中,关于捕食者的假设是不合理的,因为捕食者的population增长率在去掉死亡率之后关于捕食的增益是线性的,也就是说假设有无限的被捕食者,捕食者的population会指数增长。但是我们知道能量沿食物链的传播是有损耗的,所以捕食者的增长存在某个上限,假设这个上限为mmm,并且
y˙y=mxa+x→m,ifx→∞\frac{\dot{y}}{y}=\frac{mx}{a+x} \to m,\ if \ x \to \inftyyy˙​​=a+xmx​→m, if x→∞

y˙y\frac{\dot{y}}{y}yy˙​​是per capita growth rate,aaa是half situation constant,它的含义可以对应Logistics增长中的增长率最快的点。

于是
{x˙=r1x(1−xk1)−1ηmxya+xy˙=mxya+x−dy\begin{cases} \dot{x} = r_1x(1-\frac{x}{k_1})-\frac{1}{\eta} \frac{mxy}{a+x} \\ \dot{y}=\frac{mxy}{a+x}-dy \end{cases}{x˙=r1​x(1−k1​x​)−η1​a+xmxy​y˙​=a+xmxy​−dy​

这里的ddd仍然表示死亡率,η\etaη则表示yield constant,简单理解就是捕食者通过捕食一只被捕食者,可以创造出η\etaη只捕食者。

例4 简易食物链模型
假设x,y,zx,y,zx,y,z分别表示一级、二级、三级消费者的population,则
{x˙=r1x(1−xk1)−1η1m1xya1+xy˙=m1xya1+x−d1y−1η2m2yza2+yz˙=m2yza2+y−d2z\begin{cases} \dot{x} = r_1x(1-\frac{x}{k_1})-\frac{1}{\eta_1} \frac{m_1xy}{a_1+x} \\ \dot{y}=\frac{m_1xy}{a_1+x}-d_1y-\frac{1}{\eta_2} \frac{m_2yz}{a_2+y} \\ \dot{z} = \frac{m_2yz}{a_2+y}-d_2z \end{cases}⎩⎪⎨⎪⎧​x˙=r1​x(1−k1​x​)−η1​1​a1​+xm1​xy​y˙​=a1​+xm1​xy​−d1​y−η2​1​a2​+ym2​yz​z˙=a2​+ym2​yz​−d2​z​

相信各位读者也看出来了,造这种模型的思路就是把以前的模型中比较合理的部分(比如logistics模型关于有资源约束下单物种的增长)以及把以前的模型中被修正的部分(比如Rosenzweig-MacArthur模型中修正的关于捕食者的增长率的部分)糅合在一起,这样就可以把食物链拉长,甚至把它变成一个食物网。

例5 流行病的SIR模型 (1920年)
S(t)=populationofthesusceptible(可以被传染的)I(t)=populationoftheinfective(被传染的)R(t)=populationoftheremovable(不会再被感染的:死亡、免疫等)S(t)=population\ of\ the\ susceptible (可以被传染的) \\ I(t)=population\ of\ the\ infective(被传染的) \\ R(t)= population\ of\ the\ removable(不会再被感染的:死亡、免疫等)S(t)=population of the susceptible(可以被传染的)I(t)=population of the infective(被传染的)R(t)=population of the removable(不会再被感染的:死亡、免疫等)

{S˙=−βISI˙=βIS−γIR˙=γI\begin{cases}\dot{S} = -\beta IS \\ \dot{I}= \beta IS - \gamma I \\ \dot{R} = \gamma I\end{cases}⎩⎪⎨⎪⎧​S˙=−βISI˙=βIS−γIR˙=γI​

常微分方程I ODE的例子3 生态学模型:Malthus增长模型、Lotka-Volterra模型相关推荐

  1. 常微分方程I ODE的例子1 弹簧的振动、RLC电路与单摆

    常微分方程I ODE的例子1 弹簧的振动.RLC电路与单摆 例1 弹簧的振动 考虑一端固定的弹力系数为kkk的弹簧连接质量为mmm在水平方向的振动,假设阻力与速度成正比,比例系数为ccc,外力为f(t ...

  2. 常微分方程(ODE)求解方法总结

    常微分(ODE)方程求解方法总结 1 常微分方程(ODE)介绍 1.1 微分方程介绍和分类 1.2 常微分方程的非计算机求解方法 1.3 线性微分方程求解的推导过程 2 一阶常微分方程(ODE)求解方 ...

  3. 隐马尔科夫模型HMM(一)HMM模型

    2019独角兽企业重金招聘Python工程师标准>>> 隐马尔科夫模型(Hidden Markov Model,以下简称HMM)是比较经典的机器学习模型了,它在语言识别,自然语言处理 ...

  4. python cnn模型_ZfNet解卷积:可视化CNN模型( PythonCode可视化Cifar10)

    前言 由来已久,ANN方法被称为模式识别里面的"黑盒"方法,因为ANN模型不能使用明确的函数--形式化的数学公式进行表示,同时也意味着应对评价模型,面对函数寻求最优解的优化方程也不 ...

  5. 理解OSI七层模型(了解OSI七层模型,数据如何传输,封装,解封装)

    文章目录 理解OSI七层模型 什么是OSI七层模型 理解OSI七层模型 举例子 七层协议,分析过程: 数据传输过程 封装数据 解封装数据 数据是如何封装和解封装 理解OSI七层模型 第一层:物理层. ...

  6. arch模型的思路_时间序列--ARCH模型

    对于金融时间序列,波动率往往具有以下特征:存在波动率聚集现象,也就是波动率一段时间上高,一段时间上低 波动率以连续时间变化,很少发生跳跃 波动率不会发散到无穷,波动率往往是平稳的 波动率对价格上升和大 ...

  7. 推荐系统系列教程之十四:经典模型融合方法----线性模型和树模型的组合拳

    编者按:之前推出了<推荐系统系列教程>,反响不错,前面已经推出了十三期,今天按约推出第十四期:经典模型融合办法----线性模型和树模型的组合拳.希望朋友们多点"在看", ...

  8. 笔记︱集成学习Ensemble Learning与树模型、Bagging 和 Boosting、模型融合

    基本内容与分类见上述思维导图. 文章目录 一.模型融合方法 . 概述 1.Voting 2.Averaging 3.Bagging 4.Boosting 5. Stacking (1)nfolds 次 ...

  9. 【1.6万字长文】华为战略管理方法论介绍(含开发战略到执行DSTE、业务领先模型BLM、业务执行力模型BEM、组织绩效和战略解码)

    第一本全方位阐述华为端到端战略管理体系的著作<华为战略管理法:DSTE实战体系>出版了!!当当网.京东均可下单购买. 第一本全方位阐述华为端到端战略管理体系的著作<华为战略管理法:D ...

  10. 序列到序列模型(一)(基本模型,RNN Search,注意力机制)

    文章目录 基本模型 序列到序列学习 基本模型 RNN Search 模型 注意力 模型定义 模型特点 References 序列到序列学习(sequence to sequence learning, ...

最新文章

  1. php前端传过来的json数据丢失 (max_input_vars)
  2. oozie的作业调度
  3. 百度大脑“乘风”新基建,“破浪”产业智能化落地
  4. ibm服务器维修站点,IBM 服务器维修
  5. jsp mysql电子档案管理系统_学生档案管理系统的设计与实现(JSP,MySQL)(含录像)
  6. 很多人创业是为了自由
  7. itext生成pdf paragraph 自动换行_reportlab高级制作多格式PDF和python的class和装饰器复习
  8. 【优化算法】改进型的LMS算法-SVSLMS算法【含Matlab源码 632期】
  9. 去空格 html,javascript怎么去空格?
  10. ArcPy常用类介绍
  11. 吴裕雄--天生自然 高等数学学习:函数展开成幂级数
  12. 分享Word如何转PDF的方法,还不快来看看
  13. DPCM差分预测编码
  14. 文件夹怎么打包压缩?压缩包太大如何缩小?
  15. 计算机主机分为什么不同,什么是服务器(服务器和计算机主机之间的区别)
  16. java创作一个椭圆类_椭圆类——3 (类的复杂设计)
  17. CAST和CONVERT
  18. 内存分析工具LeakCanary是如何工作的
  19. Matlab论文插图绘制模板第39期—阶梯图(Stairs)
  20. html怎么引入框架,html文件中引入bootstrap框架

热门文章

  1. AVR单片机的BOOT区
  2. addrule android用法,RelativeLayout.LayoutParams 使用addRule失效的问题解决办法
  3. linux的文本操作模式下的注销命令,linux基本命令大全
  4. 安卓手机怎样安装apk应用
  5. java创建临时文件
  6. 摘抄(SAP所有模块用户出口(User Exits) )
  7. sql中interval用法总结
  8. GSM与GPRS的区别
  9. Spring Security OAuth2实现简单的密钥轮换及配置资源服务器JWK缓存
  10. VScode的代码截图插件CodeSnap