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

embedded/2024/11/14 21:52:54/

已知

  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/embedded/8851.html

相关文章

JMeter组件--配置元件--响应断言

响应断言&#xff08;Response Assertion&#xff09; 当响应中有明显的业务标志时&#xff0c;我们可以采用该断言器检测响应报文返回的特征值&#xff0c;进而判断在业务上是否确定&#xff1b;使用频率非常高&#xff0c;大部分场景均可以使用该断言器。 右键 >>>…

【Java EE】文件操作

目录 1.认识文件 2.树型结构组织和目录 3.文件路径&#xff08;Path&#xff09; 4.其他知识 5.Java中操作文件 5.1File概述 5.1.1属性 5.1.2构造方法 5.1.3方法 5.2代码示例 1.认识文件 我们先来认识狭义的文件&#xff08;file&#xff09;。针对1硬盘这种持久化存…

Mini-Gemini: 探索多模态视觉语言模型的新境界

一、背景 在数字化时代&#xff0c;人工智能的发展正以前所未有的速度推进。特别是在多模态学习领域&#xff0c;结合视觉和语言的能力已成为研究的热点。最近&#xff0c;一篇名为“Mini-Gemini: Mining the Potential of Multi-modality Vision Language Models”的文章在arX…

(最详细)关于List和Set的区别与应用

关于List与Set的区别 List和Set都继承自Collection接口&#xff1b; List接口的实现类有三个&#xff1a;LinkedList、ArrayList、Vector。Set接口的实现类有两个&#xff1a;HashSet(底层由HashMap实现)、LinkedHashSet。 在List中&#xff0c;List.add()是基于数组的形式来添…

SQLAIchemy 异步DBManager封装-03得心应手

前言 SQLAIchemy 异步DBManager封装-01入门理解SQLAIchemy 异步DBManager封装-02熟悉掌握 在前两篇文章中&#xff0c;我们详细介绍了SQLAlchemy异步DBManager的封装过程。第一篇文章帮助我们入门理解了整体的封装结构和思路&#xff0c;第二篇文章则帮助我们更加熟悉和掌握了这…

SystemC 等待异步事件解决方案

本文为实现 SystemC 响应异步事件 解决方案。 应用场景&#xff1a; SystemC是一个支持系统事务级、行为级建模的开源的C library&#xff1b; 我们将SystemC仿真的模拟叫做模拟器。在很多场景下&#xff0c;模拟器要保持alive&#xff0c;等待异步async事件&#xff0c;做出…

大一考核题解

在本篇中&#xff0c;将尽力使用多种解法&#xff0c;来达到一题多练的效果。 1&#xff1a; 1.原题链接&#xff1a; 238. 除自身以外数组的乘积 - 力扣&#xff08;LeetCode&#xff09; 这道题首先一眼肯定想到拿整体的积除以当前元素&#xff0c;将结果作为ans&#xff0c;…

基于SSM的心理咨询管理管理系统(含源码+sql+视频导入教程+文档+PPT)

&#x1f449;文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 基于SSM的心理咨询管理管理系统拥有三个角色&#xff1a;学生用户、咨询师、管理员 管理员&#xff1a;学生管理、咨询师管理、文档信息管理、预约信息管理、测试题目管理、测试信息管理…