Math N维叉积的有效计算?

Math N维叉积的有效计算?,math,optimization,vector,cross-product,Math,Optimization,Vector,Cross Product,根据标题,仅仅使用行列式定义和LU分解方法计算n维叉积的最佳方法是这样做的,还是你们能推荐一个更好的方法 谢谢 编辑:为了清楚起见,我指的是笛卡尔积,而不是笛卡尔积 编辑:似乎使用莱布尼兹公式也会有所帮助——尽管我不知道这与LU Decomp相比有什么不同。现在 从您的评论来看,似乎您正在寻找一种需要n −1向量作为输入,并计算单个向量作为其结果,该向量将与所有输入向量正交,并且可能具有定义良好的长度 定长 你可以描述三维叉积v =A. x b使用恒等式v ∙W =数据段(a、b、w)。换言之,

根据标题,仅仅使用行列式定义和LU分解方法计算n维叉积的最佳方法是这样做的,还是你们能推荐一个更好的方法

谢谢

编辑:为了清楚起见,我指的是笛卡尔积,而不是笛卡尔积


编辑:似乎使用莱布尼兹公式也会有所帮助——尽管我不知道这与LU Decomp相比有什么不同。现在

从您的评论来看,似乎您正在寻找一种需要n −1向量作为输入,并计算单个向量作为其结果,该向量将与所有输入向量正交,并且可能具有定义良好的长度

定长 你可以描述三维叉积v =A. x b使用恒等式v ∙W =数据段(a、b、w)。换言之,取输入向量的叉积,然后用任何其他向量w计算,与将输入向量和该其他向量插入矩阵并计算其值相同

这个定义可以是。由于行列式可以沿最后一列计算,因此该叉积的结果坐标将是所有(n)的值 −1) ×(n) −1) 子行列式可以由输入向量形成,带有交替符号。所以,是的,它在理论上可能有用,尽管它几乎不适合现实世界的计算。在实践中,你很快就会找到避免重复计算的方法。但是等待这个答案的最后一部分

正是方向 然而,大多数应用程序可以满足较弱的要求。他们不关心结果向量的长度,只关心它的方向。在这种情况下,您要求的是(n)的 −1) 将输入向量作为行,可以形成×n矩阵。该内核的任何元素都将与输入向量正交,并且由于计算内核是一项常见的任务,因此您可以在许多基础上构建,例如。详细信息可能取决于您使用的语言

结合这些
您甚至可以将上述两种方法结合起来:计算内核的一个元素,对于该向量的非零项,还可以计算相应的(n −1) ×(n) −1) 使用第一种方法得到单个坐标的行列式。然后,您可以简单地缩放向量,使选定的坐标达到计算值,并且所有其他坐标都将与该值匹配。

您不希望莱布尼兹公式用于大N,因为它会很快变得昂贵!对于N>4,LU分解法可能是一种可行的方法。你所说的“叉积”到底是什么意思?你引用的维基百科文章陈述了一个七维的,然后说“在一般维中,没有直接的二元叉积的类似物可以产生一个向量”。你是指楔形产品还是其他什么?@MvG是的,对不起,我想我是指楔形产品吧?我指的是这一部分“,同样,使用方向和度量结构,就像传统的三维叉积一样,可以在n维中取n的乘积− 1向量生成一个垂直于所有向量的向量。但如果乘积仅限于具有向量结果的非平凡二元乘积,则它仅存在于三维和七维中。”具体而言,假设n-1向量的乘积存在,您如何知道它是否限于非平凡二元乘积?例如,检查?“二进制乘积”表示您需要一个以两个向量作为输入的操作,而不是您提到的$n-1$向量。“非平凡”意味着它不会简单地“计算”与其输入无关的零向量。楔形积也是二进制的。你关心结果的长度,还是只关心它的正交性?如果是后者,那么您只需查找由输入向量形成的$(n-1)\乘以n$矩阵的(元素)。有多种方法可以计算该内核,例如使用Lapack。