在Python中查找从曲线中最近点到有界n维空间中任意点的距离

The*_*sco 1 python optimization minimization scipy

我正在使用 Python 解决这个问题。

假设我在 n 维(紧凑)空间中有一些点 p 和一维任意曲线。如何在曲线中找到最接近指定点 p 的点?我在Find minimum distance from point to complex curve 中找到了答案,但 Shapely 仅适用于平面,并且我正在处理的曲线的表达式驻留在维度数范围为 2 到 16 的空间中,这是由于定义了曲线。这些曲线的表达式总是明确知道的。

我也尝试使用scipy.optimizewithSLSQP来最小化距离函数,但它并不总是有效。例如,如果曲线是np.sin(15*x),并且点仅位于以 为中心的单位正方形(0.5, 0.5)中,则曲线的某些部分仅在两个维度中的一个维度中位于正方形内,并且某些点的最小化失败。

And*_*dov 5

如果您知道曲线的解析形式,您总是知道从点 x(t)、y(t) 到外部点的距离。你可以用分析形式写出距离。因此,您需要从距离表达式中找到导数并找到根。

  • 检查 https://www.sympy.org/en/index.html 似乎它可能有用。 (2认同)