【问题标题】:finding a minimum distance找到最小距离
【发布时间】:2013-01-28 21:44:56
【问题描述】:

我需要在给定的圆(或曲线)上找到一个或多个点,使 d0+d1 最小化?曲线的半径和中心分别是 (0,0) 和 'r' 并且点 A 和 B 的坐标是已知的。假设 A=(x1,y1) 和 B=(x1,-y1) 和 r> sqrt(x1^2+y1^2) 。 C 是圆的未知点,应该最小化长度 d0+d1 d0 - 圆上 A 到 C 之间的距离 d1-圆上B到C的距离

点 C 沿圆移动。我需要在给定的圆(或曲线)上找到一个或多个点,使 d0+d1 最小化?

【问题讨论】:

  • 可以加图片吗?你需要定义你的距离函数!

标签: optimization distance geometry curves


【解决方案1】:

如果线 AB 与圆相交,那么 C 就是那个交点(注意,可以有两个交点,并且两者的距离相等 d0+d1 !)。

如果 AB 不与圆相交,则 C 是圆上的点,与离圆心最近的 AB 线上的点相交的假想线。

网上有很多关于如何在一条直线上找到离另一个点最近的点,以及如何找到两条线的交点的文章,这将解决第二种情况。对于第一种情况,您可以谷歌“线圆交点”

【讨论】:

  • 第二部分通常不正确。如果连接AB 的线段完全位于圆外,当且仅当圆的中心距A 与距@ 的距离相等时,最接近线段的点使距离之和最小化987654327@。然而,在这个问题上,情况确实如此。但是线段完全位于圆内,这使得在这种情况下事情变得更加复杂。
【解决方案2】:

一般情况很复杂,但特殊情况

A=(x1,y1)B=(x1,-y1)r > sqrt(x1^2+y1^2)

以圆心为原点的圆具有足够的对称性,至少在某些情况下可以使解决方案变得可访问。我假设A ≠ B,(相当于y1 ≠ 0),否则这个问题对于一个圈子来说是微不足道的。

dist(P,Q) 是点PQ 之间的欧几里得距离。连接AB 的(闭合)线段是点P

的轨迹
dist(P,A) + dist(P,B) = dist(A,B)

对于D > dist(A,B),点的轨迹与

f(P) = dist(P,A) + dist(P,B) = D

是一个椭圆E(D),其焦点是AB。设P 为圆上的一个点,D = f(P)

  • 如果在点P 中圆和椭圆E(D) 的切线不重合,则P 既不是局部最小值也不是局部最大值f 仅限于圆。李>
  • 如果切线重合,并且圆的曲率大于PE(D) 的曲率,则P 是限制在圆内的f 的孤立局部最大值。
  • 如果切线重合,并且圆的曲率小于PE(D) 的曲率,则P 是限制在圆内的f 的孤立局部最小值。
  • 如果切线重合并且圆的曲率等于PE(D)的曲率,则
    • Pf 的孤立局部最小值,如果dist(P,A) = dist(P,B) 限制在圆圈内,
    • P 既不是局部最大值,也不是 f 的局部最小值,否则仅限于圆圈。

首先,如果x1 = 0,很容易看出(如果几何上不明显)最小化f的圆上的点是x坐标为0的点,即P1 = (0,r)和@ 987654363@。 [如果r² ≤ x1² + y1²,那甚至是真的。]

现在,假设x1 ≠ 0,不失一般性x1 > 0。那么很明显,圆上最小化f 的点P = (x,y) 必须有x > x1。根据情况的对称性,点R = (r,0) 必须是局部最小值或局部最大值f 限制在圆内。

计算fR 附近的行为,发现R 是局部最小值当且仅当

r ≥ (x1² + y1²) / x1

由于RE(f(R)) 的最小曲率点(RE(f(R)) 的切线与圆重合),因此R 也是全局最小值。

如果r < (x1² + y1²) / x1,则R 是限制在圆内的f 的局部最大值。然后f 在圆上有两个全局最小值,具有相同的 x 坐标。不幸的是,我没有一个很好的公式来计算它们,所以我无法提供比迭代搜索更好的方法。

【讨论】:

  • 你好丹尼尔。感谢您的精彩解释。问题是如何开始迭代搜索并将其作为一种算法。
猜你喜欢
  • 1970-01-01
  • 2016-10-14
  • 1970-01-01
  • 1970-01-01
  • 2019-04-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-06
相关资源
最近更新 更多