Optimization 寻找最小距离
我需要在给定的圆(或曲线)上找到一个或多个使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之间的距离Optimization 寻找最小距离,optimization,distance,geometry,curves,Optimization,Distance,Geometry,Curves,我需要在给定的圆(或曲线)上找到一个或多个使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最小的点?如果直线AB与圆相交,则C是该交点(请注意,可以有两个交点,且两者的距离相等d0+d1) 如果AB不与圆相交,则C
点C沿圆移动。我需要在给定的圆(或曲线)上找到一个或多个使d0+d1最小的点?如果直线AB与圆相交,则C是该交点(请注意,可以有两个交点,且两者的距离相等
d0+d1
)
如果AB不与圆相交,则C是圆上与直线AB上离圆心最近的点的假想线相交的点
网上有很多关于如何在一条直线上找到离另一点最近的点,以及如何找到两条直线之间的交点的文章,这将解决第二种情况。对于第一种情况,您可以通过谷歌搜索“线-圆交点”一般情况非常复杂,但特殊情况
A=(x1,y1)
和B=(x1,-y1)
和r>sqrt(x1^2+y1^2)
以原点为圆心的圆具有足够的对称性,至少在某些情况下可以获得解。我假设A≠ B
,(相当于y1≠ 0),否则这个问题对于一个圆来说是微不足道的
设dist(p,Q)
为点p
和Q
之间的欧几里德距离。连接A
和B
的(闭合)直线段是点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)
,其焦点是A
和B
。设P
为圆上的一点,D=f(P)
- 如果点
P
中与圆和椭圆E(D)
的切线不重合,P
既不是局限于圆的局部最小值,也不是局部最大值
- 如果切线重合,且圆的曲率大于
P
中E(D)
的曲率,则P
是仅限于圆的一个孤立的局部最大值f
- 如果切线重合,且圆的曲率小于
P
中E(D)
的曲率,则P
是仅限于圆的一个孤立的局部最小值f
- 如果切线重合且圆的曲率等于
P
中E(D)
的曲率,则
P
是一个孤立的f
局部最小值,如果dist(P,A)=dist(P,B)
,则限制在圆圈内
P
既不是f的局部最大值,也不是局部最小值
仅限于圆圈
首先,如果x1=0
,则很容易看出(在几何上不明显的情况下)最小化f
的圆上的点是x坐标0
的点,即P1=(0,r)
和P2=(0,-r)
。[如果r²,这甚至是真的≤ x1²+y1²
]
现在,假设x1≠ 0
,不丧失通用性x1>0
。然后很明显,最小化f
的圆上的点P=(x,y)
必须具有x>x1
。根据情况的对称性,点R=(R,0)
必须是限制在圆内的局部最小值或局部最大值f
计算f
在R
附近的行为,我们发现R
是局部极小值当且仅当
r ≥ (x1² + y1²) / x1
由于R
是E(f(R))
的最小曲率点(R
到E(f(R))
的切线与圆重合),R
也是全局最小曲率点
如果r<(x1²+y1²)/x1
,则r
是限制在圆圈内的f
的局部最大值。然后,f
在圆上有两个全局极小值,具有相同的x坐标。不幸的是,我没有一个好的公式来计算它们,所以我不能提供一个比迭代搜索更好的方法。你能添加图片吗?你需要定义你的距离函数!第二部分一般不正确。如果连接A
和B
的线段完全位于圆外,则当且仅当圆的中心与A
的距离与B
的距离相等时,最靠近线段的点将使距离之和最小化。然而,在这个问题上,情况就是这样。但是线段完全位于圆内,这使得在这种情况下事情更加复杂。嗨,丹尼尔。谢谢你的解释。问题是如何开始迭代搜索,并将其作为一种算法。