种群竞争模型
当两个种群为争夺同一食物来源和生活空间相互竞争时,常见的结局是一方被淘汰,另一方获得优势。这种现象在生物学中被称为“竞争”。在数学建模中,我们可以通过种群竞争模型来模拟这种现象。
数学模型
有甲乙两个种群,它们独自生存时的数量变化均服从 Logistic 规律:
dtdN1dtdN2=r1N1(1−K1N1)=r2N2(1−K2N2)
其中N1 为甲种群数量,N2 为乙种群数量,r1 为甲种群的增长率,r2 为乙种群的增长率,K1 为甲种群的容量,K2 为乙种群的容量。
两种群在一起生存时,乙对甲增长的阻滞作用与乙的数量成正比;甲对乙有同样的作用:
dtdN1dtdN2=r1N1(1−K1N1−s1K2N2)=r2N2(1−K2N2−s2K1N1)
其中s1 甲种群个体的生存能力,值越小生存能力越强;s2 同理。
MATLAB 代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| function [t, N1, N2] = population_competition(r1, r2, K1, K2, s1, s2, N10, N20, t0, tf, dt)
t = t0:dt:tf; N1 = zeros(1, length(t)); N2 = zeros(1, length(t)); N1(1) = N10; N2(1) = N20;
for i = 1:length(t)-1 N1(i+1) = N1(i) + dt * r1 * N1(i) * (1 - N1(i)/K1 - s1 * N2(i)/K2); N2(i+1) = N2(i) + dt * r2 * N2(i) * (1 - N2(i)/K2 - s2 * N1(i)/K1); end end
|
例1
甲乙种群个体生存能力相差较大,其他条件相同:
1 2
| [t, N1, N2] = population_competition(0.5, 0.5, 100, 100, 0.5, 2, 10, 10, 0, 20, 0.01); plot(t, N1, t, N2, 'LineWidth', 2), grid on, xlabel('t'), ylabel('N'), legend('N1', 'N2');
|
最终甲种群达到了环境容量,乙种群灭绝:
例2
甲乙种群生存能力相差较小,其他条件相同:
1 2
| [t, N1, N2] = population_competition(0.5, 0.5, 100, 100, 0.7, 0.6, 10, 10, 0, 50, 0.01); plot(t, N1, t, N2, 'LineWidth', 2), grid on, xlabel('t'), ylabel('N'), legend('N1', 'N2');
|
甲乙种群共存,生存能力较强的乙种群数量收敛在高位: