matlab实践(十一):导弹追踪

1.题目

在这里插入图片描述
a=9.94,x0=62.06

2.方程

我们有:
( d x d t ) 2 + ( d y d t ) 2 = w 2 (\frac{\mathrm d\mathrm x}{\mathrm d\mathrm t})^2+(\frac{\mathrm d\mathrm y}{\mathrm d\mathrm t})^2=\mathrm w^2 (dtdx)2+(dtdy)2=w2
还有导弹始终指向船
( d x d t d y d t ) = λ ( X − x Y − y ) \left.\left(\begin{array}{c}\frac{\mathrm{dx}}{\mathrm{dt}}\\\frac{\mathrm{dy}}{\mathrm{dt}}\end{array}\right.\right)=\lambda\left(\begin{array}{c}\mathrm{X-x}\\\mathrm{Y-y}\end{array}\right) (dtdxdtdy)=λ(XxYy)
则有:
{ d x d t = w ( X − x ) 2 + ( Y − y ) 2 (X-x) d y d t = w ( X − x ) 2 + ( Y − y ) 2 (Y-y) \begin{cases}&\frac{\mathrm{dx}}{\mathrm{dt}}=\frac{\mathrm{w}}{\sqrt{(\mathrm{X}-\mathrm{x})^2+(\mathrm{Y}-\mathrm{y})^2}}\text{(X-x)}\\&\frac{\mathrm{dy}}{\mathrm{dt}}=\frac{\mathrm{w}}{\sqrt{(\mathrm{X}-\mathrm{x})^2+(\mathrm{Y}-\mathrm{y})^2}}\text{(Y-y)}\\\end{cases} dtdx=(Xx)2+(Yy)2 w(X-x)dtdy=(Xx)2+(Yy)2 w(Y-y)
先编写函数:

function dy=eq1(t,y)
         v0=10;
         a=9.94;
         x0=62.06;

         dy=zeros(2,1);
         dy(1)=a*v0*(x0-y(1))/sqrt((x0-y(1))^2+(v0*t-y(2))^2);
         dy(2)=a*v0*(v0*t-y(2))/sqrt((x0-y(1))^2+(v0*t-y(2))^2);
end

接着利用ode45求解

%调用
[t,y]=ode45('eq1',[0 0.6],[0 0]);
plot(y(:,1),y(:,2),'r*')

在这里插入图片描述
更改函数中的v0可以得到不同的轨迹
对于第二题做法是求出中间时刻t,dx,dy再列方程求解
试探法得到t=0.3125,dy=0.9910,由公式一得到dx
新函数

function dy=eq3(t,y)
         v0=10;
         a=9.94;
         x0=62.06;
         t1=0.3125;
         dy=zeros(2,1);
         dy(1)=a*v0*(x0-y(1))/sqrt((x0-y(1))^2+((1.5*v0*t+t1*10)-y(2))^2);
         dy(2)=a*v0*((1.5*v0*t+t1*10)-y(2))/sqrt((x0-y(1))^2+((1.5*v0*t+t1*10)-y(2))^2);
         
end

求解

clc;clear;
x0=62.06;
a=9.94;
y11=0.990954556248263;

%调用
[t,y]=ode45('eq1',[0 0.3125],[0 0]);
dy=0.0767429352348030;
dx=sqrt(9.94*10*9.94*10-dy^2);
plot(y(:,1),y(:,2),'r*')
hold on
[t1,y1]=ode45('eq3',[0 0.325],[31.03 y11]);
plot(y1(:,1),y1(:,2),'b*')

在这里插入图片描述
红色是加速前的轨迹,蓝色是加速后的轨迹。

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-24 06:42:04       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-24 06:42:04       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-24 06:42:04       87 阅读
  4. Python语言-面向对象

    2023-12-24 06:42:04       96 阅读

热门阅读

  1. OpenCV技巧: 图像孔洞填充的方法与实现

    2023-12-24 06:42:04       56 阅读
  2. 云卷云舒:云原生业务应用成熟度模型

    2023-12-24 06:42:04       72 阅读
  3. facebook广告投放对落地页的要求

    2023-12-24 06:42:04       66 阅读
  4. POP3协议详解

    2023-12-24 06:42:04       54 阅读
  5. 说说对React refs 的理解?应用场景?

    2023-12-24 06:42:04       72 阅读
  6. 【Unity 摄像机组件】Camera场景摄像机的认识

    2023-12-24 06:42:04       57 阅读
  7. Codeforces Round 916 (Div. 3)(补题)——A---E

    2023-12-24 06:42:04       38 阅读
  8. 如何在Spring Boot中优雅地进行参数校验

    2023-12-24 06:42:04       48 阅读