种群相互竞争的Matlab程序

两种群相互竞争模型如下:其中x(t),y(t)分别为甲乙两种群的数量,,为它们的固有增长率,,为它们的最大容量。的含义是,对于供养甲的资源来说,单位数量的乙(相对)的消耗为单位数量甲(相对)消耗的倍,

两种群相互竞争模型如下: x(t),y(t) 其中分别为甲乙两种群的数量,,为它们的固有增长率,, 为它们的最大容量。的含义是,对于供养甲的资源来说,单位数量的乙(相 对)的消耗为单位数量甲(相对)消耗的倍,对可以作相应解释。 经过计算,该模型无解析解,故用数值方法研究,为此提出以下问题: (1) r1=r2=1,n1=n2=100,s1=0.5,s2=2,x0=y0=10,x(t),y(t), 设初值计算画 x,ytx(t),y(t) 出它们的图形及图(),说明时间充分大了以后的变化 趋势。 (2) r1,r2,n1,n2,x0,y0,s1,s2s1<1,s2>1 改变但不变(或保持),计算并分 s1=1.5(>1),s2=0.7(<1), 析所得结果,若再分析结果。由此可以得到 什么结论,请作出解释。 (3) s1=0.8,s2=0.7s1=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-61e-9 相对误差,绝对误差 [t,x]=ode45(@fun,ts,x0,opt,1,1,100,100,0.5,2);%54—% 使用级阶龙格库塔公式计算 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 = 010.0000 10.0000 0.1000 10.8805 10.7120

腾讯文库种群相互竞争的Matlab程序