种群竞争模型

种群竞争模型

应用

种群竞争模型是当两个种群为争夺同一食物来源和生存空间相互竞争时,常见的结局是,优胜劣汰。使用种群竞争模型可以描述两个种群相互竞争的过程,分析产生各种结局的条件。

条件

  • x 1 x_1 x1 x 2 x_2 x2两个种群,它们独自生存时数量变化均服从Logistic规律:
    d x i d t = r i x i ( 1 − x i N i ) , i = 1 , 2 \frac{dx_i}{dt}=r_ix_i(1-\frac{x_i}{N_i}),i=1,2 dtdxi=rixi(1Nixi),i=1,2
    其中 t t t是时间, r i r_i ri是这个物种的自然增长率, N i N_i Ni是这个物种的最大环境容量。
  • 但当两个物种在一起生存时,每一个物种对另一个物种的发展都有阻滞作用,这时候他们的数量变化就服从以下规律了:
    d x 1 d t = r 1 x 1 ( 1 − x 1 N 1 − S 1 x 2 N 2 ) \frac{dx_1}{dt}=r_1x_1(1-\frac{x_1}{N_1}-S_1\frac{x_2}{N_2}) dtdx1=r1x1(1N1x1S1N2x2)
    d x 2 d t = r 2 x 2 ( 1 − x 2 N 2 − S 2 x 1 N 1 ) \frac{dx_2}{dt}=r_2x_2(1-\frac{x_2}{N_2}-S_2\frac{x_1}{N_1}) dtdx2=r2x2(1N2x2S2N1x1)
    其中 S i S_i Si表示对于供养 x i x_i xi的资源来说,相对于 N j N_j Nj的单位数量的 x j x_j xj的消耗为相对于 N i N_i Ni的单位数量的 x i x_i xi消耗的 S i S_i Si倍。

python代码

# 种群竞争模型

import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import odeint  # 用以求常微分

plt.rcParams['figure.dpi'] = 100  # 绘图的dpi
plt.rcParams['font.sans-serif'] = ['SimHei']  # 正常显示中文
plt.rcParams['axes.unicode_minus'] = False  # 正常显示正负号

# 两个物种的参数
type_x1 = [500, 1.2, 15000, 0.0004]  # [初始数量, 自然增长率, 环境容量, 资源消耗]
type_x2 = [2560, 1.3, 3000, 0.0001]  # 上面资源消耗的意思是:对于可以供养x2的资源,单位数量的x1的消耗为单位数量x2消耗的倍数

# 阻滞作用
def propagate(init, time, x1, x2):
    ix1, ix2 = init
    rx1 = x1[1]*ix1*(1-ix1/x1[2])-x1[3]*ix1*ix2
    rx2 = x2[1]*ix2*(1-ix2/x2[2])-x2[3]*ix1*ix2
    rx = np.array([rx1, rx2])
    return rx

# 画图
def ploter(time, numer):
    plt.xlabel('时间')
    plt.ylabel('物种量')
    plt.plot(time, numer[:,0], "b-", label="物种$x_1$")
    plt.plot(time, numer[:,1], "r-", label="物种$x_2$")  
    plt.legend()
    plt.show()

# 运行
time = np.linspace(0, 200, 1000)  # 时间为200个单位,均分为1000份
init = np.array([type_x1[0], type_x2[0]])
numer = odeint(propagate, y0=init, t=time, args=(type_x1, type_x2))
ploter(time, numer)

结果图如下:

在这里插入图片描述

  • 3
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值