微分方程——Volterra食饵-捕食者模型

简介: 微分方程——Volterra食饵-捕食者模型

背景

自然界中不同种群存在一种既有依存、又有制约的生存方式:种群甲靠丰富的自然资源生长,而种群乙靠捕食种群甲为生:食用鱼和鲨鱼、黄鼠狼和草鼠、落叶松和蚜虫等都是这种生存方式。生态学上称种群甲为食饵(Prey),种群乙为捕食者(Predator),二者组成食饵-捕食者系统,又称P-P系统,是最简单的一种模型。

意大利生物学家U.D’Ancona曾致力于鱼类各种群间相互依存相互制约的关系研究。表2是从第一次世界大战期间地中海各港口捕获的鲨鱼百分比资料。

                                     表2  一战期间港口各年捕获的鲨鱼比例

年份

1914

1915

1916

1917

1918

鲨鱼比例

11.9

21.4

22.1

21.7

36.4

年份

1919

1920

1921

1922

1923

鲨鱼比例

27.3

16.0

15.9

14.8

19.7

     U.D’ancona发现第一次世界大战期间,地中海鱼群中鲨鱼等食肉鱼比例明显上升了(见表2),相应地食用鱼所在比例减少了,他无法解释这一反常现象。于是请当时的著名数学家V.Volterra建立了一个数学模型来解释。

【模型假设】

  1. 没有捕食者,食饵净相对增长率为正常数
  2. 没有食饵,捕食者的净相对增长率为负常数
  3. 两类鱼相遇的机会正比于它们的数量之乘积

【符号说明】

【建立模型】

【1】

模型【1】没有解析解。下面从两个方面来分析它。

【模型分析】

1、模型的数值解

设食饵和捕食者的初始数量分别为x(0)=25,y(0)=2,其余各系数不妨设为k1=1,k2=0.5,b=0.1,c=0.02.用matlab编程计算

function xt=shier(t,x)
k1=1;k2=0.5;b=0.1;c=0.02;
xt=[x(1).*(k1-b*x(2));x(2).*(-k2+c*x(1))];
clear
ts=0:0.1:15;x0=[25,2];
[t,x]=ode45('shier',ts,x0);
subplot(1,2,1)
plot(t,x),grid,gtext('x(t)'),gtext('y(t)');
subplot(1,2,2)
plot(x(:,1),x(:,2)),grid

     图10  Volterra模型  数值解x(t),y(t)曲线                            图11 Volterra模型y(x)图形

2、平衡点及相轨分析

对于(0,0)点,即此平衡不稳定;对于p点,刚好处于临界点,类似判断不了是否稳定。用下面的相轨线分析这个问题。

用直线 将第一象限分成四个部分,每个部分内部的正负一目了然。如图12所示。

                   图12 y-x的相轨分析

在第一象限任取一点p0(x0,y0)(不妨选在图12所示的位置),此时食饵数量和捕食者数量都增长,即(x,y)的动点向右上变化,直到p1位置,由于延后性,捕食者数量还在增加,使得食饵数量开始减少,即(x,y)向左上变化,直到p2位置。同样由于系统的惯性,食饵开始严重减少,捕食者相应地开始减少,即(x,y)向左下变化,直到p3位置。此时捕食者继续严重减少,食饵开始慢慢增加,(x,y)由向右下变化,又回到p0.所以平衡点p是稳定的。也说明相轨线((x,y)的轨迹)就是包含平衡点p的一条封闭曲线。

【回答问题】

再回到U.D’Ancona的问题,尝试回答他的提问。

为了考察捕鱼对两种鱼类的影响,引入人工捕捞能力系数β>0,显然任何时候,两种鱼都会减少,将方程【1】改写为【2】

得到新的平衡点p*稳定,理由同上。

由于捕捞系数β的引入,新的平衡点里,食饵数量增加,而捕食者(鲨鱼)的数量则减少了。

Volterra结论:要减少强者,需减少弱者。


相关文章
|
5月前
|
算法 数据可视化 Python
R语言MCMC:Metropolis-Hastings采样用于回归的贝叶斯估计
R语言MCMC:Metropolis-Hastings采样用于回归的贝叶斯估计
|
传感器 算法 计算机视觉
非线性非高斯模型的改进粒子滤波算法(Matlab代码实现)
非线性非高斯模型的改进粒子滤波算法(Matlab代码实现)
154 0
|
5月前
|
机器学习/深度学习 存储
【Matlab智能算法】Elman神经网络-遗传算法(Elman-GA)函数极值寻优——非线性函数求极值
【Matlab智能算法】Elman神经网络-遗传算法(Elman-GA)函数极值寻优——非线性函数求极值
|
5月前
|
资源调度 分布式计算 Python
随机过程:布朗运动
随机过程:布朗运动
115 0
|
机器学习/深度学习 算法 决策智能
凸优化介绍
凸优化介绍。更多文章请关注我的微信公众号:Python学习杂记
151 0
|
机器学习/深度学习
有监督学习神经网络的回归拟合——基于红外光谱的汽油辛烷值预测(Matlab代码实现)
有监督学习神经网络的回归拟合——基于红外光谱的汽油辛烷值预测(Matlab代码实现)
187 0
|
机器学习/深度学习 传感器 算法
基于混合策略改进哈里斯鹰算法求解单目标优化问题IHHO附matlab代码
基于混合策略改进哈里斯鹰算法求解单目标优化问题IHHO附matlab代码
|
机器学习/深度学习 算法 Python
多种优化算法优化LSTM——【包括:粒子群、蝙蝠、正余旋、多元宇宙、正余弦、JAYA、哈里斯鹰、萤火虫、布谷鸟、非洲秃鹫、麻雀优化、灰狼优化、蜣螂优化】(Python代码实现)
多种优化算法优化LSTM——【包括:粒子群、蝙蝠、正余旋、多元宇宙、正余弦、JAYA、哈里斯鹰、萤火虫、布谷鸟、非洲秃鹫、麻雀优化、灰狼优化、蜣螂优化】(Python代码实现)
355 0
|
机器学习/深度学习 数据采集 算法
【VMD-SSA-LSSVM】基于变分模态分解与麻雀优化Lssvm的负荷预测【多变量】(Matlab代码实现)
【VMD-SSA-LSSVM】基于变分模态分解与麻雀优化Lssvm的负荷预测【多变量】(Matlab代码实现)
133 0
贝叶斯算法人生
贝叶斯算法人生