首页 > 其他分享 >导弹追击问题

导弹追击问题

时间:2024-03-16 14:30:50浏览次数:26  
标签:追击 导弹 问题 v2 坐标 敌舰 距离

问题描述:

   导弹基地发现正北方向120km处海面上有一艘敌舰以90km/h的速度向正东方向行驶。该基地立即发射导弹追踪追击敌舰,导弹速度为450km/h,自动导航系统使导弹在任一时刻都能对准敌舰。试问导弹在何时何处击中敌舰?

问题分析:

  由于自动导航系统的存在,导弹始终对准了敌舰,所以导弹的轨迹应该是一个曲线。我们可以采用微分的思想解决这个问题。先计算出基地和敌舰的初始距离d,然后利用三角函数将导弹和敌舰的坐标表示出来,设敌舰在t(t极小)时间内走过的距离为s,而导弹到飞行的距离为s1,通过此时导弹与敌舰连线与x轴的角度算出导弹的新坐标(x1,y1),以及敌舰的新坐标(x2,y2)。通过选取足够多的t,就可以找到d足够小时(视作打击完成)的导弹的坐标及飞行时间。本题使用matlab编程和图像绘制。

相应公式:

d=\sqrt{(x1-x2)^{2}+(y1-y2)^2}

\cos \alpha =|x1-x2|/d

\sin \alpha =|y1-y2|/d

代码展示:

clear;clc;
v1=25;v2=125;n=200;t=1; %采用米做单位,时间间隔选定1秒
a=rand(n,2,2);
a(1,1,1)=0;a(1,2,1)=0;
a(1,1,2)=0;a(1,2,2)=120000;
c=1;
while c>0.01
    for i=1:1100   %冗余循环次数
    d=sqrt((a(i,1,1)-a(i,1,2))^2+(a(i,2,1)-a(i,2,2))^2);
    cos_1 = (abs(a(i,1,2)-a(i,1,1)))/d;
    sin_1 = (abs(a(i,2,2)-a(i,2,1)))/d;
    a(i+1,1,2)=a(i,1,2)+v1*t;
    a(i+1,2,2)=120000;
    a(i+1,1,1)=a(i,1,1)+v2*t*cos_1;   %依次描出导弹每个点的坐标
    a(i+1,2,1)=a(i,2,1)+v2*t*sin_1;
    plot(a(i,1,1),a(i,2,1),'r.',a(i,1,2),a(i,2,2),'b.')
    %legend('船','导弹','Location','northeastoutside')
    xlabel('东方向距离')
    ylabel('北方向距离')
    title('导弹追击')
    hold on;
    pause(0.01)
    if d<50  %假设导弹在离敌舰50米处即可命中
        break
    end
    end
    c=0;
end
time1 = a(i+1,1,2)/v2 %计算导弹命中的时间
zuobiao = [a(i,1,1) a(i,2,2)]
%显示命中坐标

图像示例:

展望:

   真实的追击过程远比模拟的困难,需要用到更加复杂的公式,为了简单模拟,追击过程被大大简化。希望以后我也能模拟出真正的追踪过程。

标签:追击,导弹,问题,v2,坐标,敌舰,距离
From: https://blog.csdn.net/2301_81340086/article/details/136761212

相关文章

  • mysql学习整理所有问题
    mysql中的者则表达式(也算做是模糊查询)使用//.来匹配有.的字符 数字或者字母后边加上?表示数字或者字母可选还是不可选  拼接字符串concat()  文本处理函数  同时指定两个列进行全文搜索(前提是这两个列必须增加索引)和against(“”inboolenmode)进行连用......
  • 面试攻略:项目经理常见问题及标准答案一网打尽
    一、请介绍下你自己这是每家公司在面试时基本都会问的第一个问题,但如何在三分钟内用简洁的语言表达出你的个人特点、经验、优势是十分考验人的,而面试官会在你的介绍中寻找符合工作要求的关键词。可采用:“我是谁+相关经验+为何来应聘”这样的结构来回答。例如:面试官您好,我......
  • Nginx部署vue项目刷新返回空白页问题
    这个问题很有可能是因为VueRouter的模式和Nginx配置之间的冲突导致的。当你在Vue应用中使用VueRouter的`history`模式时,URL会变成美观的形式,就像`http://mywebsite/myroute`,而不是`http://mywebsite/#/myroute`。这种模式下,当你尝试通过直接访问`http://mywebsite......
  • nodejs打包问题解决实例
    node命令集合npmsetregistryhttps://registry.npm.taobao.org/npmconfigsetregistryhttps://registry.npmjs.org/npmconfigsetsass_binary_sitehttps://npm.taobao.org/mirrors/node-sass/npmgetregistry //npm安装包的提示操作目录权限不足npmconfigsetu......
  • 谁能帮我看下哪里有问题?
    服务器上现有一个在运行的项目是用docker部署的,我现在要在这个服务器上部署我的应用,我的应用运行环境是php,我看服务器上已经安装了nginx的容器,并且有程序占用了php默认的9000端口,所以我的操作如下:1.创建php容器,将容器添加到与nginx容器同一个网络下“qflow”,将容器6000端口映射......
  • bean_backend开发遇到的问题
    开发中遇到的问题1.安装gradle(Homebrew)https://www.cnblogs.com/zhaoxue428/p/180731142.gradle构建(gradleinit)-相应文件settings.gradle和build.gradle3.想./gradlewbuild;无gradlew->gradlewrapper3.GradleWrapper脚本,执行构建gradleinit./gradlewbuild4......
  • K8S测试环境重启微服务遇到的问题---思路1
    场景测试环境,采用k8s容器化部署,通过rancher在web界面对资源进行管理;各项目组有独立的网关,多个微服务(根据业务功能、高内聚低耦合划分);网关是基于spring-cloud-gateway,定制扩展了一些功能,如鉴权、限流等;微服务是基于spring-cloud各组件,eureka、ribbon、hystrix等;由于是测试环......
  • openCV打开高清摄像头卡顿的问题
    cv2.VideoCapture(camera_number+cv2.CAP_DSHOW)是OpenCV在Windows平台下用于指定使用DirectShow作为视频捕获后端的一种方式。这里的cv2.CAP_DSHOW是一个常量,表示使用DirectShow(DirectXShow)技术来访问和控制摄像头。cv2.CAP_DSHOW参数含义:当你将cv2.CAP_DSHOW与摄像头......
  • 一种奇怪的方式(.gitignore模版问题)导致部署在CentOS服务器上采用Nginx和uWSGI的Django
    如图所示,在本地测试时好好的页面部署在CentOS服务器上用了Nginx和uWSGI就显示不了CSS样式。并且控制台上显示这一部分样式404Notfund于是我就开始各种查找技术贴学习,有说权限没开要修改nginx.conf配置中usernginx;为userroot;的,有说location结尾要加/的,有说DEBUG=True的,有说要......
  • C# 通信断线重连问题说明与示例
    引言:在开发网络应用程序时,通信断线是一个常见的问题。特别是在客户端与服务器或者两个客户端之间的通信,由于网络问题、服务器故障或者其他原因,通信可能会意外中断。作为C#开发者,我们需要确保应用程序能够优雅地处理这些情况,并且能够自动重连以恢复通信。本文将详细介绍在C#......