种群相互竞争Matlab,种群相互竞争的Matlab程序.doc

两种群相互竞争模型如下:

其中x(t),y(t)分别为甲乙两种群的数量,,为它们的固有增长率,,为它们的最大容量。的含义是,对于供养甲的资源来说,单位数量的乙(相对)的消耗为单位数量甲(相对)消耗的倍,对可以作相应解释。

经过计算,该模型无解析解,故用数值方法研究,为此提出以下问题:

(1) 设r1=r2=1,n1=n2=100,s1=0.5,s2=2,初值x0=y0=10,计算x(t),y(t),画出它们的图形及图(x,y),说明时间t充分大了以后x(t),y(t)的变化趋势。

(2) 改变r1,r2,n1,n2,x0,y0,但s1,s2不变(或保持s1<1,s2>1),计算并分析所得结果,若s1=1.5(>1),s2=0.7(<1),再分析结果。由此可以得到什么结论,请作出解释。

(3) 试验当s1=0.8,s2=0.7时会有什么结果,当s1=1.5,s2=1.7时,又会有什么结果。

模型求解:

程序如下:

fun.m:

function dx=fun(t,x,r1,r2,n1,n2,s1,s2)

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,1,1,100,100,0.5,2);%使用5级4阶龙格—库塔公式计算%后面的参数传给fun,分别是r1,r2,n1,n2,s1,s2

[t,x]%输出t,x(t),y(t)

plot(t,x,.-),grid%输出x1(t), x2(t)的图形

gtext(x1(t)),gtext( x2(t)),pause

plot(x(:,1),x(:,2),.-),grid,%作相轨线

gtext(x1),gtext(x2);

运行结果[t,x]为:

ans =

0 10.0000 10.0000

0.1000 10.8805 10.7120

0.2000 11.8235 11.4454

0.3000 12.8309 12.1962

0.4000 13.9044 12.9595

0.5000 15.0453 13.7295

……

29.4000 100.0000 0.0000

29.5000 100.0000 0.0000

29.6000 100.0000 0.0000

29.7000 100.0000 0.0000

29.8000 100.0000 0.0000

29.9000 100.0000 0.0000

30.0000 100.0000 0.0000

最后数值稳定在x=100,y=0上,即物种甲达到最大值,物种乙灭绝。

x(t),y(t)图形

x(y)的图形:

从第一张图可以看到,物种乙开始一段时间数量稍稍有所增长,10年后就渐渐灭绝了,最后稳定状态就只剩下甲物种。

改变参数进一步讨论:

下面在保持s1,s2不变的基础上,分别改变r1,r2;n1,n2;x0,y0观察变化趋势:

(1) 改变r1,r2:

r1=r2=0.3

我们可以看到甲乙两物种最终结果仍然是甲达到数量极限而乙灭绝,但与原先不同的是变化速度减缓了,这是由于自然增长率r1,r2变小的缘故(相当于变化率减小)。

(2) 改变n1,n2:

n1=10000,n2=100:

由于一开始甲物种的数量相对较少(x/n1),所以乙物种得以快速增长,数量一度达到90以上,但最终仍然灭绝。物种容量的改变并不能影响最终谁会灭绝。下面的情况证明了这一点:

(3) 改变x0,y0:

x0=10,y0=100:

乙物种的初始数量大使其灭绝时间稍稍延后,但它灭绝的趋势不变。

综上,无论怎样改变r1,r2,n1,n2,x0,y0,都改变不了最后甲物种存活并达到数量最大且乙物种灭绝的结果。

下面再改变s1,s2观察变化趋势:

(1) s1>1,s2<1

s1=1.5,s2=0.7

结果正和s1=0.5,s2=2时相反,最后甲物种灭绝,乙物种存活并达到数量极限。如果这时改变r1,r2,n1,n2,x0,y0这些参数,变化趋势和上面列举的相同(甲乙相反),这从方程的对称性上可以求证。现在得出结论,由s1,s2的物理意义,当某个s1或者s2大于1时(另一个小于1),它将严重消耗其作用的物种的生存资源,最终的结果是致使此物种灭绝。

(2) s1<1,s2<1

s1=0.8,s2=0.7

最后稳定在x= 45.4546 y=68.1818上。两物种共存。

(3) s1>1,s2>1

s1=1.5,s2=1.7

可见虽然s1,s2都大于1,但由于s2更大,更严重消耗了乙物种的生存资源,使乙物种在竞争中灭绝。

综上所述,s1,s2小于1时消耗生存资源的严重程度较轻,所以甲乙物种可以共存,但两者都达不到最大值;当其中之一大于1时,对应作用的物种就会由于生存资源的过度消耗而灭绝;当s1,s2都大于1时,两物种竞争激烈,最后s1,s2中更大者对应作用的物种灭绝。所谓物尽天择,自然资源是有限的,需要更少资源就能生存的物种在竞争中将占有优势。

还有一种情况,当s1,s2都大于1但相等时,由于方程的对称性,甲乙两物种都能生存下来,但都不能达到最大值。

展开阅读全文

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值