四维空间(十一):几何代数、四元数与空间旋转

#警告:本文内容超级进阶,可以说大概包括四维欧几里得空间的所有基础的代数理论了,本文重代数轻几何,所以可能不太好理解
这篇文章将会介绍一种新的可以“统一天下”高维几何的代数系统:几何代数(Geometric Algebra),因为在这个代数体系下包含了标量、向量、多维向量以及各种内积外积混合积,甚至囊括到了旋量(就是让电子转两圈才一样的罪魁祸首)、空间旋转、复数与四元数,矢量场中的各种导数算子,甚至几何代数还能给行列式一个新的定义……

引子

我们在探讨四维空间中的磁场时提到过两个2-向量之间的三种乘法运算:

运算 $e_{ij}*e_{ij}$ $e_{ij}*e_{jk}$ $e_{ij}*e_{kl}$
内积$\cdot$ 1 0 0
混合积$\times$ 0 $e_{ik}$ 0
外积$\wedge$ 0 0 $e_{ijkl}$

当时说感觉上是相同字母可以合并相消,不同字母则直接写在一起构成一个多维向量,这样组合下来每一种n-向量刚好对应一种乘法运算。我们不妨规定一种新乘法运算来同时满足上述条件。为了和内积外积区别,新的乘法不用任何符号表示:

  • 对于向量$\boldsymbol v$,我们规定$\boldsymbol v^2=\boldsymbol v \boldsymbol v=||\boldsymbol v||$。这是内积的定义。
  • 然后我们“强行”把外积的定义也搬进来:对于相互垂直的向量$\boldsymbol u$与$\boldsymbol v$,我们规定$\boldsymbol u \boldsymbol v = -\boldsymbol v \boldsymbol u$。
  • 我们再规定这种乘法的结合律、左右分配律对任意k-向量$\boldsymbol A$、$\boldsymbol B$都成立:$(\boldsymbol A \boldsymbol B) \boldsymbol C = \boldsymbol A (\boldsymbol B \boldsymbol C) $,$(\boldsymbol A+ \boldsymbol B) \boldsymbol C = \boldsymbol A \boldsymbol C +\boldsymbol B \boldsymbol C $,$\boldsymbol A( \boldsymbol B+ \boldsymbol C) = \boldsymbol A \boldsymbol B +\boldsymbol A \boldsymbol C $。

这个新的乘法就是几何积。为了统一,我们规定标量是0-向量。

下面我们看夹角为$\theta$的任意两个向量$\boldsymbol u$、$\boldsymbol v$做几何积$\boldsymbol u\boldsymbol v$结果会怎么样。定义里只给了平行与垂直方向上的向量的几何积的性质,所以要首先把$\boldsymbol u$在$\boldsymbol v$上正交分解了:
$$\boldsymbol u = \boldsymbol e_{\parallel v}||\boldsymbol u||\cos \theta + \boldsymbol e_{\perp v}||\boldsymbol u||\sin \theta$$
$$\boldsymbol u \boldsymbol v = \boldsymbol e_{\parallel v} \boldsymbol v ||\boldsymbol u||\cos \theta + \boldsymbol e_{\perp v} \boldsymbol v ||\boldsymbol u ||\sin \theta=||\boldsymbol u||||\boldsymbol v||\cos \theta + e_{\perp v} e_v ||\boldsymbol u||||\boldsymbol v||\sin \theta = \boldsymbol u \cdot \boldsymbol v + \boldsymbol u \wedge \boldsymbol v$$
什么?标量与2-向量加起来了?这有意义吗?我最先在wiki上看到几何代数就是这个反应,然后就点了右上角。后来我才慢慢了解到几何代数的强大。所以先不谈意义,我们接着看两个2-向量做几何积会怎样。
由于2-向量空间位置复杂,直接坐标运算。设
$$\begin{align} A&=a_1e_{xy}+b_1e_{xz}+c_1e_{xw}+d_1e_{yz}+e_1e_{yw}+f_1e_{zw} \\ B&=a_2e_{xy}+b_2e_{xz}+c_2e_{xw}+d_2e_{yz}+e_2e_{yw}+f_2e_{zw}\end{align}$$
$$AB=(a_1e_{xy}+b_1e_{xz}+c_1e_{xw}+d_1e_{yz}+e_1e_{yw}+f_1e_{zw})(a_2e_{xy}+b_2e_{xz}+c_2e_{xw}+d_2e_{yz}+e_2e_{yw}+f_2e_{zw})$$
这个展开计算量有点大,但也不算困难。展开后的项有可能是这些情况:

  • 完全相同,如$e_{xy}e_{xy}$:$e_{xy}e_{xy}=e_xe_ye_xe_y=-e_x(e_xe_y)e_y=-(e_xe_x)(e_ye_y)=-1$
  • 部分相同,如$e_{xy}e_{xz}$:$e_{xy}e_{xy}=e_xe_ye_xe_z=-e_x(e_xe_y)e_z=-e_xe_z=-e_{xz}$
  • 完全不同,如$e_{xy}e_{zw}$:$e_{xy}e_{zw}=e_xe_ye_ze_w=e_{xyzw}$

