您可以使用高斯消元法来确定几个向量的维span数。(由这些的所有线性组合创建的空间 - 也称为矩阵的秩)
通过将向量写入矩阵的行中,从向量创建一个矩阵。然后使用高斯消除并计算仍然具有非零条目的行数。这是跨越向量空间的维度。
由于您使用的向量R^3永远不会大于 3。但是平面是二维向量空间,因此您需要找到导致二维跨度的所有向量组合,这可以通过迭代您的实施高斯消除后的向量。
编辑:
一个例子,因为这似乎仍然会导致混淆:
你有一组 3 个向量:(1,0,0); (0,1,0); (0,0,1)
您可以从中创建 3 个不同的平面(通过组合这些向量中的任何两个,您将得到一个不同的平面。)要正式检查该陈述是否正确,您需要对每对v1,v2向量执行以下操作:
- 检查 v1,v2 是否是线性独立的 - 如果不是,它们不会创建平面,因此您继续选择接下来的两个向量。(在这个例子中,它们总是线性无关的)
- 检查列表中的其他向量,如果它 (
v3) 不在创建的平面内(与 不共面v1,v2)。为此,对矩阵 (v1,v2,v3) 使用高斯消元法,并确认矩阵的秩为 3。
如果步骤 2 中的矩阵的秩为 2,这意味着向量 v1、v2、v3 是共面的。因此,您可以选择其中任意两个向量来生成完全相同的平面。
举个例子:你从向量(1,0,0)和开始(0,1,0)。然后检查其他几个向量,发现其中两个与初始向量共面(例如(1,1,0)和(-1,-1,0))。这意味着对于您的唯一平面列表,您可以添加由这四个向量中的任何两个生成的平面,但不能添加这些向量的任何其他组合。
注意:这当然也适用于寻找更高维度的二维平面。您甚至可以检查更高维度的平面,但这需要对您比较的向量数量和您检查的等级进行一些调整。