[數學建模]數學建模算法和模型(B站視頻)(六)
種羣競爭模型
模型背景
當兩個種羣爲爭奪同一食物來源和生存空間相互競爭時,常見的結局是,競爭力弱的滅絕,競爭力強的達到環境容許的最大容量。
使用種羣競爭模型可以描述兩個種羣相互競爭的過程,分析產生各種結局的條件。
模型假設
有甲乙兩個種羣,他們獨自生存時,數量變化服從logistic規律
兩種種羣在一起生存時,乙對甲的增長的阻滯作用與乙的數量成正比,甲亦然。
競爭模型
其中x(t),y(t)分別爲甲乙兩種羣的數量,r1 r2爲它們的固有增長率,n1 n2爲它們的最大容量。s1的含義是對於供養甲的資源來說,單位數量的乙(相對n2)的消耗爲單位數量甲(相對n1)消耗的s1倍,s2同理。
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;
plot(x(:,1),x(:,2),'LineWidth',2),grid %作相軌線
結果分析
圖1表示兩種族隨時間的變化的數量變化;
圖2x軸表示x1種族的數量,y軸表示x2種族的數量
最後數值穩定在x=100,y=0上,即物種甲達到最大值,物種乙滅絕。
改變n1,n2:
n1=10000,n2=100
由於一開始甲物種的數量相對較少,所以乙物種得以快速增長,數量一度達到90以上,但最終仍然滅絕。物種容量的改變並不能影響最終誰會滅絕。
改變x10,x20:
x10=10,x20=100:
乙物種的初始數量大使其滅絕時間稍稍延後,但它滅絕的趨勢不變。綜上,無論怎樣改變r1,r2,n1,n2,x0,y0,都改變不了最後甲物種存活並達到數量最大且乙物種滅絕的結果。
s1>1,s2<1
s1=1.5,s2=0.7
最後甲物種滅絕,乙物種存活並達到數量極限。
s1<1,s2<1
s1=0.8,s2=0.7
最後穩定在x= 45.4546 y=68.1818上。兩物種共存。
適用情況
不同企業推出的類似產品可應用種羣競爭模型