问题很简单,一个物体正在从东西向移动,速度为v1
,另一个物体从南北以速度{{1}移动}。
我只需要算法(公式)来计算它们之间的最短距离,这样我就可以为它编写一个程序。
我确实有它们之间的距离和它们的路径,它们是d1和d2。
答案 0 :(得分:2)
假设您要求{-1}}的二维空间,请让坐标轴上的起点为t=0
。我们可以假设这是因为一个物体总是水平移动(E-W方向,沿X轴)和其他垂直移动(S-N方向,沿Y轴)。现在,经过一段时间(d1,0) and (0,d2)
,他们的职位将是t
和(d1-t*v1)
。 (速度 - 距离 - 时间关系)。
现在,它们之间的距离为(0,d2-t*v2)
,
t
因此,区分双方D = d^2 = (d1-t*v1)^2 + (d2-t*v2)^2
,
t
要使D最小,dD/dt = 2(-v1)(d1-t*v1) + 2(-v2)(d2-t*v2) ....(1)
和第二差分必须为正。现在,第二个差异:
dD/dt = 0
所以,等于(1)= 0,我们得到
d2D/dt2 = 2*v1^2 + 2*v2^2 which is positive for all real v1/v2. So, if `dD/dt = 0`, distance will be minimum.
所以,在t = (d1v1 + d2v2)/(v1^2 + v2^2)
获取sqrt(D)
,这将是您的答案。
PS:在数学堆栈交换中询问这些类型的问题。