本文分为四个部分来解决如何应用Logistic规律构建种群竞争模型?
一:单物种生存. 二:多个种群生存,构建种群竞争模型. 三:代码及结果分析. 四:模型推广.
一:单物种生存
当某个自然环境中,只有一种生物的群体存在,是我们常用的模型来描述它的数量演变过程,即 从这条公式可以看出当x=N时,到自治系统的平衡稳定点,表示当时间 t 趋于无穷时,种群数量趋近于N。
二:多个种群生存,构建种群竞争模型]
如果一个自然环境中存在两个或两个以上的种群,它们之间的关系大致可分为以下几种: 相互竞争,相互依存,弱肉强食(食饵与捕食者),也可能毫无关系前几种情形,我们来一一研究,忽略最后一种。
下面我们种群的相互竞争模型先研究两个种群的相互竞争模型
记: x1,x2 分别是甲乙两个种群的数量 r1 , r2 分别是甲乙两个种群的固有增长率 N1,N2 分别是甲乙两个种群的最大容量
模型假设 :设甲乙两个种群都生活在同一个自然环境中其数量变化服从 Logistic规律
于是对种群甲我们有公式: 这里的 因子(1 - X1/N1)反映了由于甲对资源的消耗导致的其对本身的阻滞作用。 当两个种群在同一自然环境中生存时,考虑到乙消耗同一资源会对甲的增长造成影响,因此我们在因子中再减去一项,该项和乙的种群的数量成正比 其中x(t),y(t)分别为甲乙两种群的数量, r1,r2为它们的固有增长率, n1 n2为它们的最大容量。 s1的含义是对于供养甲的资源来说,单位数量的乙(相对n2)的消耗为单位数量甲(相对n1)消耗的s1倍, s2同理。
## 三:代码及结果分析 程序如下:
fun.m:
function dx=fun(t,x,r1,r2,n1,n2,s1,s2)
r1=1;
r2=1;
n1=100;
n2=100;
s1=0.5;
s2=2;
dx=[r1*x(1)*(1-x(1)/n1-s1*x(2)/n2);r2*x(2)*(1-s2*x(1)/n1-x(2)/n2)];
p3.m:
h=0.1;%所取时间点间隔
ts=[0:h:30];%时间区间
x0=[10,10];%初始条件
opt=odeset('reltol',1e-6,'abstol',1e-9);%相对误差1e-6,绝对误差1e-9
[t,x]=ode45(@fun,ts,x0,opt);%使用5级4阶龙格—库塔公式计算
plot(t,x(:,1),'r',t,x(:,2),'b','LineWidth',2),grid;
pause;
plot(x(:,1),x(:,2),'LineWidth',2),grid %作相轨线
Matlab所做的图: 最后数值稳定在x=100,y=0上, 即物种甲达到最大值, 物种乙灭绝。
我们可以通过修改fun.m文件中r1=r2=0.3的值来生成不同的模型,并且直观的看到两个种群的变化。
我们可以看到甲乙两物种最终结果**:仍然是甲达到数量极限而乙灭绝,但与原先不同的是变化速度减缓了**,这是由于自然增长率r1,r2变小的缘故(相当于变化率减小)
我们可以通过修改fun.m文件中n1=10000,n2=100的值来生成不同的模型,并且直观的看到两个种群的变化。 由于一开始甲物种的数量相对较少,所以乙物种得以快速增长,数量一度达到90以上,但最终仍然灭绝。 物种容量的改变并不能影响最终谁会灭绝。
改变x10,x20: x10=10,x20=100: 乙物种的初始数量大使其灭绝时间稍稍延后,但它灭绝的趋势不变。综上,无论怎样改变r1,r2,n1,n2,x0,y0,都改变不了最后甲物种存活并达到数量最大且乙物种灭绝的结果。
s1>1,s2 |