观察可知合并同类项后得到三部分相加:标量部分+2-向量部分+4-向量部分。不难看出,除了标量部分差一个符号外每部分的结果刚好是开头表格里给的那种乘法,所以有$\boldsymbol {A B}=-\boldsymbol A\cdot \boldsymbol B + \boldsymbol A\times \boldsymbol B + \boldsymbol A\wedge \boldsymbol B$。

几何代数是分级代数

我们把包含不同维度的这种混合向量叫多重向量(Multivector)。对于多重向量$A$定义一种投影算子:$\left\langle A\right\rangle_k$代表取多重向量$A$的k-向量部分。这样我们就能用几何代数的方式来定义外积了:(这里的$\left\langle A\right\rangle_m$与 $\left\langle B\right\rangle_n$表示两个纯的m-向量和n-向量)
$$\left\langle A\right\rangle_m\wedge \left\langle B\right\rangle_n=\left\langle\left\langle A\right\rangle_m\left\langle B\right\rangle_n\right\rangle_{m+n}$$
对于内积要麻烦点。首先内积只有相同维数的向量才能内积,因为要保证结果是实数。且内积具有正定性,也就是说一个非0量内积自身需要得到大于0的结果。我们看到$e_{xy} e_{xy}=-1$,感觉上$e_{xy}$就是$\sqrt{-1}$。复数算内积时是要把第二项取共轭的,以保证得出的结果是实数。于是我们也规定一种共轭的转置运算:$(e_1e_2..e_n)^\dagger=e_n..e_2e_1$,并定义A与B的内积为$\left\langle AB^\dagger\right\rangle_0$,这样刚好可以在不交换任何向量的情况下直接消完所有字母,就不会有负号产生了。

旋转的表示

正交矩阵与生成元

