2、基本假设:
① 捕食者的存在使食饵的增长率降低,假设降低的程度与捕食者数量成正比,
dx1?x1(r1??1x2) 即dt
② 食饵对捕食者的数量x2起到增长的作用, 其程度与食饵数量x1成正比,
dx2?x2(?r2??2x1) 即dt
综合以上①和②,得到如下模型:
模型一:不考虑人工捕获的情况
?dx1?x1(r1??1x2)??dt??dx2?x(?r??x)2221??dt
该模型反映了在没有人工捕获的自然环境中食饵与捕食者之间的制约关
系,没有考虑食饵和捕食者自身的阻滞作用,是Volterra提出的最简单的模型。
给定一组具体数据,用matlab软件求解。 食饵: r1= 1, λ1= 0.1, x10= 25; 捕食者(鲨鱼):r2=0.5, λ2=0.02, x20= 2;
?dx1?x1(1?0.1x2)??dt??dx2?x(?0.5?0.02x)21??dt
x1(0)?25,x2(0)?2编制程序如下
1、建立m-文件shier.m如下:
function dx=shier(t,x) dx=zeros(2,1); %初始化
dx(1)=x(1)*(1-0.1*x(2));
dx(2)=x(2)*(-0.5+0.02*x(1)); 2、在命令窗口执行如下程序:
[t,x]=ode45('shier',0:0.1:15,[25 2]); plot(t,x(:,1),'-',t,x(:,2),'*'),grid
1009080706050403020100051015 图中,蓝色曲线和绿色曲线分别是食饵和鲨鱼数量随时间的变化情况,从图中可以看出它们的数量都呈现出周期性,而且鲨鱼数量的高峰期稍滞后于食饵数量的高峰期。
画出相轨迹图:
plot(x(:,1),x(:,2)) 3025201510500102030405060708090100
模型二 考虑人工捕获的情况
假设人工捕获能力系数为e,相当于食饵的自然增长率由r1 降为r1-e,捕食者的死亡率由r2 增为 r2+e,因此模型一修改为:
设战前捕获能力系数e=0.3, 战争中降为e=0.1, 其它参数与模型(一)的参
?dx1?dt?x1[(r1?e)??1x2]?dx?2?x2[?(r2?e)??2x1]?dt数相同。观察结果会如何变化?
?dx1?dt?x1(0.7?0.1x2)??dx2?x2(?0.8?0.02x1)??dt?x1(0)?25,x2(0)?2??1)当e=0.3时: 2)当e=0.1时:
?dy1?dt?y1(0.9?0.1y2)??dy2?y2(?0.6?0.02y1)??dt?y1(0)?25,y2(0)?2??分别求出两种情况下鲨鱼在鱼类中所占的比例。
即计算
x2(t)p1(t)?;x1(t)?x2(t)画曲线:plot(t,p1(t),t,p2(t),'*') MATLAB编程实现 建立两个M文件
function dx=shier1(t,x) dx=zeros(2,1);
dx(1)=x(1)*(0.7-0.1*x(2)); dx(2)=x(2)*(-0.8+0.02*x(1)); function dy=shier2(t,y) dy=zeros(2,1);
dy(1)=y(1)*(0.9-0.1*y(2)); dy(2)=y(2)*(-0.6+0.02*y(1));
y2(t)p2(t)?y1(t)?y2(t)运行以下程序:
[t1,x]=ode45('shier1',[0 15],[25 2]); [t2,y]=ode45('shier2',[0 15],[25 2]); x1=x(:,1);x2=x(:,2); p1=x2./(x1+x2);
y1=y(:,1);y2=y(:,2); p2=y2./(y1+y2);
plot(t1,p1,'-',t2,p2,'*') 0.80.70.60.50.40.30.20.10051015
图中‘*’曲线为战争中鲨鱼所占比例。 结论:战争中鲨鱼的比例比战前高。
三、实验内容
1.求微分方程的解析解, 并画出图形, y?=y+2x,y(0)?1,0?x?1 解: 求解代码:
>> y=dsolve('Dy=y+2*x', 'y(0)=1', 'x') 输出:
画图代码: >> x=[0 1];
>> fplot(@(x)3.*exp(x)-2.*x-2,x)
输出:
2.求微分方程的数值解, 并画出图形, y???ycosx?0,y(0)?1,y?(0)?0 解:
函数M代码:
function y=fun(t,x) y= [x(2);-x(1)*cos(t)]; 求解代码:
t0=0;tf=10;
[t,y]=ode23('fun', [t0,tf], [1, 0]) 输出: