【问题标题】:Finding distance from closest point in curve to any arbitrary point in bounded n dimensional space in Python在Python中查找从曲线中最近点到有界n维空间中任意点的距离
【发布时间】:2020-04-18 10:36:27
【问题描述】:

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

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

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

【问题讨论】:

    标签: python optimization scipy minimization


    【解决方案1】:

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

    【讨论】:

    • 谢谢!我没有考虑到这一点。如果曲线的表达式太复杂而无法手动处理,有什么好的选择?
    • 试试符号数学软件MAPLE、mathematica,还有免费的。
    • 检查sympy.org/en/index.html 似乎有用。
    猜你喜欢
    • 1970-01-01
    • 2021-07-20
    • 1970-01-01
    • 2016-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-02
    相关资源
    最近更新 更多