我们知道n维空间中的旋转可以用n维正交矩阵$R$表示,满足$RR^T=R^TR=I$。但实际生活中的空间旋转是一个动态的过程,严格来说正交矩阵$R$只表示最后旋转的结果,如何能把握住旋转的动态呢?假设我们以某个角度匀速旋转,旋转矩阵实际上为时间$t$的函数$R(t)$,它表示经过$t$时刻,向量$x$从初始位置$x_0$旋转到$R(t)x_0$。现在我们来探究旋转中某一瞬间空间各个点的运动情况,直接对$t$求导得到每点的速度:
$$v=\dot x=\dot R(t)x_0$$由于前提是匀速旋转,所以速度场$\dot R(t)$显含时间完全是因为每个点转动到不同位置,速度方向当然会一直变化,如果我们记$\dot R(t)=BR(t)$,也就是考察所有点的旋转速度场跟这个点的相对位置关系,$B$就是常量,其实这是一种角速度的矩阵表示形式。
如果我们先给定速度分布$B$,能否推出按这个速度旋转指定时间$t$后的旋转矩阵呢?这相当于是在解一个微分方程:
$$\dot x(t)=Bx(t)$$
矩阵微分方程怎么解呢?观察一下,它其实跟一般的线性微分方程有点像:
$$y’=by$$
它的解是指数形式的,所以我们也来定义一个对矩阵的指数运算:
$$\exp(M)=I+M+{M^2\over2!}+{M^3\over3!}+..$$
可以验证$x(t)=\exp(Bt)x_0$是方程的解,也就是说旋转矩阵是$\exp(Bt)$,但注意$B$必须满足一个条件才能保证$\exp(Bt)$是正交的:
$I=\exp(Bt)\exp(Bt)^T=\exp(Bt)\exp(B^Tt)=\exp((B+B^T)t)$
注意通过矩阵指数定义式可以发现不是所有矩阵都有$\exp(A+B)=\exp(A)\exp(B)$,除非$AB=BA$。
要让$\exp((B+B^T)t)$恒为0只能有$B=-B^T$,也就是说所有能生成旋转矩阵的$B$一定是反对称的。我们把一个旋转对应的$B$叫做矩阵的生成元。除了把生成元理解为角速度以外,还可以理解为无穷小转动:想象一下空间中所有点都朝着速度场的方向运动了一点点,即$x + \Delta x = (I+\Delta\theta B)x$,而所有的旋转都可以认为经历了无穷次无穷小旋转得到的:$R=(I+\Delta\theta_1 B_1)(I+\Delta\theta_2 B_2)(I+\Delta\theta_3 B_3)..$

旋量与生成元

对比一下不难发现,旋转的生成元跟2-向量是一一对应的。这启发我们是否不用矩阵,而是用几何代数的方法来描述空间旋转。
假设有单位向量$a$,使用坐标分解不难证明$ava$也是一个向量,是$v$关于$a$的反射。旋转可以分解为偶数次反射,所以我们得到了几何代数版本的旋转表示:设$R=r_1r_2..r_{2k}$,且$RR^\dagger=1$则$RvR^\dagger = r_1r_2..r_2k v r_{2k}..r_2r_1$将向量$v$旋转。$R$有个专门的名称,叫旋量
我们还可以证明$(RvR^\dagger)\cdot(RuR^\dagger)=v\cdot u$,说明保内积,确实是正交变换。但这样的$R$一般都是混合了几种偶数维向量的,所以这里我们找到了几何代数把不同维向量加起来的意义,但我承认这种加法很不直观。如:$xy$平面上旋转60°可以由空间反射向量$r_1=e_x$与$r_2=\sqrt{3}/2e_x+1/2e_y$生成,则$R=e_1e_2=\sqrt{3}/2+1/2e_{xy}$。

