Matlab数学建模微分方程求解导弹问题

Posted 九死九歌

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Matlab数学建模微分方程求解导弹问题相关的知识,希望对你有一定的参考价值。

  设位于坐标原点的甲舰向位于 x x x轴上点 A ( 1 , 0 ) A(1, 0) A(1,0)处的乙舰发射导弹,导弹始终对准乙舰。如果乙舰以最大的速度 v 0 v_0 v0 v 0 v_0 v0是常数)沿平行于 y y y轴的直线行驶,导弹的速度是 5 v 0 5v_0 5v0,求导弹运行的曲线,乙舰行驶多远时,导弹会将它击中?

  我们设在时刻为t时,导弹的位置是 P ( x ( t ) , y ( t ) ) P(x(t), y(t)) P(x(t),y(t)),乙舰的位置是 Q ( 1 , v 0 t ) Q(1, v_0t) Q(1,v0t)

  易知,在t时刻时:
y ′ = v 0 t − y x − 1 即 : v 0 t = ( 1 − x ) y ′ + y ⋯ ⋯ ( 1 ) y\\prime = \\fracv_0t - yx - 1\\\\即:v_0t = (1 - x)y\\prime + y\\cdots\\cdots(1) y=x1v0tyv0t=(1x)y+y(1)

  另外,由于弧 O P OP OP的长度是 ∣ A Q ∣ |AQ| AQ的五倍,所以:

∫ 0 x 1 + y ′ 2 d x = 5 v 0 t ⋯ ⋯ ( 2 ) \\int_0^x\\sqrt1 + y\\prime^2dx = 5v_0t\\cdots\\cdots(2) 0x1+y2 dx=5v0t(2)

  联立(1)(2)两式,可得:
y ′ ′ = 1 + y ′ 2 5 ( 1 − x ) y\\prime\\prime = \\frac\\sqrt1 + y\\prime^25(1 - x) y=5(1x)1+y2

于是就能编写出代码

f = @(x, y) [
	y(2)
	0.2 * sqrt(1 + y(1) ^ 2) / (1 - x)
	];

[x, y] = ode15s(f, [0, 0.999], [0, 0]);
plot(x, y(:, 1), [1, 1], [0, 2]);
axis([0, 1, 0, 1]);

以上是关于Matlab数学建模微分方程求解导弹问题的主要内容,如果未能解决你的问题,请参考以下文章

怎么用matlab解方程啊?

Python实现导弹自动追踪

用 Python 实现了导弹自动追踪!

大佬是真会玩,竟然用 Python 模拟导弹防御!

一个简单的导弹自动追踪以及实时图片旋转算法,Python-pygame代码实现

导弹仿真基于matlab导弹轨迹和撞击位置仿真含Matlab源码 2067期