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

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

  易知,在t时刻时:
y′=v0t−yx−1即:v0t=(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)

  另外,由于弧OPOPOP的长度是∣AQ∣|AQ|AQ的五倍,所以:

∫0x1+y′2dx=5v0t⋯⋯(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′25(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]);
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