【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 = \frac{v_0t - y}{x - 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\sqrt{1 + y\prime^2}dx = 5v_0t\cdots\cdots(2) 0x1+y2 dx=5v0t(2)

  联立(1)(2)两式,可得:
y ′ ′ = 1 + y ′ 2 5 ( 1 − x ) y\prime\prime = \frac{\sqrt{1 + y\prime^2}}{5(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]);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

九死九歌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值