博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《MATLAB智能算法超级学习手册》一一2.2 种群竞争模型的讨论
阅读量:6947 次
发布时间:2019-06-27

本文共 2623 字,大约阅读时间需要 8 分钟。

本节书摘来自异步社区出版社《MATLAB智能算法超级学习手册》一书中的第2章,第2.2节,作者:MATLAB技术联盟 , 高飞 , 许玢更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.2 种群竞争模型的讨论

MATLAB智能算法超级学习手册

蓝鲸和长须鲸是两个生活在同一海域的相似的种群,因此认为它们之间存在竞争。估计蓝鲸的固有增长率每年为5%,长须鲸为每年8%。估计蓝鲸环境承载力(环境能够支持的鲸鱼的最大数量)为150 000条,长须鲸为400 000条。鲸鱼竞争的程度是未知的。过去约100年剧烈的捕捞已经使鲸鱼数量减少,蓝鲸大约5 000条,长须鲸大约70 000条。蓝鲸是否会灭绝?

解:该问题是对2.1节第(1)、(2)、(3)问的具体化。根据实际统计数据,进行蓝鲸和长须鲸的种群竞争模型模拟计算。假设蓝鲸和长须鲸的增长情况仅与两者之间的竞争有关,与其他动物无关;不考虑环境改变带来的影响,环境承载力是稳定的;人类停止对鲸鱼的捕杀,鲸鱼按自然条件繁衍。

建立相应的数学模型:

image

由于蓝鲸和长须鲸的竞争是未知的,根据实际情况,当s 1、s 2取2时,种群间的相互影响已经非常大,所以估计s 1、s 2的区间均为(0,2)时,就可以很好地模拟实际情况。以0.1为步长,采用穷列举法,代入不同的s 1、s 2,求出最后蓝鲸与长须鲸的稳定状态数值。求解的图形如图2-8、图2-9所示。

image

image

不同情况下s 1、s 2的具体数值列表如下。

image
由以上三表所示结果可知,由于蓝鲸的固有增长率每年为5%,长须鲸为每年8%,蓝鲸环境承载力为150 000条,长须鲸为400 000条,所以长须鲸在相同的竞争程度条件下明显具有一定的优势。因而,当蓝鲸具有优势,最后稳态值为x=150000,y=0时的要s 1、s 2必定是s 2较大、s 1较小,而表2-2中s 1基本小于1、s 2基本大于1,正好体现了在蓝鲸对长须鲸影响小、蓝鲸对长须鲸影响大的条件下,蓝鲸具有优势的实际情况。

同样,当长须鲸具有优势,最后稳态值为x=0,y=400000时,根据实际,必然是s1较大(s 1>1),而s2较小(s2<1);同时,由于长须鲸本身对环境的适应力较强(体现在增长率和环境承载力较大),所以即使在相互抑制作用均较大(s1,s 2>1)时,仍然是长须鲸处于优势地位。综合所述,s 1>1时,无论s 2取何值,长须鲸都具有优势。表2-3中,s 1在1.1以上时,x=0,说明理论计算结果很好地符合实际情况。

通过以上分析可知,蓝鲸不一定毁灭,s 1、s 2的取值不同时,最后的稳定状态不同。

种群函数:

function dy=zhongqun4(t,y)global E  F  B  K dy=zeros(2,1);dy(1)=0.05*y(1)*(1-y(1)/150000-E(B)*y(2)/400000);dy(2)=0.08*y(2)*(1-F(K)*y(1)/150000-y(2)/400000);

主程序:

global E  F  B  K E=0:0.1:2;E=E';F=0:0.1:2;F=F';B=1;K=1;a=1;b=1;c=1;d=1;S=zeros(140,2);      %记录当蓝鲸与长须鲸的最后稳定状态都不为0时的s_ __1___,s_ __2___值H=zeros(250,2);       %记录蓝鲸具有优势,最后稳态值为x=150 000,y=0时的s_ __1___,s_ __2___值U=zeros(250,2);      %记录长须鲸具有优势,最后稳态值为x=0,y=400 000时的s1,s2值Num=zeros(441,4);    %记录蓝鲸与长须鲸的最后稳态值while B<22     K=1;     while K<22        options =odeset('RelTol',1e-4,'AbsTol',[1e-4 1e-5]);        [T,Y] = ode45('zhongqun4',[0 2000],[5000 70000],options);        [m,n]=size(Y);        Num(a,1)=Y(m,1);        if Num(a,1)<1           Num(a,1)=0;        end        Num(a,2)=Y(m,2);        if Num(a,2)<1           Num(a,2)=0;        end       Num(a,3)=E(B);       Num(a,4)=F(K);        if ((Y(m,1)-1>0)&(Y(m,2)-1>0))==1               S(b,1)=E(B);               S(b,2)=F(K);               b=b+1;        end         if (Y(m,2)-1)<0               H(c,1)=E(B);               H(c,2)=F(K);               c=c+1;         end         if (Y(m,1)-1)<0               U(d,1)=E(B);               U(d,2)=F(K);               d=d+1;        end        a=a+1;        K=K+1;     end     B=B+1;end

当s 1、s 2改变时,蓝鲸与长须鲸的量数:

>> [s1,s2]=meshgrid(Num(:,3),Num(:,4));>> LANJING=griddata(Num(:,3),Num(:,4),Num(:,1),s1,s2,'v4');CHANGXUJING=griddata(Num(:,3),Num(:,4),Num(:,2),s1,s2,'v4');>> mesh(s1,s2,LANJING)>> title('s1和s2改变时,蓝鲸的数量变化图像');mesh(s1,s2,CHANGXUJING);title('s1和s2改变时,长须鲸的数量变化图像')

转载地址:http://cirnl.baihongyu.com/

你可能感兴趣的文章
S5PV210-零基础体验uboot
查看>>
Hello, flex!
查看>>
利用bind实现智能DNS
查看>>
忘记敲sudo又想保存文件的办法
查看>>
祖玛右上角
查看>>
JSP-06-使用JDBC操作数据库
查看>>
使用Netty3或Netty4发布Http协议服务
查看>>
选择交换机和选择路由器的主要技能指标
查看>>
as3 用StyleSheet css 设置文本样式
查看>>
Bootstrap3 代码-变量
查看>>
转 数据库常用命令
查看>>
android--显式跳转和隐式跳转
查看>>
PHP和JS判断访问客户端的是PC还是移动设备
查看>>
FreeCodeCamp:Chunky Monkey
查看>>
MySQL数据库/数据表/字段--字符集查看/修改
查看>>
JavaScript核心语法学习部分(五)
查看>>
Error: php71w-common conflicts with php-common-5.4.16-46.el7.x86_64
查看>>
初探 回文树
查看>>
SQL根据列值查询表
查看>>
php 操作webservice实例
查看>>