专业数学建模实验1.docx
《专业数学建模实验1.docx》由会员分享,可在线阅读,更多相关《专业数学建模实验1.docx(15页珍藏版)》请在冰豆网上搜索。
专业数学建模实验1
《数学建模与数学实验》实验报告
实验1种群生存模型
专业、班级
学号
姓名
课程编号
81010240
实验类型
验证性
学时
2
实验(上机)地点
教七楼数学实验中心
完成时间
2010-
任课教师
谷根代
评分
一、实验目的及要求
1.掌握数学软件Matlab的基本用法和一些常用的规则,能用该软件进行编程;
2.能够借助数学软件进行常微分方程初始问题的求解和分析;
3.理解种群生存的相互竞争、相互依存和弱肉强食的数学模型和机理。
二、借助数学软件,研究、解答以下问题
(一)在两种群的相互竞争模型中,给定
,讨论
的情况下的竞争结果,并给出解释。
【解】:
首先考虑得到数值解,程序如下:
functiondx=one(t,x)
%UNTITLED3Summaryofthisfunctiongoeshere
%Detailedexplanationgoeshere
r1=2.5;
r2=1.8;
N1=1.6;
N2=1;
sigma1=0.5;
sigma2=1.6;
dx=zeros(2,1);
dx
(1)=r1*x
(1)*(1-x
(1)/N1-sigma1*x
(2)/N2);
dx
(2)=r2*x
(2)*(1-x
(2)/N2-sigma2*x
(1)/N1);
end
又写了一个M文件:
[T,X]=ode15s('one',[0,8],[1,2]);
plot(T,X(:
1),'*',T,X(:
2),'+')
xlabel('time')
ylabel('number')
legend('X1(t)','X2(t)')
title('sigama1小于sigma2的竞争模型')
得到结果:
相图为:
结果分析:
开始两种群均生存,在资源有限的情况下相互竞争,由于数量较多导致资源匮乏因而均有一定程度的下降。
在竞争的过程中,sigma1小于sigma2,即对供养甲的资源的竞争中乙弱于甲,对供养乙的资源的竞争中甲强于乙。
于是乙种群将灭绝,最终剩下甲种群达到平衡状态。
2.同理得到两者相等为:
结果分析:
如上分析,只是在个资源的竞争中可认为两者的竞争力相等,这种情况一般是两者的sigma均小于1,实际上并不是竞争力相当,而是在甲的资源竞争中甲有优势但是在乙的资源竞争中乙有优势。
于是最终达到了所谓的平衡模式。
这种竞争在实际中很少出现。
3.Sigma1大于sigma2的情形:
结果分析如第一问。
之后考虑到书本P186页的稳定性分析,用matlab实现,代码如下:
symsx1x2;
S=solve('r1*x1*(1-x1/N1-sigma1*x2/N2)=0','r2*x2*(1-sigma2*x1/N1-x2/N2)=0');
Sx1=S.x1
Sx2=S.x2
symsx1x2r1N1r2N2sigma1sigma2;
f=r1*x1*(1-x1/N1-sigma1*x2/N2);
g=r2*x2*(1-sigma2*x1/N1-x2/N2);
fx1=diff(f,x1,1);
fx2=diff(f,x2,1);
gx1=diff(g,x1,1);
gx2=diff(g,x2,1);
A=[fx1fx2;gx1gx2]
p=-(fx1+gx2);
fori=1:
4
temp=subs(p,'x1',Sx1(i));
balancep=subs(temp,'x2',Sx2(i))
end
fori=1:
4
tempA=subs(A,'x1',Sx1(i));
balanceA=subs(tempA,'x2',Sx2(i));
balanceq=det(balanceA)
end
由于结果较长,只给出p的数值:
balancep=
-r1-r2
balancep=
r1-r2*(1-sigma2)
balancep=
-r1*(1-sigma1)+r2
balancep=
-r1*(1-(-1+sigma1)/(-1+sigma1*sigma2)-sigma1*(-1+sigma2)/(-1+sigma1*sigma2))+r1*(-1+sigma1)/(-1+sigma1*sigma2)-r2*(1-sigma2*(-1+sigma1)/(-1+sigma1*sigma2)-(-1+sigma2)/(-1+sigma1*sigma2))+r2*(-1+sigma2)/(-1+sigma1*sigma2)
(二)在两种群的相互依存模型中,给定
,讨论
的情况下的结果,并给出解释。
【解】:
第二题代码如第一题,只是改了f(x),g(x)函数的具体形式,三种图片如下:
1.
相图如下:
结果分析:
由于是互相依存,在数量比较大的时候均是超过环境所能容忍的范围,此时两者的数量均是下降。
在sigma2大于sigma1的时候,即sigma2大于1,表示甲要为乙提供足够的食物维持其生长,此时sigma1必须非常小(这里取0.01),否则收敛不到最大容量(会超过)。
考虑到sigma1的意义,
这个范围实际上是乙对甲提供食物加以限制,以防止甲过度生长(但是为什么要取的非常小仍有待思考)。
由此最终到达一种平衡。
2.两者相等的情况:
相图如下:
结果分析:
在这种情况下,sigma1和sigma2均小于1,此时据稳定性分析收敛于(N1,0)点,结果也如预期。
在这种情况下可认为甲的食物来源不止局限于乙,这种情况并没有实际意义。
因为在这种情况下甲和乙并不是在同一环境里的依存关系.
3.Sigma1大于sigma2的情况:
相图如下:
结果分析:
同第二种情况,此时sigma2小于1,也即收敛至(N1,0)点,并不是在同一环境里的依存关系。
第二题的稳定性分析如第一题:
(由于在依存关系的讨论中平衡点的特殊性,只有一个平衡点才是模型期望的结果,因此平衡性分析就显得特别重要)
取p的结果:
balancep=
-r1+r2
balancep=
r1-r2*(-1+sigma2)
balancep=
-r1*(1-(-1+sigma1)/(-1+sigma1*sigma2)-sigma1*(-1+sigma2)/(-1+sigma1*sigma2))+r1*(-1+sigma1)/(-1+sigma1*sigma2)-r2*(-1+sigma2*(-1+sigma1)/(-1+sigma1*sigma2)+(-1+sigma2)/(-1+sigma1*sigma2))-r2*(-1+sigma2)/(-1+sigma1*sigma2)
(三)在两种群的弱肉强食模型中,给定
,讨论
的情况下的结果,并给出解释。
【解】:
第三题代码如第一题,只是改了f(x),g(x)函数的具体形式,图片如下:
结果分析:
拟合效果不佳。
Volterra模型并没有反应出捕食模型的周期性变化,而是趋向于一种平衡态,即模型存在稳定点。
生态系统的结构应该是稳定的,即受到烦扰出现偏差的时候系统内部存在制约作用使得系统恢复原状,但是Volterra模型无法表示这一点。
利用课本P190页模型
functiondx=three(t,x)
%UNTITLEDSummaryofthisfunctiongoeshere
%Detailedexplanationgoeshere
r=1;
d=0.5;
a=0.1;
b=0.02;
dx=zeros(2,1);
dx
(1)=x
(1)*(r-a*x
(2));
dx
(2)=x
(2)*(-d+b*x
(1));
end
[T,X]=ode45('three',[0.1,15],[25,2]);
plot(T,X(:
1),'*',T,X(:
2),'+')
xlabel('time')
ylabel('number')
legend('X1(t)','X2(t)')
相图为:
结果分析:
相图很好的说明了两种群变化的周期性,即捕食者与被捕食者在开始食物丰富的时候数量增加,被捕食者的资源首先受到限制于是数量下降,之后捕食者由于食物数量下降数量也下降(有一定的时间差),捕食者数量少了,被捕食者数量又增多由此循环。
三、本次实验的难点分析
实事求是的分析你在本次实验中遇到的难点及可能的解决方案,这些难点可能来自建模、编程及一些其它方面的问题。
这些问题的解决对你以后的进步和提高具有重要的作用和意义。
本次试验程序部分并不是很难,主要是搞清楚各个参数的意义,搞清楚参数的变化导致结果变化的原因。
由此必须要对模型有一个比较深入的了解,体会模型的思想。
四、参考文献
所列出的参考文献应是你在解答二中的问题中所引用的结果、结论或公式等,以帮助阅读者更清楚的了解你的解答细节及相关内容。