模型背景
当两个种群为争夺同一食物来源和生存空间相互竞争时,常见的结局是,竞争力弱的灭绝,竞争力强的达到环境容许的最大容量。
使用种群竞争模型可以描述两个种群相互竞争的过程,分析各种结局的条件。
模型假设
竞争模型
模型公式如下:
种群竞争matlab程序求解
根据以上公式,可以编写matlab程序如下:
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;%两个t表示1,2种群,r表示red,b表示blue
plot(x(:,1),x(:,2),'LineWidth',2),grid; %作相轨线
fun.m中给出了求解公式,且你求解不同问题时,所赋予的初值不同,可以修改程序代码中的初始值。p3.m为画种群变化过程图。运行p3.m查看结果。
结果分析
运行代码,最后结果如下。可以看到最后数值稳定在x=100,y=0上,即物种甲达到最大值,物种乙灭绝。
当我们改变程序中的r1和r2时,令r1=r2=0.3,即自然增长率由初始值1减小到0.3 。结果如下:
可以看到最终结果仍然是物种甲达到最大值,物种乙灭绝。但是与原先不同的是变化速度减缓了,这是由于自然增长率r1,r2变小的缘故(相当于变化率减小)。
应用举例
不同企业推出的类似产品的销售情况可以应用种群竞争模型