蓝鲸和长须鲸是两个生活在同一海域的相似的种群,因此认为它们之间存在竞争。估计蓝鲸的固有增长率每年为5%,长须鲸为每年8%。估计蓝鲸环境承载力(环境能够支持的鲸鱼的最大数量)为150 000 条,长须鲸为400 000 条。鲸鱼竞争的程度是未知的。过去约100 年剧烈的捕捞已经使鲸鱼数量减少,蓝鲸大约5 000 条,长须鲸大约70 000 条。蓝鲸是否会灭绝?
解:该问题是对2.1节第(1)、(2)、(3)问的具体化。根据实际统计数据,进行蓝鲸和长须鲸的种群竞争模型模拟计算。假设蓝鲸和长须鲸的增长情况仅与两者之间的竞争有关,与其他动物无关;不考虑环境改变带来的影响,环境承载力是稳定的;人类停止对鲸鱼的捕杀,鲸鱼按自然条件繁衍。
建立相应的数学模型:
由于蓝鲸和长须鲸的竞争是未知的,根据实际情况,当s 1 、s 2 取2时,种群间的相互影响已经非常大,所以估计s 1 、s 2 的区间均为(0,2)时,就可以很好地模拟实际情况。以 0.1 为步长,采用穷列举法,代入不同的s 1 、s 2 ,求出最后蓝鲸与长须鲸的稳定状态数值。求解的图形如图2-8、图2-9所示。
图2-8 s 1 、s 2 改变时,蓝鲸的数量变化图像
图2-9 s 1 、s 2 改变时,长须鲸的数量变化图像
不同情况下s 1 、s 2 的具体数值列表如下。
(1)蓝鲸与长须鲸的最后稳定状态都不为0时的s 1 、s 2 值如表2-1所示。
表2-1 蓝鲸与长须鲸的最后稳定状态都不为0时的s 1 、s 2 值表
(2)当蓝鲸具有优势,最后稳态值为x=150 000,y=0时的s 1 、s 2 值如表2-2所示。
表2-2 x=150 000,y=0时的s 1 、s 2 值表
(3)当长须鲸具有优势,最后稳态值为x=0,y=400 000时的s 1 、s 2 值如表2-3所示。
表2-3 x=0,y=400 000时的s 1 、s 2 值表
由以上三表所示结果可知,由于蓝鲸的固有增长率每年为5%,长须鲸为每年8%,蓝鲸环境承载力为150 000条,长须鲸为400 000 条,所以长须鲸在相同的竞争程度条件下明显具有一定的优势。因而,当蓝鲸具有优势,最后稳态值为x=150 000,y=0时的s 1 、s 2 必定是s 2 较大、s 1 较小,而表2-2 中s 1 基本小于 1、s 2 基本大于 1,正好体现了在蓝鲸对长须鲸影响小、蓝鲸对长须鲸影响大的条件下,蓝鲸具有优势的实际情况。
同样,当长须鲸具有优势,最后稳态值为x=0,y=400 000时,根据实际,必然是s 1 较大(s 1 >1),而s 2 较小(s 2 <1);同时,由于长须鲸本身对环境的适应力较强(体现在增长率和环境承载力较大),所以即使在相互抑制作用均较大(s 1 ,s 2 >1)时,仍然是长须鲸处于优势地位。综合所述,s 1 >1时,无论s 2 取何值,长须鲸都具有优势。表2-3中,s 1 在1.1以上时,x=0,说明理论计算结果很好地符合实际情况。
通过以上分析可知,蓝鲸不一定毁灭,s 1 、s 2 的取值不同时,最后的稳定状态不同。
种群函数:
function dy=zhongqun4(t,y)
global E F B K
dy=zeros(2,1);
dy(1)=0.05*y(1)*(1-y(1)/150000-E(B)*y(2)/400000);
dy(2)=0.08*y(2)*(1-F(K)*y(1)/150000-y(2)/400000);
主程序:
global E F B K
E=0:0.1:2;
E=E';
F=0:0.1:2;
F=F';
B=1;K=1;a=1;b=1;c=1;d=1;
S=zeros(140,2); %记录当蓝鲸与长须鲸的最后稳定状态都不为0时的 s 1 ,s 2 值
H=zeros(250,2); %记录蓝鲸具有优势,最后稳态值为x=150 000,y=0时的 s 1 ,s 2 值
U=zeros(250,2); %记录长须鲸具有优势,最后稳态值为x=0,y=400000时的 s1,s2值
Num=zeros(441,4); %记录蓝鲸与长须鲸的最后稳态值
while B<22
K=1;
while K<22
options=odeset('RelTol',1e-4,'AbsTol',[1e-4 1e-5]);
[T,Y]=ode45('zhongqun4',[0 2000],[5000 70000],options);
[m,n]=size(Y);
Num(a,1)=Y(m,1);
if Num(a,1)<1
Num(a,1)=0;
end
Num(a,2)=Y(m,2);
if Num(a,2)<1
Num(a,2)=0;
end
Num(a,3)=E(B);
Num(a,4)=F(K);
if ((Y(m,1)-1>0)&(Y(m,2)-1>0))==1
S(b,1)=E(B);
S(b,2)=F(K);
b=b+1;
end
if (Y(m,2)-1)<0
H(c,1)=E(B);
H(c,2)=F(K);
c=c+1;
end
if (Y(m,1)-1)<0
U(d,1)=E(B);
U(d,2)=F(K);
d=d+1;
end
a=a+1;
K=K+1;
end
B=B+1;
end
当s 1 、s 2 改变时,蓝鲸与长须鲸的量数:
>> [s1,s2]=meshgrid(Num(:,3),Num(:,4));
>> LANJING=griddata(Num(:,3),Num(:,4),Num(:,1),s1,s2,'v4');
CHANGXUJING=griddata(Num(:,3),Num(:,4),Num(:,2),s1,s2,'v4');
>> mesh(s1,s2,LANJING)
>> title('s1和s2改变时,蓝鲸的数量变化图像');
mesh(s1,s2,CHANGXUJING);
title('s1和s2改变时,长须鲸的数量变化图像')