【问题标题】:closest point to set of surfaces最接近一组曲面的点
【发布时间】:2012-09-07 19:53:26
【问题描述】:

我通过它们在空间中的位置 (x, y, z) 来定义这些表面。理想情况下,它们应该相交,但并非总是如此。但是,应该有一个点与所有表面的 Ecludian 距离最短。我的曲面没有解析表达式。我如何找到这一点,而不是遍历所有可能的候选人,可能有数千人?

【问题讨论】:

  • 首先,您需要更加精确。 “最短欧几里得距离”是什么意思?您是指到表面的距离的最小总和吗?或者到这些表面的最小最坏情况距离?另外,表面究竟是如何定义的?
  • 是的,最小距离总和。它们究竟是如何定义的?它们是网格上的一组点。想想 Matlab 的 3D 网格网格。或者在 x,y,z 中的 3D 区域内的点,形成一个连续的表面。如果它们是二维的,它们将定义一组曲线。那么问题是,曲线的交点是什么,或者如果它们不相交,那么最接近它们的点在哪里。或者,一个非常简单的案例,只是一组线。但随后我可以写出直线方程并找到要点。但当我处理 3D 表面时则不然。
  • 如果您将所有这些空间都视为一个稀疏空间,这个问题会有所不同吗?

标签: matlab optimization minimization


【解决方案1】:

如果您知道这些曲面背后的数学方程,我建议您通过制定最小二乘问题并解析求解来找到最近点。

如果您对这些表面一无所知,您应该尝试以下任一方法:

  1. 详尽的搜索 - 速度慢,但在可行的情况下,它总是有效。
  2. 某种非线性优化方法,如fminsearch。如果这些网格有足够的点,您可以简单地找到最近的点。如果没有,您也应该进行某种插值。如果您有一些起点,请将其提供给算法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-05
    • 2021-08-06
    • 2011-08-12
    相关资源
    最近更新 更多