gpt4 book ai didi

algorithm - 给定 R3 中的向量列表,会生成多少个独特的平面?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:03:05 24 4
gpt4 key购买 nike

在研究球体堆积时,我遇到了这个问题,我有一个向量列表,我想知道它们生成了多少个平面。我正在生成这些从球体中心指向球体外表面接触点的向量列表,我想知道这些向量中有多少是共面的。例如,我想要一个将执行以下操作的算法..

给定向量 {1,2,3}、{2,4,6} 和 {0,6,9} 它应该报告只有一个唯一的平面由前两个和第三。

我的所有尝试都没有取得任何进展,因为每次我计算生成了多少架飞机时,我都大大多算了。我觉得这应该是一件容易的事,我也很好奇是否有任何线性代数可以以某种方式来拯救。如果我可以确定生成了多少个平面以及这些平面是什么,我认为很容易确定每个平面中有多少个向量,这是这个问题的最后一部分。如果有人能想到一个更通用的方法来处理任何二维或更大的维度,那实际上是理想的,但现在这就是我所关心的。

最佳答案

您可以使用 Gaussian elimination确定几个向量的 span 的维数。 (由这些的所有线性组合创建的空间 - 也称为矩阵的)

通过在矩阵的行中写入向量,从向量中创建一个矩阵。然后使用高斯消元法并计算仍然具有非零条目的行数。这是生成向量空间的维数。

由于您使用来自 R^3 的向量,因此它永远不会大于 3。然而,平面是一个二维向量空间,因此您需要找到导致 2 的向量的所有组合-dimensional span,一旦你实现了高斯消元法,就可以很容易地通过迭代你的向量找到它。

编辑:

一个例子,因为这似乎仍然会导致混淆:

你有一组 3 个向量:(1,0,0); (0,1,0); (0,0,1)

您可以从中创建 3 个不同的平面(通过组合这些向量中的任意两个,您会得到一个不同的平面。)要正式检查该声明是否正确,您需要对每一对执行以下操作 v1,v2向量:

  1. 检查 v1,v2 是否线性无关 - 如果不是,则它们不会创建平面,因此您继续选择接下来的两个向量。 (在这个例子中,它们总是线性无关的)
  2. 检查列表中的每个其他矢量,如果它 (v3) 不在创建的平面内(它不与 v1,v2 共面)。为此,对矩阵 (v1,v2,v3) 使用高斯消去法并确认矩阵的秩为 3。

如果第 2 步中的矩阵的秩为 2,这意味着向量 v1、v2、v3 共面。因此,您可以选择这些向量中的任意两个来生成完全相同的平面。

例如:您从向量 (1,0,0)(0,1,0) 开始。然后你检查其他几个向量,发现其中两个与你的初始向量共面(例如 (1,1,0)(-1,-1,0))。这意味着对于您的独特平面列表,您可以添加由这四个向量中的任意两个生成的平面,但不能添加这些向量的任何其他组合。

注意:这当然也适用于在更高维度中寻找二维平面。您甚至可以检查更高维度的平面,但这需要对您比较的向量数量和检查的等级进行一些调整。

关于algorithm - 给定 R3 中的向量列表,会生成多少个独特的平面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31057626/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com