下面同样的问题来了:给定单位2-向量$B$(可理解为按单位角速度旋转)与角度$\theta$(可理解为旋转时间)怎样得到$R$呢?首先我们应该用几何代数的语言描述角速度。注意$Bv$不一定是一个向量,所以不能照抄矩阵的那种方法。但我们可以验证,$v$平行于$B$时$Bv$就是v点处的速度,$v$垂直于$B$时$Bv$却是3-向量。我们可以用投影算符只保留1-向量部分,但投影算符不方便后续运算。我们又观察到对于3-向量部分有$Bv=vB$,但对于向量部分却是$Bv=-vB$,所以1-向量部分可以用${1\over2}(Bv-vB)$提取到。所以我们得到关于时间$\theta$的微分方程:
$${\text d\over\text d \theta}v(\theta)={1\over2}(Bv(\theta)-v(\theta)B)$$
带入之前的旋转表达式$v(\theta)=R(\theta)v(0)R(\theta)^\dagger$,用导数乘法法则展开得:
$$\dot Rv(0)R^\dagger+Rv(0)\dot R^\dagger={1\over2}(BRv(0)R^\dagger-Rv(0)R^\dagger B)$$
怎么解$R(\theta)$呢?观察一下发现把右边第二项$-B$改写成$B^\dagger$,得到:
$$\dot Rv(0)R^\dagger+(\dot Rv(0)R^\dagger)^\dagger={1\over2}(BRv(0)R^\dagger+(BRv(0)R^\dagger)^\dagger )$$
我们看到左右两边都是转置相加的形式,只要解满足$\dot Rv(0)R^\dagger=BRv(0)R^\dagger/2$即满足原方程,再化简得到
$$\dot R=BR/2$$
明显此方程的解为$\exp(B\theta/2)$,但注意$BR$是靠几何积乘在一起的,所以通过这里泰勒展开定义的$\exp(B\theta)$中所有乘法也都是几何积,要注意几何代数的指数映射与矩阵指数的区别。
下面我们具体算一下R的表达式:
$$R=\exp(B\theta/2)=I+B\theta/2+{B^2(\theta/2)^2\over2!}+{B^3(\theta/2)^3\over3!}+..$$
注意,对于单位2-向量有$B^2=-1$,所以可以通过类似推导欧拉公式的方法化简为:
$$\begin{align} R=&I+B\theta/2-{(\theta/2)^2\over2!}-{B(\theta/2)^3\over3!}+..\\=&I+B\theta/2-{(\theta/2)^2\over2!}+{B(\theta/2)^3\over3!}+..\\=&\cos(\theta/2)+B\sin(\theta/2)\end{align}$$
我们终于得到了将向量$v$在平面$B$上旋转$\theta$角的表达式:
$$RvR^\dagger = (\cos(\theta/2)+B\sin(\theta/2))v(\cos(\theta/2)-B\sin(\theta/2))$$

双覆盖

基于几何代数的旋转表示与电子自旋的那种旋量有什么关系呢?,向量旋转了$\theta$对应的旋量$R$只旋转了$\theta/2$,由于旋转的表达式是$RvR^\dagger$,所以$R$与$-R$表示的是同一个旋转,正好对应向量旋转一周后,旋量$R$反号的情形。所以每一种旋转都对应两个旋量表示,用术语说就是旋量群是旋转群的双覆盖。
我们知道,从四维空间起旋转不仅有简单旋转,还有双旋转。这里已经证明了四维空间中任何2-向量一定能分解为绝对垂直的简单2-向量,通过指数映射我们就证明了任何双旋转都是相互绝对垂直的简单旋转的叠加。在那个证明的推导里用到了只针对四维空间中2-向量的“对偶坐标系”,所谓对偶坐标系是指把一个2-向量分解成“自对偶”(满足$A=A^*$)与“反自对偶”(满足$A=-A^*$)两部分。有一个神奇的地方在于自对偶2-向量与反自对偶2-向量的几何积为0,也就是说那三种乘法运算结果都是0。所以生成的旋转也能分成可以交换顺序互不干扰的两部分:左等角双旋转与右等角双旋转,如果左等角旋转与右等角旋转的角度相等就会合成简单旋转。比如xy平面旋转90°可以看作$e_{xy}+e_{zw}$生成的双旋转45度与$e_{xy}-e_{zw}$生成的双旋转45度的叠加。

四元数

