导弹追踪问题:蒙特卡罗模拟+matlab代码

news2024/11/19 7:29:12

问题描述

在这里插入图片描述

蒙特卡罗模拟思想

在这里插入图片描述
采用微元法以直代曲的思想,假设一个个小时间段内,B船先走完一段直线距离后,导弹朝着两者连线方向走直线,这样若干条直线便近似拟合导弹轨迹。代码中判断碰撞的依据是A、B之间的距离小于某个阈值,导弹射程即导弹碰撞之前的最大飞行距离。

Matlab参考代码

% 初始化参数
% B船初始位置
B_x = 20;
B_y = 0;

% 导弹初始位置
A_x = 0;
A_y = 0;
v_B = 200;  % B船的速度
v_A = 3 * v_B;  % 导弹的速度
B_range = 50;  % 导弹射程
dt = 0.0000001;  % 时间步长
min_distance=0.001;%认为碰撞最大距离
t=0; % 初始化导弹击中B船的时间
d=0; % 初始化导弹飞行的距离
m=sqrt(2)/2; %定义常量
dd=sqrt((B_x-A_x)^2+(B_y-A_y)^2); %导弹与B船的距离
plot(A_x,A_y,'.k','MarkerSize',1);hold on; %不关闭图形,继续画图
plot(B_x,B_y,'.k','MarkerSize',1);hold on; %不关闭图形,继续画图
grid on; %打开网格线
axis([0 30 0 10]) %设置x轴范围、y轴范围
k=0; %控制画图速度
while(1) %当两者距离足够小时,表示导弹击中B船 
  t=t+dt; %更新导弹飞行时间
  B_x=20+t*v_B*m;B_y=0+t*v_B*m; %更新B船位置
  %更新导弹位置
  tan_alpha=(B_y-A_y)/(B_x-A_x);
  cos_alpha=1/(sqrt(1+tan_alpha^2));
  sin_alpha=tan_alpha/(sqrt(1+tan_alpha^2));
  A_x=A_x+v_A*dt*cos_alpha; A_y=A_y+v_A*dt*sin_alpha;
  %更新导弹飞行距离
  d=d+v_A*dt;
  %计算导弹与B船距离
  dd=sqrt((B_x-A_x)^2+(B_y-A_y)^2);
  
  k=k+1;
  if mod(k,1000)==0 %每刷新1000次时间画一个图
    plot(A_x,A_y,'.k','MarkerSize',1);hold on; %不关闭图形,继续画图
    plot(B_x,B_y,'.k','MarkerSize',1);hold on; %不关闭图形,继续画图
    pause(0.001); %暂停0.001s后再继续下面的操作
  end
  %导弹达到最大射程
  if d>50
      disp('导弹没有击中B船');
      break;
  end 
  %导弹击中B船
  if d<=B_range && dd<min_distance
      disp(['导弹飞行',num2str(d),'个单位后击中B船'])
      disp(['导弹飞行时间为',num2str(t*60),'分钟'])
      break;

  end

end

运行结果

在这里插入图片描述

导弹飞行27.8018个单位后击中B船
导弹飞行时间为2.7802分钟

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2132752.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JSON 数据 Excel 行转列

有如下JSON数据 [{id:1,name:小明,score:90}, {id:2,name:小李,score:89}, {id:3,name:小王,score:77}, {id:4,name:小刘,score:56}] 粘贴到 Excel 选中列-->数据tab-->分列 下一步 分隔符号-->其他【,】-->完成 CtrlF 替换-->全部替换 掉不要的字符为空 得…

代码随想录Day 43|leetcode题目:300.最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组

提示&#xff1a;DDU&#xff0c;供自己复习使用。欢迎大家前来讨论~ 文章目录 动态规划Part10题目一&#xff1a;300.最长递增子序列解题思路&#xff1a; 题目二&#xff1a;674. 最长连续递增序列解题思路&#xff1a; 题目三&#xff1a; 718. 最长重复子数组解题思路滚动…

Radiance Field Learners As UAV First-Person Viewers 精读

1. 多尺度相机空间估计模块&#xff1a; 关键帧选择器&#xff1a;自动选择最具代表性的帧进行渲染&#xff0c;减少计算量&#xff0c;提高渲染效率。无人机轨迹预测&#xff1a;通过历史轨迹预测无人机的未来位置&#xff0c;确保实时视角调整&#xff0c;提高无人机导航的准…

云渲染与AI渲染分别是什么?两者的优势对比

云渲染和AI渲染是两种先进的渲染技术&#xff0c;它们各自具有独特的优势和应用场景。下面针对两种情况来简单说明下。 1、云渲染&#xff1a; - 定义&#xff1a;云渲染是一种利用远程服务器(云端)来处理和生成渲染效果的技术。它允许用户将计算密集型的任务转移到云端&#…

[论文笔记] CSFCN

摘要 上下文建模或多级特征融合方法已被证明可以有效提高语义分割性能。 然而&#xff0c;它们并不是专门处理像素上下文不匹配和空间特征不对齐的问题&#xff0c;并且高计算复杂度阻碍了它们在实时场景中的广泛应用。 在这项工作中&#xff0c;我们提出了一种轻量级的上下文…

8.第二阶段x86游戏实战2-实现瞬移

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 本次游戏没法给 内容参考于&#xff1a;微尘网络安全 工具下载&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd6tw3 提…

【C++11 —— 包装器】

C11 —— 包装器 包装器function包装器function包装器介绍function包装器统一类型function包装器的意义 bind包装器bind包装器介绍bind包装器绑定固定参数bind包装器调整传参顺序bind包装器的意义 包装器 function包装器 function包装器介绍 function包装器 也叫作适配器。C…

【Go】使用Goland创建第一个Go项目

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

go-zero的快速实战(完整)

微服务框架 go-zero 的基本介绍 go-zero 是一个集成了各种工程实践的 web 和 rpc 框架。通过弹性设计保障了大并发服务端的稳定性&#xff0c;经受了充分的实战检验。 go-zero 中的 api&#xff0c;rpc&#xff0c;数据库等涉及的代码&#xff0c;都可以给我们一键生成&#…

计算机毕业设计 自习室座位预约系统的设计与实现 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…

RTC、ADC

RTC RTC&#xff08;Real-Time Clock&#xff09;是实时时钟模块&#xff0c;用于跟踪实际时间&#xff08;年、月、日、时、分、秒&#xff09;&#xff0c;即使在系统断电或处于低功耗模式下也能保持时间的准确性。 特点 时间和日期跟踪低功耗模式支持可编程闹钟和定时器备…

贪心算法day31|56. 合并区间、738. 单调递增的数字(整数与字符串的转换)、贪心刷题总结

贪心算法day31|56. 合并区间、738. 单调递增的数字、贪心刷题总结 56. 合并区间738. 单调递增的数字贪心刷题总结 56. 合并区间 以数组 intervals 表示若干个区间的集合&#xff0c;其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间&#xff0c;并返回 …

大模型微调 - 自动加载预训练模型

大模型微调 - 自动加载预训练模型 flyfish AutoModelFor 是 Hugging Face transformers 库中的一个通用接口&#xff0c;这里用的是modelscope &#xff0c;用于自动加载预训练模型&#xff0c;涵盖多种任务的模型。AutoModelFor 后面接不同的任务名称会对应不同的模型架构&a…

基于 CycleGAN 对抗网络的自定义数据集训练

目录 生成对抗网络&#xff08;GAN&#xff09; CycleGAN模型训练 训练数据生成 下载开源项目CycleGAN 配置训练环境 开始训练 模型测试 可视化结果 生成对抗网络&#xff08;GAN&#xff09; 首先介绍一下什么是GAN网络&#xff0c;它是由生成器&#xff08;Generator…

工具、环境等其他小问题归纳

此篇文章内容会不定期更新&#xff0c;仅作为学习过程中的笔记记录 一、查询Windows 10环境下python版本与安装路径 若电脑成功安装了python环境&#xff0c;不小心忘了版本。 I、查询版本 1、cmd窗口快捷查询 Win R 输入cmd 进入窗口&#xff1b; 直接输入 python --version …

2024.9.13 系统运维

学习目标&#xff1a;了解 云计算运维 “云计算是中国的骄傲&#xff01;” 企业向云服务商租用云服务&#xff08;省钱、省心、省力&#xff09; 云计算&#xff1a;公有云、私有云&#xff08;大公司&#xff0c;数据隐私性&#xff09;、混合云&#xff08;私有云跑重要…

前端刷新进不了登录页面

报错props.ts:15 Uncaught (in promise) SyntaxError: Unexpected token 错误截图&#xff1a; 原因&#xff1a;谷歌浏览器版本过低&#xff0c;升级浏览器 比如这边版本就过低了

ThinkCMF框架任意内容包含漏洞的讲解

本文来自无问社区&#xff0c;更多网安资料可前往查看http://www.wwlib.cn 背景描述 ThinkCMF是一款基于PHPMYSQL开发的中文内容管理框架&#xff0c;底层采用ThinkPHP3.2.3构建。 ThinkCMF提出灵活的应用机制&#xff0c;框架自身提供基础的管理功能&#xff0c;而开发者可…

CSP 2023 提高级第一轮单项选择题解析

CSP 2023 提高级第一轮单项选择题解析 第1题第2题第3题第4题第5题第6题第7题第8题第9题第10题第11题第12题第13题第14题第15题 第1题 在 Linux 系统终端中&#xff0c;以下哪个命令用于创建一个新的目录&#xff1f;(B) A.newdir B.mkdir C.create D.mkfold 解析&#xff1a;记…

部署Tomcat和抓包

部署Tomcat 复制文件到桌面 查看自己是否有java环境&#xff0c;下图所示是有的&#xff0c;若没有需另行下载 解压tomcat文件 tar -xzvf apache-tomcat-7.0.96.tar.gz 下列为tomcat文件的几个重要文件 进入到bin文件中 启动tomcat ./startup.sh 可以先用本机查看是否启动…