【数学建模】虫子追击问题(仿真)

devtools/2024/9/24 8:28:59/

已知

  1. 有四个虫子,分别是 A , B , C , D A,B,C,D A,B,C,D
  2. A , B , C , D A,B,C,D A,B,C,D分别在 ( 0 , 0 ) , ( 0 , 1 ) , ( 1 , 1 ) , ( 1 , 0 ) (0,0),(0,1),(1,1),(1,0) (0,0),(0,1),(1,1),(1,0)
  3. 四个虫子A追B,B追C,C追D,D追A
  4. 四个速度相同

需要研究的问题

  • 问题1:虫子追逐轨迹图

问题1:虫子追逐轨迹图

建立追击模型:
设在 t t t时刻时候,虫子 A ( x a , y a ) A(x_a,y_a) A(xa,ya)追虫子 B ( x b , y b ) B(x_b,y_b) B(xb,yb),求下一时刻 t + Δ t t+\varDelta t t+Δt时候虫子 A A A的坐标 ( x , y ) (x,y) (x,y)
连接 A , B A,B A,B两点,可以求出运动方向(角度),利用运动方向求下一刻坐标

{ cos ⁡ α = ( x b − x a ) / ( x b − x a ) 2 + ( y b − y a ) 2 sin ⁡ α = ( y b − y a ) / ( x b − x a ) 2 + ( y b − y a ) 2 \begin{cases} \cos{ \alpha = (x_b-x_a)/ \sqrt{(x_b-x_a)^2+(y_b-y_a)^2}}\\ \sin{ \alpha = (y_b-y_a)/ \sqrt{(x_b-x_a)^2+(y_b-y_a)^2}} \end{cases} {cosα=(xbxa)/(xbxa)2+(ybya)2 sinα=(ybya)/(xbxa)2+(ybya)2

{ cos ⁡ α = ( x − x a ) / ( x − x a ) 2 + ( y − y a ) 2 sin ⁡ α = ( y − y a ) / ( x − x a ) 2 + ( y − y a ) 2 \begin{cases} \cos{ \alpha = (x-x_a)/ \sqrt{(x-x_a)^2+(y-y_a)^2}}\\ \sin{ \alpha = (y-y_a)/ \sqrt{(x-x_a)^2+(y-y_a)^2}} \end{cases} {cosα=(xxa)/(xxa)2+(yya)2 sinα=(yya)/(xxa)2+(yya)2
按照物理模型
{ x = x a + c o s ( α ) ∗ Δ t ∗ v y = y a + s i n ( α ) ∗ Δ t ∗ v \begin{cases} x = x_a + cos(\alpha)*\varDelta t*v \\ y = y_a + sin(\alpha)*\varDelta t*v \end{cases} {x=xa+cos(α)Δtvy=ya+sin(α)Δtv

速度相同,消除速度得到最终模型
{ x = x a + ( x b − x a ) / ( x b − x a ) 2 + ( y b − y a ) 2 ∗ Δ t y = y a + ( y b − y a ) / ( x b − x a ) 2 + ( y b − y a ) 2 ∗ Δ t \begin{cases} x = x_a + (x_b-x_a)/ \sqrt{(x_b-x_a)^2+(y_b-y_a)^2}*\varDelta t \\ y = y_a + (y_b-y_a)/ \sqrt{(x_b-x_a)^2+(y_b-y_a)^2}*\varDelta t \end{cases} {x=xa+(xbxa)/(xbxa)2+(ybya)2 Δty=ya+(ybya)/(xbxa)2+(ybya)2 Δt

MATLAB:

matlab">x = [0,0,1,1];
y = [0,1,1,0];
detat = 0.001;%Δt
round = 0:pi/180:2*pi;
xlim([0,1]);
ylim([0,1]); 
hold on;
for i= 1:4plot(x(i),y(i));
end
flag = false;
for t=1:0.1:200for i= 1:4j = mod(i,4)+1;x(i) = x(i) + (x(j)-x(i))/sqrt((x(j)-x(i))^2+(y(j)-y(i))^2)*detat;y(i) = y(i) + (y(j)-y(i))/sqrt((x(j)-x(i))^2+(y(j)-y(i))^2)*detat;plot(x(i)+ 0.01*cos(round),y(i)+ 0.01*sin(round));if sqrt((x(j)-x(i))^2+(y(j)-y(i))^2)<=0.001%判断碰撞flag = true;break;endendif flagbreak;end
end

在这里插入图片描述


http://www.ppmy.cn/devtools/9592.html

相关文章

前端:防止重复请求的方案

前端&#xff1a;防止重复请求的方案 方案一、axios请求拦截器方案二、把相同的请求拦截掉方案三、&#xff08;最佳推荐&#xff09; 方案一、axios请求拦截器 通过使用 axios拦截器&#xff0c;在请求拦截器中开启全屏Loading&#xff0c;然后再响应拦截器中关闭。 import …

linux之进程通信

目录 一、进程通信介绍 1.目的 2.发展 3.进程通信是什么&#xff0c;怎么通信&#xff1f; 二、管道 1.介绍 2.匿名管道 1.单向通信管道原理 2.代码实现 3.管道特征 4.管道的四种情况 5.管道的应用场景 使用管道实现一个简易版本的进程池 3.命名管道 1.思考 2.…

24年上半年值得上车的CPU,个个都能闭眼入

最近 Intel 和 AMD 红蓝两厂算是打的如火如荼&#xff0c;不过对咱消费者来说这是好事儿&#xff0c;厂家打架&#xff0c;消费者得利&#xff0c;虽然硬盘涨价了&#xff0c;但好在它在装机预算里边儿占比不大&#xff0c;咱该装还得装。 那咱们今天就来盘点下目前比较值得入…

路由过滤,路由策略小实验

目录 一&#xff0c;实验拓扑&#xff1a; 二&#xff0c;实验要求&#xff1a; 三&#xff0c;实验思路&#xff1a; 四&#xff0c;实验过程&#xff1a; 1&#xff0c;IP配置&#xff1a; 2、R1 和R2 运行 RIPv2&#xff0c;R2&#xff0c;R3 和R4运行 oSPF&#xff0…

JavaScript零基础进阶2024详解

数组 JS中的数组相当于Java中的集合 数组长度可变 元素可变 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><…

Grass注册不了、按钮灰色的解决方案

近期相信grass挂机项目不少人有所有接触。还有不了解这个项目的可以看看博客&#xff1a; http://t.csdnimg.cn/bI4UO 但是不少人注册时遇到无法注册的问题&#xff0c;或者是注册按钮显示灰色&#xff0c;放上鼠标时显示禁止。这也是博主在尝试时遇到的问题。 经过探索&…

如何防止用户手动填写身份证信息来作弊?

当前有不少的网站或企业需要用户采用身份证读卡器远程在程序里面填写身份证信息&#xff0c;用于核实用户的真实身份&#xff0c;以完成某些业务&#xff0c;但是&#xff0c;有些用户为了达到不可告人的目的&#xff0c;会采用作弊手段&#xff0c;绕过机器采集这一关&#xf…

Go 之 sync.Mutex 加锁失效现象

我先声明一下&#xff0c;并不是真的加锁失效&#xff0c;而是我之前的理解有误&#xff0c;导致看起来像是加锁失效一样。于是乎记录一下&#xff0c;加深一下印象。 我之前有个理解误区&#xff08;不知道大家有没有&#xff0c;有的话赶紧纠正一下——其实也是因为我这块的…