我们知道,复数就是引入了$i$——它满足$i^2=-1$,从这点出发就可以推出非常多几何上代数上的东西。当然人们也在做尝试构造类似数推广到更高维空间。下面我们就来看看它的四维推广——四元数。我们将给出四元数在四维空间中的几何意义,揭示它的真面目。按照我们的习惯,应该先把复数推广到三元数,然后再是四元数,然而经过一些数学家的努力他们发现三元数是不存在的!下面我们先看看四元数的样子:
$$i^2=-1, j^2=-1, k^2=-1, ij=-ji=k, jk=-kj=i, ki=-ik=j$$
我们看到四元数的乘法不满足交换律!最初我很难适应这种连交换律都不满足的系统有什么意思,但我们将看到四元数能表示四维空间中的旋转,跟三维空间一样,旋转的次序不同结果会不一样。比如绕x轴转90°然后绕y轴转90°不等于绕y轴转90°然后绕x轴转90°。
四元数与旋转一样满足结合律,如$(ij)k=kk=-1=ii=i(jk)$。其实全体四元数构成一个,就像旋转构成旋转群一样(群即满足结合律、可逆性、有单位元等要求的乘法)。
如果你对为什么要这样规定四元数感兴趣可以展开这一小节:

各种四元数

三维计算机图形学中的四元数

四元数能表示四维旋转,那它当然就能表示三维旋转。我们先从三维空间来窥探一下四元数。实际上它被广泛用于计算机图形学。如果你在网上搜索四元数的话,最常见的内容应该就是怎样用四元数表示绕给定轴$a$旋转给定角度$\theta$的方法了:
首先我们把三维坐标$(x,y,z)$对应到一个四元数$A=xi+yj+zk$,注意这个四元数没有实部,只有三个虚部,然后计算四元数$Q=cos\theta/2 + A sin\theta/2$,这个四元数就表示了绕给定轴$a$旋转给定角度$\theta/2$。它旋转向量$x$得到的新向量$x’$由下面公式计算:
$x’=QxQ*$,其中$Q=a+bi+cj+dk$,我们记$Q*=a-bi-cj-dk$,叫做$Q$的共轭。
公式给出来了,应对三维旋转计算就没问题了,只是计算过程中要时刻注意四元数没有交换律。但为什么这样做就能得到正确的旋转?基于几何代数的解释最多也最自然,比如参看这篇文章(此文作者就是开发4DToys的那个人!)

四元数与几何代数

四元数是复数的推广,它有点像几何代数,不满足交换率,而且$ij=-ji$的这种性质也很像。其实我们可以在三维空间中构造一个几何代数的子代数,它与四元数同构:规定$i=e_{xy},j=e_{yz},k=e_{zx}$,可以验证$i,j,k$之间的几何积满足四元数的乘法法则。所以一般的四元数$q=a+bi+cj+dk$可以写成$Q=a+be_{xy}+ce_{yz}+de_{zx}$,它的共轭正好就是对应几何代数多重向量的转置$q^*\rightarrow Q^\dagger=a-be_{xy}-ce_{yz}-de_{zx}$。也就是说单位四元数$qq^*=1$恰好对应表示三维旋转的旋量$RR^\dagger=1$!于是我们自然得到了三维空间旋转的四元数表示:
$$v’=qvq^*$$

四元数与四维空间旋转

四元数扩展到四维又如何呢?感觉四元数本来就该是四维空间中的产物,但由于$1$的地位与$i,j,k$的地位是不一样的,所以四元数反而在四维空间中还没有一种很自然的解释!但如果把向量$(x,y,z,w)$写成$x+iy+jz+kw$,我们发现用$i,j,k$左乘会将向量右等角旋转90°,右乘$i,j,k$则是左等角旋转90°。可以证明对于任意单位四元数$p,q$,$pvq$代表四维空间中的旋转,且$pv$是右等角旋转部分,$vq$是左等角旋转部分。三维空间中限制$p=q^*$是为了将旋转限定在三维空间$yzw$内而已。
四元数能不能继续推广到高维呢?很遗憾,虽然还有八元数,但不满足结合律,已经不再适合表示空间旋转了。所以更高维度空间的旋转的旋量表示只有老实用$R$了。

体元、定向与霍奇对偶


