网站建站代理,网站建设都用哪个好,网站悬浮图标怎么做,优秀网页设计作品分析ppt2018年认证杯SPSSPRO杯数学建模
探究海豚猎捕时沙丁鱼群的躲避运动模型
A题 海豚与沙丁鱼
原题再现#xff1a; 沙丁鱼以聚成大群的方式来对抗海豚的捕食。由于水下光线很暗#xff0c;所以在距离较远时#xff0c;海豚只能使用回声定位方法来判断鱼群的整体位置#xf…2018年认证杯SPSSPRO杯数学建模
探究海豚猎捕时沙丁鱼群的躲避运动模型
A题 海豚与沙丁鱼
原题再现 沙丁鱼以聚成大群的方式来对抗海豚的捕食。由于水下光线很暗所以在距离较远时海豚只能使用回声定位方法来判断鱼群的整体位置难以分辨每个个体。鱼群的行动是有协调性的在没有外部威胁或障碍物时鱼群常常会聚成接近球形的形态。而当海豚接触甚至冲进鱼群鱼群则会进行协同的躲避所以不易在大鱼群中追踪一个目标。沙丁鱼的这种群体行为降低了其被海豚捕食的概率。 第一阶段问题 请你建立合理的数学模型来描述沙丁鱼群在遇到一条海豚捕食时的运动规律。
整体求解过程概述(摘要) 沙丁鱼为细长的银色小型鱼游泳迅速没有外部威胁时鱼群常聚成接近球形的形态而当捕食者进攻时会进行协同的躲避从而降低其被捕食的概率。本文基于沙丁鱼群遭遇一条海豚捕食时的情景研究沙丁鱼群对应的运动规律。考虑到海豚和沙丁鱼群的同向、相向运动以及二者之间的距离分析海豚进击模型。当距离较远时海豚通过回声定位来判断鱼群的整体位置此时沙丁鱼群并未意识到威胁的存在以接近球形的形态稳定行进。考虑个体视野范围以及速率差异改进 Boid 模型建立无序聚集运动模型并划分感知区域降维构建有序环绕运动模型。 当海豚进攻沙丁鱼群时鱼群进行协同躲避。考虑二者的相向、同向运动分析四种外部空间结构中空包围状、沙漏状、密集球状、驱赶聚集状的动态变化。构造个体沙丁鱼安全场划分为紧急逃离区域和适度逃离区域分析各区域内影响个体沙丁鱼运动速度矢量的多种因素采用主层次分析法提取出不同空间结构下不同区域内的主因子建立四种空间结构下鱼群的躲避模型。考虑沙丁鱼空间密度等因素引入随机森林算法对海豚捕食模型进行训练动态优化四种躲避模型下沙丁鱼被捕食的概率结果分析沙丁鱼群最优逃逸方式及运动规律。 采集大自然中海豚捕食沙丁鱼群的场景提取图片中的数据信息进行模型的验证结果表明沙丁鱼群遭遇一条海豚捕食时会优选呈中空包围状和密集球状进行逃逸。
问题分析 出于生存、避险、觅食等原因鱼类的行为方式往往表现为群体行为沙丁鱼往往以聚成大群的方式来对抗海豚的捕食。鱼群的行动是有协调性的在没有外部威胁或障碍物时鱼群常常会聚成接近球形的形态。而当海豚接触甚至冲进鱼群一方面当近处的鱼快速逃避时会给猎手海豚一个严重的心理错觉以为远处的鱼还没发觉于是扑向另外的对象。然而鱼本身的侧线反馈机制会使远处的鱼逃避得更快从而导致海豚找不到具体的目标一无所获。 此外鱼类集群运动机理的研究涉及团体动力学、集群行为学等领域围绕该方向的研究主要分为两大流派一类是利用理论推导和应用已有的结论试图去理解鱼类集群行为的内在原因另一类是从鱼类的实际集群运动和个体鱼的特征出发通过搭建模型去探索鱼类实际集群运动中存在的规律。由上述分析可以将海豚的捕食过程分为发现目标后的匀速前进阶段、变加速阶段、猛击捕食阶段。基于海豚的捕食过程可以沙丁鱼群的存在状态分为稳定状态和躲避状态。由于鱼群的形成是由个体逐渐汇集而成所以可以将沙丁鱼的稳定状态分为无序聚集状态和有序环绕状态。沙丁鱼在逃避过程中沙丁鱼群群体的形状、空间分布、结构等是处于不断变化的过程中鱼群在遇到外部攻击时鱼群的外部空间结构会出现动态变化会呈现驱赶聚集状、中空包围状、沙漏状和密集球状。 建立数学模型来描述沙丁鱼群在遇到一条海豚捕食时的运动规律的实质就在于深入分析沙丁鱼群稳定集群模型、海豚的进击捕食模型以及沙丁鱼群多种的逃避模型进而实现动态分析、动态寻优的过程。本文基于分析已有资料采用从个体到局部、从局部到整体的思想以 Boid 模型为基础通过部分改良提出沙丁鱼群的无序聚集运动模型采用降维的方法将三维模型降为二维模型提出沙丁鱼稳定环绕状态模型以分析沙丁鱼的有序环绕运动。结合海豚的进击捕食模型基于主成分分析方法简化沙丁鱼的运动方程建立模型模拟驱赶聚集状、中空包围状、沙漏状和密集球状四种逃避轨迹分析沙丁鱼在四种逃避状态下的被捕食概率探索有利于沙丁鱼群体进化的最优逃避方式。
模型假设 1. 假设本文中的个体沙丁鱼的一般游动是随机性的 2. 假设每个沙丁鱼个体能够感知其在群体中的位置 3. 该沙丁鱼群不受环境变化影响地震、海啸等自然灾害 4. 假设沙丁鱼群中的个体是存在部分差异的主要表现为尺寸上的大、小两种 5. 本文中模型所涉及的鱼群数量在短期内是不发生变化的被海豚捕食情况除外即不考虑个体沙丁鱼的突发死亡等非一般状况。
论文缩略图 全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可
部分程序代码(代码和文档not free)
clear;
clc;
n400;
x(1,:)10*rand(1,n);
y(1,:)10*rand(1,n);
drc(1,:)(rand(1,n)-0.5)*2*pi;
d[];
for k1:80for i1:nfor j1:nd(i,j)sqrt((x(i)-x(j))^2(y(i)-y(j))^2);endendfor i1:nd(i,i)inf;endfor i1:na0;b1;c0;e0;h0;l0;for j1:nif d(i,j)5aa1;ccx(j);eey(j);matan(y(j)/x(j));llm;endif d(i,j)1bb1;gatan((y(j)-y(i))/(x(j)-x(i)));hhg;endendD2atan(e/a-y(i))/(c/a-x(i));D31/a;D4h/b;drc(k1,i)0.4*drc(k,i)0.3*D20.2*D30.1*D4;v0.5;endfor i1:nx(k1,i)x(k,i)v*cos(drc(k1,i))*1;
y(k1,i)y(k,i)v*sin(drc(k1,i))*1;if x(k1,i)30x(k1,i)x(k1,i)-30;elseif x(k1,i)0x(k1,i)x(k1,i)30;endif y(k1,i)30y(k1,i)y(k1,i)-30;elseif y(k1,i)0y(k1,i)y(k1,i)30;endend
end
for i1:k%pause(0,1)plot(x(i,:),y(i,:),.)axis([0 30 0 30])getframe
endclear;
clc;
t1;n500;
x[];y[];xs[];
x(1,:)30*rand(1,n);y(1,:)30*rand(1,n);
draction(1,:)(rand(1,n)-0.5)*2*pi;
d[];a0;
xs(1,:)30*rand(1,1);ys(1,:)30*rand(1,1);
dractions(1,1)(rand(1,1)-0.5)*2*pi;
for k1:200dractions(k1,1)dractions(k,1);vs(k1,1)0.4;xs(k1,1)xs(k,1)vs(k1,1)*cos(dractions(k1,1))*1;ys(k1,1)ys(k,1)vs(k1,1)*sin(dractions(k1,1))*1;if xs(k1,1)30xs(k1,1)xs(k1,1)-30;elseif xs(k1,1)0xs(k1,1)xs(k1,1)30;endif ys(k1,1)30ys(k1,1)ys(k1,1)-30;elseif ys(k1,1)0ys(k1,1)ys(k1,1)30;end
for i1:nds(i)sqrt((x(k,i)-xs(k,1))^2(y(k,i)-ys(k,1))^2);for j1:nd(i,j)sqrt((x(k,i)-x(k,j))^2(y(k,i)-y(k,j))^2);endendfor i1:nd(i,i)inf;endfor i1:nA0;B0.1;for j1:nif d(i,j)0.3AA-draction(k,j)/d(i,j);BB-1/d(i,j);if A~0draction(k1,i)(1-t)*draction(k,i)-t*j/B;else draction(k1,i)draction(k,i);endelseif d(i,j)5d(i,j)0.2AA-draction(k,j)/d(i,j);BB-1/d(i,j);if A~0draction(k1,i)(1-t)*draction(k,i)t*j/B;else draction(k1,i)draction(k,i);endendendif ds(i)5aa1;%prevxx;%prevyy;if x(k,i)xs(k,1)draction(k1,i)atan((y(k,i)-ys(k,1))./(x(k,i)-
xs(k,1)));endif x(k,i)xs(k,1)draction(k1,i)atan((y(k,i)-ys(k,1))./(x(k,i)-
xs(k,1)))pi;endendif ds(i)5ds(i)10draction(k1,i)pi/2;endif ds(i)10ds(i)20if x(k,i)xs(k,1)
draction(k1,i)-atan((y(k,i)-ys(k,1))./(x(k,i)-
xs(k,1)));endif x(k,i)xs(k,1)draction(k1,i)-atan((y(k,i)-ys(k,1))./(x(k,i)-
xs(k,1)))pi;endendv(k1,i)0.2;end%×ø±ê¸üÐÂfor i1:nif ds(i)10x(k1,i)x(k,i)v(k1,i)*cos(draction(k1,i))*1.5;y(k1,i)y(k,i)v(k1,i)*sin(draction(k1,i))*1.5;elseif ds(i)10x(k1,i)x(k,i)v(k1,i)*cos(draction(k1,i))*1;y(k1,i)y(k,i)v(k1,i)*sin(draction(k1,i))*1;endif x(k1,i)30x(k1,i)x(k1,i)-30;elseif x(k1,i)0x(k1,i)x(k1,i)30;endif y(k1,i)30y(k1,i)y(k1,i)-30;elseif y(k1,i)0y(k1,i)y(k1,i)30;endend
end
for i1:kpause(0.2)plot(x(i,:),y(i,:),.,xs(i,:),ys(i,:),ro,markersize,12)title(沙丁鱼群躲避海豚捕食的二维图)xlabel(x);ylabel(y);%legend(沙丁鱼,海豚)axis([0 30 0 30])getframe;
endclear all
clc
warning off
load data.mat %储存数据信息
a randperm(30);
Train data(a(1:25),:);
Test data(a(26:end),:);
P_train Train(:,3:end);
T_train Train(:,2);
P_test Test(:,3:end);
T_test Test(:,2);
model classRF_train(P_train,T_train);全部论文及程序请见下方“ 只会建模 QQ名片” 点击QQ名片即可