Lotka-Volterra竞争模型

一、生态学Tips

1、生态学系统是复杂适应性系统;
2、生态学根植于博物学;
3、不可忽略进化论;
4、生态学事关大自然;
5、了解一点哲学;
6、生态学是有用的科学;
7、生态学不是万能的;
8、类社会科学的学科范式;
9、参考物理学而非工程学来理解生态学的生态位;
10、数学很重要。

二、物种的竞争

1、Lotka-Volterra竞争模型

假设有一草地,其共同的“捕食者”是兔子和羊,且二者在假定的草地生态系统中存在竞争关系
有:
{ 对兔子( N 1 ) : d N 1 d t = r 1 ⋅ N 1 ( 1 − N 1 K 1 ) 对羊有( N 2 ) : d N 2 d t = r 2 ⋅ N 2 ( 1 − N 2 K 2 ) \begin{cases} 对兔子(N_{1}):\frac{\text{d}N_{1}}{\text{d}t}=r_{1}\cdot N_{1}(1-\frac{N_{1}}{K_{1}})\\ 对羊有(N_{2}):\frac{\text{d}N_{2}}{\text{d}t}=r_{2}\cdot N_{2}(1-\frac{N_{2}}{K_{2}}) \end{cases} {对兔子(N1:dtdN1=r1N1(1K1N1对羊有(N2:dtdN2=r2N2(1K2N2
为了将两个方程联系起来,引入变量 M M M,表示食草动物动物的食草量,有:
M 羊 = α ⋅ M 兔 M_{羊}=\alpha\cdot M_{兔} M=αM
因此可得到两个相对竞争系数,分别是羊对兔 α 1 ← 2 \alpha_{1\leftarrow2} α12兔对羊 α 2 ← 1 \alpha_{2\leftarrow1} α21 ,以及两个种内的密度制约系数 α 1 ← 1 \alpha_{1\leftarrow1} α11 α 2 ← 2 \alpha_{2\leftarrow2} α22,带入两个式子可得:
{ d N 1 d t = r 1 ⋅ N 1 ( 1 − α 1 ← 1 N 1 K 1 − α 1 ← 2 N 2 K 1 ) d N 2 d t = r 2 ⋅ N 2 ( 1 − α 2 ← 2 N 2 K 2 − α 2 ← 1 N 1 K 2 ) \begin{cases} \frac{\text{d}N_{1}}{\text{d}t}=r_{1}\cdot N_{1}(1-\alpha_{1\leftarrow1}\frac{N_{1}}{K_{1}}-\alpha_{1\leftarrow2}\frac{N_{2}}{K_{1}})\\ \frac{\text{d}N_{2}}{\text{d}t}=r_{2}\cdot N_{2}(1-\alpha_{2\leftarrow2}\frac{N_{2}}{K_{2}}-\alpha_{2\leftarrow1}\frac{N_{1}}{K_{2}})\\ \end{cases} {dtdN1=r1N11α11K1N1α12K1N2dtdN2=r2N21α22K2N2α21K2N1
此即Lotka-Volterra竞争模型

2、 N 1 、 N 2 N_{1}、N_{2} N1N2 的关系

为了探究 N 1 、 N 2 N_{1}、N_{2} N1N2 的关系,令 d N 1 d t = 0 \frac{\text{d}N_{1}}{\text{d}t}=0 dtdN1=0 ,解得:
{ N 1 = 0 1 − α 1 ← 1 N 1 K 1 − α 1 ← 2 N 2 K 1 = 0 \begin{cases} N_{1}=0\\ 1-\alpha_{1\leftarrow1}\frac{N_{1}}{K_{1}}-\alpha_{1\leftarrow2}\frac{N_{2}}{K_{1}}=0 \end{cases} {N1=01α11K1N1α12K1N2=0
且:有 K 1 > 1 K_{1}>1 K1>1,所以,等式两边同时乘 K 1 K_{1} K1 得:
K 1 − α 1 ← 1 ⋅ N 1 − α 1 ← 2 ⋅ N 2 = 0 K_{1}-\alpha_{1\leftarrow1}\cdot N_{1}-\alpha_{1\leftarrow2}\cdot N_{2}=0 K1α11N1α12N2=0
整理得:
K 1 α 1 ← 2 − α 1 ← 1 ⋅ N 1 α 1 ← 2 = N 2 \frac{K_{1}}{\alpha_{1\leftarrow2}}-\frac{\alpha_{1\leftarrow1}\cdot N_{1}}{\alpha_{1\leftarrow2}}=N_{2} α12K1α12α11N1=N2
因为: K 1 α 1 ← 2 、 α 1 ← 1 α 1 ← 2 \frac{K_{1}}{\alpha_{1\leftarrow2}}、\frac{\alpha_{1\leftarrow1}}{\alpha_{1\leftarrow2}} α12K1α12α11 为常数,所以 N 1 、 N 2 N_{1}、N_{2} N1N2 的关系是二维坐标系上的一条直线。

3、竞争结果

当忽略两个种群内部同种个体间的相互关系 α 1 → 1 \alpha_{1\rightarrow1} α11 α 2 → 2 \alpha_{2\rightarrow2} α22同时将 α 1 → 2 \alpha_{1\rightarrow2} α12 α 2 → 1 \alpha_{2\rightarrow1} α21简写为 α 12 \alpha_{12} α12 α 21 \alpha_{21} α21,方程可表示为:
{ N 1 ′ = r 1 ⋅ N 1 ( 1 − N 1 K 1 − α 12 N 2 K 1 ) N 2 ′ = r 2 ⋅ N 2 ( 1 − N 2 K 2 − α 21 N 1 K 2 ) \begin{cases} N_{1}'=r_{1}\cdot N_{1}(1-\frac{N_{1}}{K_{1}}-\alpha_{12}\frac{N_{2}}{K_{1}})\\ N_{2}'=r_{2}\cdot N_{2}(1-\frac{N_{2}}{K_{2}}-\alpha_{21}\frac{N_{1}}{K_{2}})\\ \end{cases} {N1=r1N11K1N1α12K1N2N2=r2N21K2N2α21K2N1
当生境内完全被 N 1 N_{1} N1 或被 N 2 N_{2} N2 占据时,针对两个式子,可分别在坐标系上获取两个点:
{ 兔 ( N 1 ) : ( K 1 , 0 ) , ( 0 , K 1 α 12 ) 羊 ( N 2 ) : ( 0 , K 2 ) , ( K 2 α 21 , 0 ) \begin{cases} 兔(N_{1}):(K_{1},0),(0,\frac{K_{1}}{\alpha_{12}})\\ 羊(N_{2}):(0,K_{2}),(\frac{K_{2}}{\alpha_{21}},0) \end{cases} {(N1)(K1,0),(0,α12K1)(N2)(0,K2),(α21K2,0)
分别针对两个种群绘图,根据Logistic方程,分别获得两组矢量关系图(箭头方向表示种群大小变化方向)。
在这里插入图片描述

将两组矢量关系图结合,即可推测四种不同的竞争结果。

(1) N 1 N_{1} N1 兔获胜

K 1 > K 2 α 21 K_{1}>\frac{K_{2}}{\alpha_{21}} K1>α21K2 K 1 α 12 > K 2 \frac{K_{1}}{\alpha_{12}}>K_{2} α12K1>K2时:
在这里插入图片描述

(2) N 2 N_{2} N2 羊获胜

K 2 > K 1 α 12 K_{2}>\frac{K_{1}}{\alpha_{12}} K2>α12K1 K 2 α 21 > K 1 \frac{K_{2}}{\alpha_{21}}>K_{1} α21K2>K1时:
在这里插入图片描述

(3)稳定共存(一个平衡点)

K 2 α 21 > K 1 \frac{K_{2}}{\alpha_{21}}>K_{1} α21K2>K1 K 1 α 12 > K 2 \frac{K_{1}}{\alpha_{12}}>K_{2} α12K1>K2时:
在这里插入图片描述

(4)无法预测(无平衡点)

K 1 > K 2 α 21 K_{1}>\frac{K_{2}}{\alpha_{21}} K1>α21K2 K 2 > K 1 α 12 K_{2}>\frac{K_{1}}{\alpha_{12}} K2>α12K1时:
在这里插入图片描述

4、多种群的竞争关系

现在,我们获得了两个种群的竞争关系,并预测了四种可能的情形,那多个种群的竞争关系是如何的呢?
在前面的推到中,我们忽略了种群内部的同种个体的相互关系 α 11 、 α 22 \alpha_{11}、\alpha_{22} α11α22),现将其重新加入到(物种数 n = 2 n=2 n=2)关系式中:
{ d N 1 d t = r 1 N 1 ( 1 − α 11 N 1 K 1 − α 12 N 2 K 1 ) d N 2 d t = r 2 N 2 ( 1 − α 22 N 2 K 2 − α 21 N 21 K 2 ) \begin{cases} \frac{\text{d}N_{1}}{\text{d}t}=r_{1}N_{1}(1-\alpha_{11}\frac{N_{1}}{K_{1}} -\alpha_{12}\frac{N_{2}}{K_{1}})\\ \frac{\text{d}N_{2}}{\text{d}t}=r_{2}N_{2}(1-\alpha_{22}\frac{N_{2}}{K_{2}} -\alpha_{21}\frac{N_{21}}{K_{2}}) \end{cases} {dtdN1=r1N1(1α11K1N1α12K1N2)dtdN2=r2N2(1α22K2N2α21K2N21)
通过观察两物种的关系式可发现,括号内的各物种关系可以以和的形式表示,即:
∑ j = 1 n α i j N j K i \sum_{j=1}^{n}{\alpha_{ij}\frac{N_{j}}{K_{i}}} j=1nαijKiNj
由此可知,在一个含 n n n 个物种的生境内(物种丰度为 n n n), i i i 个物种种群大小变化的函数关系为:
d N i d t = r i N i ( 1 − ∑ j = 1 n α i j N j K i ) \frac{\text{d}N_{i}}{\text{d}t}=r_{i}N_{i}(1-\sum_{j=1}^{n}{\alpha_{ij}\frac{N_{j}}{K_{i}}}) dtdNi=riNi(1j=1nαijKiNj)
观察函数关系式可发现两个重要的状态变量(见Module 1): α i j 、 n \alpha_{ij}、n αijn,分别表示物种丰富度 n n n)和种间或种内交互系数 α i j \alpha_{ij} αij)。
Module 1

以理想气体方程为例:
PV=nRT
通过只描述气体状态的状态变量,例如p为压强(Pa),V为气体体积(),来描述空间内的气体。

我们是否可以通过这两个状态变量类模拟群落的动态竞争关系呢?
具体内容可参考胡脊梁的文章,DOI: 10.1126/science.abm7841

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Lotka-Volterra竞争模型是描述两个或多个物种在共享资源环境中相互竞争的一种数学模型。以下是一个简单的Lotka-Volterra竞争模型的代码: ```python import numpy as np import matplotlib.pyplot as plt # 定义Lotka-Volterra竞争模型的方程 def lotka_volterra_equations(p, t): a = 0.3 # 物种1的增长率 b = 0.2 # 物种1对物种2的压制系数 c = 0.4 # 物种2的增长率 d = 0.1 # 物种2对物种1的压制系数 x = p[0] * (a - b * p[1]) # 物种1的增长方程 y = p[1] * (c - d * p[0]) # 物种2的增长方程 return [x, y] # 定义初始条件 p0 = [2, 1] # 初始物种数量 t = np.linspace(0, 10, 100) # 时间范围 # 使用odeint函数求解微分方程 from scipy.integrate import odeint p = odeint(lotka_volterra_equations, p0, t) # 绘制物种数量随时间的变化曲线 plt.plot(t, p[:, 0], label='Species 1') plt.plot(t, p[:, 1], label='Species 2') plt.xlabel('Time') plt.ylabel('Population') plt.legend() plt.show() ``` 该代码实现了一个简单的Lotka-Volterra竞争模型,其中物种1和物种2之间相互竞争。通过设定各个参数的值,可以模拟不同条件下物种数量随时间的变化。通过绘制曲线,可以观察到物种数量的动态变化。图中,横轴表示时间,纵轴表示物种的数量。 ### 回答2: Lotka-Volterra竞争模型是描述两个物种竞争关系动态的数学模型。它基于以下假设:1.同一资源规模有限,2.物种的增长是受到资源的限制,3.种群内部不存在自我调节机制。 在编写Lotka-Volterra竞争模型的代码时,可以使用Python语言来实现。以下是一种可能的代码实现: ```python import numpy as np import matplotlib.pyplot as plt # 定义Lotka-Volterra竞争模型的函数 def competition_model(x, y, a, b, c, d): dx = x * (a - b * x - c * y) dy = y * (d - e * y - f * x) return dx, dy # 定义模型参数 a = 1.5 b = 1 c = 1 d = 1 e = 1 f = 1 # 定义时间和初始种群数量 t = np.linspace(0, 10, 1000) x0 = 2 y0 = 1 # 模拟竞争模型的种群动态 x, y = np.zeros_like(t), np.zeros_like(t) x[0], y[0] = x0, y0 for i in range(1, len(t)): dx, dy = competition_model(x[i-1], y[i-1], a, b, c, d) x[i] = x[i-1] + dx y[i] = y[i-1] + dy # 绘制种群动态图 plt.plot(t, x, label='Species X') plt.plot(t, y, label='Species Y') plt.xlabel('Time') plt.ylabel('Population Size') plt.legend() plt.show() ``` 在这个代码中,使用了NumPy和Matplotlib进行数值计算和数据可视化。首先定义了Lotka-Volterra竞争模型的函数,其中x和y表示两个物种的种群数量,a、b、c、d、e、f是模型的参数。然后定义了时间和初始种群数量,并利用循环计算出每个时间点的种群数量。最后使用Matplotlib绘制了种群数量随时间变化的曲线。 ### 回答3: Lotka-Volterra竞争模型是用来描述两个物种在生态系统中的竞争关系的数学模型。其基本方程可以表示为: dN1/dt = r1 * N1 * (1 - (N1 + alpha * N2) / K1) dN2/dt = r2 * N2 * (1 - (N2 + beta * N1) / K2) 其中,N1和N2分别表示两个物种的种群数量,t表示时间,r1和r2分别表示两个种群的增长速率,K1和K2分别表示两个种群的最大承载能力,alpha和beta分别表示两个种群对竞争方面的敏感度。 以python为例,我们可以通过以下代码来模拟Lotka-Volterra竞争模型: import numpy as np import matplotlib.pyplot as plt # 定义模型参数 r1 = 0.5 r2 = 0.5 K1 = 100 K2 = 100 alpha = 0.2 beta = 0.2 # 定义时间范围和时间间隔 t = np.arange(0, 100, 0.1) # 定义初始种群数量 N1_0 = 50 N2_0 = 50 # 定义模型函数 def lotka_volterra(N1, N2, t): dN1 = r1 * N1 * (1 - (N1 + alpha * N2) / K1) dN2 = r2 * N2 * (1 - (N2 + beta * N1) / K2) return dN1, dN2 # 模拟种群数量的变化 N1, N2 = np.integrate.odeint(lotka_volterra, (N1_0, N2_0), t).T # 绘制种群数量随时间的变化图 plt.plot(t, N1, label='Species 1') plt.plot(t, N2, label='Species 2') plt.xlabel('Time') plt.ylabel('Population') plt.legend() plt.show() 以上代码通过使用numpy库中的odeint函数来对模型进行数值求解,最后使用matplotlib库来绘制种群数量随时间的变化图。运行代码可以得到两个物种种群数量随时间的变化曲线,并观察到它们的竞争关系。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Odd_guy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值