设想有一群生活在莫比乌斯带上的二维生物。莫比乌斯带没有内外侧之分,我们称之为不可定向曲面。所以如果我们在纸带上某点处选择一个法向量朝向,在纸上绕一圈回来后法向量就反号了。但法向、内外侧的概念都是在三维空间中才有的,这些二维生物在无法离开纸带所在的二维空间的情况下(它们察觉不到第三维)能否知道自己在莫比乌斯带上呢?
莫比乌斯带的展开图:注意粘起来时要让两个红色箭头方向要一致就需要将纸带扭转180度
答案是可以的。一个最明显的特点是它们环游一周后会发现自己被镜像了,比如图上的带方向的圆圈。怎么用数学语言来描述呢?我们可以用同样代表圆圈的2-向量来表示。注意二维莫比乌斯带每点处的2-向量只能与那一点处的切空间平行,所以只有一个自由度,感觉上是标量,但与标量不同的是你无法在整个莫比乌斯带上定义一个连续的处处非零的2-向量,但对于圆柱面则可以。我们看到2-向量跟之前用法线反号的描述是一致的,但这种描述方法不需要涉及三维空间,即莫比乌斯带上不存在的方向。同理,所有n维曲面上的n-向量都只有一个自由度,被称为体元。如果n维曲面上能够存在连续的处处非零的体元场,我们说这个曲面是可定向的,否则是不可定向的。不同的定向在于符号不同,我们不用关心体元的相对大小。

左手坐标系与右手坐标系

众所周知我们的世界是能定向的(至少在可观测宇宙的局部范围内)。但定向的方向有两种选法。一般我们说右手坐标系就是在人为规定坐标轴规定xyz的顺序。如果新的坐标轴是abc,我们通过计算体元$x\wedge y\wedge z$是否与$a\wedge b\wedge c$方向一致即可知道是否为右手坐标系。这里我们看到三位空间中体元的大小正好是三个坐标轴张成平行八胞体的体积,所以叫体元。

体元与行列式

我们知道线性映射(或矩阵)是有行列式的,下面用一种新的方法来定义线性映射$f$的行列式:
$$f(I)=\det(f)I$$
其中$I$是线性空间中的任意体元,线性映射作用于n-向量$e_1\wedge e_2..\wedge e_n$的方式为$f(e_1)\wedge f(e_2)..\wedge f(e_n)$。这个定义才阐述了行列式的本质:它是线性映射后对面积/体积(取决于维度)的缩放因子,且如果线性映射改变了空间定向,行列式的值为负。

体元与霍奇对偶

我们可以用单位体元$I$与几何积来表示霍奇对偶。
规定$A^*=A^\dagger I$,即让A与单位体元做“一部分”内积。由于体元中包含了整个空间所在的全部字母,所以A原本的字母会一个一个地跟这些字母消去变成标量,最后只剩下A中没有的字母,这样就得到A的法空间了。

除旋转外的一些几何代数的应用

证明矢量场论中的等式

