我正在使用Python处理此问题。
假设我在n维(紧凑)空间中有一些点p和一维任意曲线。如何找到曲线中最接近指定点p的点?我在Find minimum distance from point to complicated curve中找到了答案,但是Shapely仅在平面上起作用,并且由于定义曲线的参数数量,我正在使用的曲线的表达式位于维数范围为2到16的空间中。这些曲线的表达式始终是已知的。
[我还尝试将scipy.optimize
与SLSQP
结合使用以最小化距离功能,但它并不总是有效。例如,如果曲线为np.sin(15*x)
,并且这些点仅在以(0.5, 0.5)
为中心的单位正方形中,则曲线的某些部分仅在两个维度之一的正方形内,并且某些点的最小化失败。
如果知道曲线的解析形式,则总是知道点x(t),y(t)到外部点的距离。您可以以分析形式写距离。因此,您需要从距离表达式中找到导数并找到根。