设位于坐标原点的甲舰向位于 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′=x−1v0t−y即:v0t=(1−x)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+y′2dx=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(1−x)1+y′2
于是就能编写出代码
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]);