模型背景:当两个种群为争夺同一食物来源和生存空间相互竞争时,常见的结局是,竞争力弱的灭绝,竞争力强的达到环境容许的最大容量。使用种群竞争模型可以描述两个种群相互竞争的过程,分析产生各种结局的条件。
模型推广:不同企业推出的类似产品可应用种群竞争模型。
有甲乙两个种群,它们独自生存时数量变化均服从Logistic规律。
d x d t = r 1 x ( 1 − x N 1 ) d y d t = r 1 y ( 1 − y N 1 ) \frac{d x}{d t}=r_{1} x\left(1-\frac{x}{N_{1}}\right) \quad \frac{d y}{d t}=r_{1} y\left(1-\frac{y}{N_{1}}\right) dtdx=r1x(1−N1x)dtdy=r1y(1−N1y)
两种群在一起生存时,乙对甲增长的阻滞作用与乙的数量成正比;甲对乙有同样作用。
d x d t = r 1 x ( 1 − x n 1 − s 1 y n 2 ) d y d t = r 2 y ( 1 − y n 2 − s 2 x n 1 ) \begin{aligned} \frac{d x}{d t} &=r_{1} x\left(1-\frac{x}{n_{1}}-s_{1} \frac{y}{n_{2}}\right) \\ \frac{d y}{d t} &=r_{2} y\left(1-\frac{y}{n_{2}}-s_{2} \frac{x}{n_{1}}\right) \end{aligned} dtdxdtdy=r1x(1−n1x−s1n2y)=r2y(1−n2y−s2n1x)
其中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)];
main.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;
figure
plot(x(:,1),x(:,2),'LineWidth',2),grid %作相轨线
直接运行。
最后数值稳定在x=100,y=0上,即物种甲达到最大值,物种乙灭绝。
改变r1,r2:
r1=r2=0.3
fun.m
function dx=fun(t,x,r1,r2,n1,n2,s1,s2)
r1=.3;
r2=.3;
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)];
我们可以看到甲乙两物种最终结果仍然是甲达到数量极限而乙灭绝,但与原先不同的是变化速度减缓了,这是由于自然增长率r1,r2变小的缘故(相当于变化率减小)。
改变n1,n2:
n1=10000,n2=100
fun.m
function dx=fun(t,x,r1,r2,n1,n2,s1,s2)
r1=1;
r2=1;
n1=10000;
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)];
由于一开始甲物种的数量相对较少,所以乙物种得以快速增长,数量一度达到90以上,但最终仍然灭绝。物种容量的改变并不能影响最终谁会灭绝
改变x10,x20:
x10=10,x20=100
main.m
h=0.1;%所取时间点间隔
ts=[0:h:30];%时间区间
x0=[10,100];%初始条件
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;
figure
plot(x(:,1),x(:,2),'LineWidth',2),grid %作相轨线
乙物种的初始数量大使其灭绝时间稍稍延后,但它灭绝的趋势不变。综上,无论怎样改变r1,r2,n1,n2,x0,y0,都改变不了最后甲物种存活并达到数量最大且乙物种灭绝的结果。
s1>1,s2<1
s1=1.5,s2=0.7
fun.m
function dx=fun(t,x,r1,r2,n1,n2,s1,s2)
r1=1;
r2=1;
n1=100;
n2=100;
s1=1.5;
s2=.7;
dx=[r1*x(1)*(1-x(1)/n1-s1*x(2)/n2);r2*x(2)*(1-s2*x(1)/n1-x(2)/n2)];
s1<1,s2<1
s1=0.8,s2=0.7
fun.m
function dx=fun(t,x,r1,r2,n1,n2,s1,s2)
r1=1;
r2=1;
n1=100;
n2=100;
s1=.8;
s2=.7;
dx=[r1*x(1)*(1-x(1)/n1-s1*x(2)/n2);r2*x(2)*(1-s2*x(1)/n1-x(2)/n2)];