【Matlab数学建模】微分方程求解导弹问题
设位于坐标原点的甲舰向位于xxx轴上点A(1,0)A(1, 0)A(1,0)处的乙舰发射导弹,导弹始终对准乙舰。如果乙舰以最大的速度v0v_0v0(v0v_0v0是常数)沿平行于yyy轴的直线行驶,导弹的速度是5v05v_05v0,求导弹运行的曲线,乙舰行驶多远时,导弹会将它击中? 我们设在时刻为t时,导弹的位置是P(x(t),y(t))P(x(t), y(t))P(x(t),y(t)
设位于坐标原点的甲舰向位于xxx轴上点A(1,0)A(1, 0)A(1,0)处的乙舰发射导弹,导弹始终对准乙舰。如果乙舰以最大的速度v0v_0v0(v0v_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′=x−1v0t−y即:v0t=(1−x)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+y′2dx=5v0t⋯⋯(2)
联立(1)(2)两式,可得:
y′′=1+y′25(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]);

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