【问题标题】:Suggested package/function to compute the vertices of a 3-simplex (tetrahedron)计算 3-单纯形(四面体)顶点的建议包/函数
【发布时间】:2013-09-26 23:33:41
【问题描述】:

我想绘制包含一些 3D 随机点的 3-simplex。比如:

pts <- rnorm(30)
pts <- matrix(pts, ncol = 3)

有了这些点,我想计算包含这些点的 3-单纯形(不规则四面体)的顶点。有人可以建议一个可以做到这一点的包/功能吗?搜索单纯形相关材料的所有方式都以与将单纯形用于其他目的相关的答案为主,其中有很多。我只想计算一个并绘制它。看起来很简单,但我似乎不知道我需要的相关关键字。

【问题讨论】:

    标签: r


    【解决方案1】:

    如果没有人能找到合适的包装,您将不得不自己解决,如果您不要求它绝对合身,这并不难。见this question over at mathexchange

    在我看来,这个问题中提出的最简单的方法是平移原点,使所有点都位于正正方位(即所有点尺寸都是正数),然后将点投影到每个单位表示的单纯形内向量。要在原始坐标系中获取此单纯形,您可以对该单纯形中的点进行逆投影和逆平移。

    建议的另一种方法是找到包络球体(例如,您可以使用 Ritter 算法),然后找到球体的包络单纯形,这可能是一项更容易的任务,具体取决于您最熟悉的情况。

    【讨论】:

    • 感谢您的链接。我看过 stats.stackexchange 但没有看过数学网站。我只需要一个演示,所以我手动完成了。但对我来说很有趣的是,这个任务似乎没有在 R 中实现。很多很多凸包函数,但没有找到“边界单纯形”(我没有考虑过的一个很好的搜索词)。
    【解决方案2】:

    我认为您正在寻找 geometry 包中的 convhulln,但我不是专家,所以也许这不是您想要的。

    【讨论】:

    • 谢谢。我已经探索过那个包——它有点不典型。我没有看到函数convexhulln,但很难找到 R 接口的文档。你能告诉我更多细节吗,尤其是。指向 R 文档的链接?
    • 这里简要提到了convhulln: geometry.r-forge.r-project.org(没有正确的名称),它确实有一个适当的 R 帮助页面。
    • 我似乎不太了解文档,但我只能让simp3 &lt;- convhulln(pts, "FA") 返回凸包,而不是 3-单纯形。可能有一个选项可以做到这一点,但我无法弄清楚。
    • 确实,你是对的,我错误地认为凸包与 3-单纯形相同。搜索词minimum volume enclosing simplex 会返回很多描述算法的论文。不过,我还没有找到在 R 中实现的。
    • 我会搜索的,谢谢。正如我所提到的,找到正确的搜索词是一项挑战。
    猜你喜欢
    • 2012-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-29
    相关资源
    最近更新 更多