我们来通过几何代数证明波动方程遇到的这个式子($E$是一个向量):$\nabla \times\nabla \times\boldsymbol{E}=-\boldsymbol{\Delta \boldsymbol{E}}+\text{grad}(\text{div}(\boldsymbol{E}))$
$$\begin{align}\nabla \times\nabla \times\boldsymbol{E}=&(\boldsymbol{d}\wedge(\boldsymbol{d}\wedge\boldsymbol{E})^*)^*\\=&-\left\langle\boldsymbol{d}(\boldsymbol{d}\wedge\boldsymbol{E})\right\rangle_1\\=&-\left\langle\boldsymbol{d}(\boldsymbol{dE}-\boldsymbol{Ed})/2\right\rangle_1\\=&-(\boldsymbol{d}(\boldsymbol{dE}-\boldsymbol{Ed})-(\boldsymbol{dE}-\boldsymbol{Ed})\boldsymbol{d})/4\\=&-(\boldsymbol{d}^2\boldsymbol{E}+\boldsymbol{E}\boldsymbol{d}^2)/4+\boldsymbol{dEd}/2\\=&-\boldsymbol{d}^2\boldsymbol{E}/2+\boldsymbol{dEd}/2\end{align}$$
$$\begin{align}-\boldsymbol{\Delta \boldsymbol{E}}+\text{grad}(\text{div}(\boldsymbol{E}))=&-(\boldsymbol{d}\cdot \boldsymbol{d})E+\boldsymbol{d}(\boldsymbol{d}\cdot \boldsymbol{E})\\=&-\boldsymbol{d}^2E+\boldsymbol{d}(\boldsymbol{dE}+\boldsymbol{Ed})/2\\=&-\boldsymbol{d}^2\boldsymbol{E}/2+\boldsymbol{dEd}/2\end{align}$$
不用几何代数的话,估计只能老老实实把所有坐标都展开了,几何代数的方法降低了大部分计算量。

各种乘积的几何意义

我们现在可以这样定义高维空间中m-向量$A$与n-向量$B$的乘法运算:多重向量$AB$中的每一种k-向量分量都对应一种$A$与$B$的乘法运算。我们通过N维空间中两个n-维子空间的夹角与代表两个子空间的多维向量(注意不是多重)的乘法关系的公式来给出这些乘法的几何意义:一般情况下n-维子空间上的超球投影到另一个子空间变成n轴超椭球。通过超椭球的轴向我们能在子空间上构造一个n维正交基,我们再把正交基投影回另一个子空间上,可以用线性代数证明也是正交的,且两个子空间内通过投影对应的正交基有n对,它们夹角$\theta_1,\theta_2,..,\theta_n,$一共有n个,如果不是互相的投影,则两个基向量垂直。我们用这n个角度来衡量两个n-维子空间的位置关系。
例子:2-向量
我们设第一个n-维子空间上的正交基为$u_1, u_2,..,u_n$,第一个n-维子空间上的正交基为$v_1, v_2,..,v_n$,则代表两个子空间的两个n-向量分别为$A=u_1 u_2..u_n$与$B=v_1 v_2..v_n$。注意因为正交,外积就是几何积。我们来一口气推出A与B之间的全部乘法运算:
$$\begin{align}AB=&u_1 u_2..u_nv_1 v_2..v_n\\=&(u_1v_1) (u_2v_2)..(u_nv_n)(-1)^{n(n-1)/2}\\=&(\cos\theta_1+e_{u_1\wedge v_1}\sin\theta_1) (\cos\theta_2+e_{u_2\wedge v_2}\sin\theta_2)..(\cos\theta_n+e_{u_n\wedge v_n}\sin\theta_n)(-1)^{n(n-1)/2}\end{align}$$
注意第一步是把投影的向量对应起来,用到了垂直向量的负交换律与结合律。一共做了$n(n-1)/2$次交换,所以要补一个符号。第二步把两个单位向量的几何积拆分成了内外积的表示,第三部展开括号。注意每个括号都只有一项标量项与一项2-向量项,这些二向量是绝对垂直的,也就是说展开时可以直接合并。这样标量项就是$\cos\theta_1\cos\theta_2..\cos\theta_n(-1)^{n(n-1)/2}$一项;2n-向量项则是$e_{u_1\wedge v_1}e_{u_2\wedge v_2}..e_{u_n\wedge v_n}\sin\theta_1\sin\theta_2..\sin\theta(-1)^{n(n-1)/2}$;对于2k-向量项则是n-k个cos与k个sin的组合,一共有$C_n^k$项,且不能合并。这些既有cos又有sin的乘法运算就是内积到外积的过渡,虽然用这种办法求角度太麻烦了,还不如常规纯线性代数方法,但它确实给出了两个n-向量之间所有乘法的几何解释。

参考