© from John Denker
\\[1em]
克利福德代数(Clifford algebra-CA),又称几何代数(Geometric algebra-GA),综合了内积和外积两种运算,是复数代数、四元数代数和外代数的推广,在几何和物理中应用广泛。
克利福德是英国数学家。生于埃克塞特(Exeter),卒于马德拉(M-adeira)。1860年在伦敦国王学院就学,三年后入剑桥三一学院。1867年荣获史密斯数学奖。
我们首先讨论为什么我们应该关心克利福德代数。(如果你想概述克利福德代数的实际工作原理,跳到第2节)。
1、使用克利福德代数是有利的,因为它提供了需要单独理解的事物的统一视图:
2、有一个切割和干燥的程序,以相应的楔积取代叉积,如第5.3节所讨论的。做出改变是优势,因为楔积更强大,行为更乖巧:
3、在所有的物理学中,每当你看到一个想法被表达为向量的叉积时,如果你用楔积来重新表达这个想法,你通常会过得更好,这有助于帮助消灭叉积!
3.1 写下四个麦克斯韦方程是传统。然而,通过使用克利福德代数,我们可以在一个非常紧凑,优雅的方程中表达相同的含义:
∇ F = 1 c ϵ 0 J ( 1 ) ∇ F =\dfrac{1}{c\epsilon_0} J \qquad(1) ∇F=cϵ01J(1)
值得学习克利福德代数只是为了看到这个方程。有关详细信息,请参阅参考4。
此外:在其传统形式中,麦克斯韦方程似乎不是左右对称的,因为它们涉及叉积。然而,我们相信古典电磁学确实具有左右对称性。通过重写使用几何积的规则,如方程1,很明显,不需要右手规则。一个特别明显的例子是皮埃尔的谜题,如参考3所讨论的。
同样:麦克斯韦方程的传统形式在特殊相对论方面并不明显一致,因为它涉及特定观察者的时间和空间坐标。然而,我们认为基本的物理定律是相对不变的。使用几何积重写定律使这种不一致表现在方程1中。
作为对电磁场是双向量这一基本理念的优雅应用,参考5解释了为什么在一个参考帧中纯粹是电场的磁场在另一帧中观察时必须是电场和磁场的组合。
作为方程1的数学应用,参考 6计算了长直线周围的字段。
3.2 扭矩、角动量和陀螺仪旋转的想法在用双向量表达时特别容易理解,如第2.3节所述。另见第3节。
3.3 您可以使用楔积计算体积,如参考 7中所述。这比所谓的三重混合积( A ⋅ B × C ) \bold{A} \cdot \boldsymbol{B} \times \boldsymbol{C}) A⋅B×C) 更可取。
本节简单介绍克利福德代数,也被称为几何代数。
有关克利福德代数为什么有用的讨论,请参阅 第 1 节。
此文档也以 PDF 格式提供。如果您的浏览器难以显示标准 HTML 数学符号,您可能会发现这一优势。
图1 标量、矢量、双向量和三向量
几何代数是一种强大的数学语言,应用于物理学和工程学的一系列学科。本书是该学科现状的完整指南,早期章节对几何代数进行了独立的介绍。涉及的主题包括处理任意维度的旋转的新技术,以及旋转、双向量和李群结构之间的联系。接下来的章节将复分析函数理论的概念扩展到任意维度,并在量子理论和电磁学中得到应用。后面的章节涉及非欧几里得几何、量子纠缠和规整理论等高级课题。还探讨了黑洞和宇宙弦等应用。本书适合在相对论和量子论领域工作的研究人员,也可作为几何代数的物理应用课程的研究生教材。
Python clifford
模块实现了几何代数(又称克利福德代数)。几何代数(GA)是一个普遍的代数,它包含复数、四元数、线性代数和其他几个独立的数学系统。标量、向量和更高等级的实体可以以混合等级的多向量的形式自由和一致地混合。
>>> import clifford as cli
>>> dir(cli)
['BasisBladeOrder', 'BasisVectorIds', 'BladeMap', 'Cl', 'ConformalLayout', 'Dict', 'Frame', 'Layout', 'List', 'MVArray',
'MultiVector', 'NUMBA_PARALLEL', 'Set', 'Tuple', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__',
'__name__', '__package__', '__path__', '__spec__', '__version__', '_bit_helpers', '_blademap', '_conformal_layout',
'_frame', '_get_mult_function', '_get_mult_function_result_type', '_get_mult_function_runtime_sparse', '_layout',
'_layout_helpers', '_multivector', '_mvarray', '_numba', '_numba_utils', '_numba_val_get_left_mt_matrix', '_numpy_support',
'_powerset', '_settings', '_version', 'array', 'bases', 'basis_vectors', 'conformalize', 'elements', 'eps', 'general_exp',
'get_mult_function', 'gp', 'grade_obj', 'grade_obj_func', 'grades_present', 'io', 'ip', 'itertools',
'linear_operator_as_matrix', 'np', 'numba', 'op', 'operator', 'os', 'pretty', 'print_precision', 'randomMV', 'read_ga_file',
'sparse', 'taylor_expansions', 'ugly', 'val_get_left_mt_matrix', 'val_get_right_mt_matrix', 'warnings', 'write_ga_file']
除了标量和矢量(也叫向量),你会发现考虑更通用的对象,包括双向量、三向量等是有用的。每个对象都有清晰的几何解释,如图1所述。
即,一个标量可以可视化为空间中一个理想的点,没有几何范围。向量可以可视化为具有长度和方向的线段。双向量可以可视化为具有面积和方向的平面块。沿着这条路径继续,三向量可以形象地描述为一块三维空间,它有一个体积和方向。
每个这样的对象都有一个等级,根据几何范围涉及多少维度。因此,我们说克利福德代数是一个分级代数,总结如下表。
对象 | 可视化为 | 几何范围 | 级别(维度) |
---|---|---|---|
标量 | 点 | 无几何拓展 | 0 |
向量 | 线段 | 1个方向拓展 | 1 |
双向量 | 曲面块 | 2个方向延拓 | 2 |
三向量 | 空间片 | 3个方向延拓 | 3 |
n-向量 | … | n个方向延拓 | n |
对于任何矢量 V \boldsymbol{V} V,您可以将 2 V \boldsymbol{}{V} V 想象为长度的两倍,对于任何 双向量 B \boldsymbol{B} B ,可视化 2 B \boldsymbol{}{B} B 的面积是其两倍。这个几何可视化系统分解为标量:几何上所有的标量 “看起来” 同样点状。也许对于一个标量s,你可以想象2s是原来的两倍,或类似的东西。
有关另一个重要的可视化想法,请参阅第 2.13 节。
如第1节和第6节所述,双向量使叉积过时:任何数学或物理,你可以可以更容易使用*叉积(cross products)但更合乎逻辑地使用楔积(wedge products)*代替。
克利福德代数中的标量是熟悉的实数。他们遵循熟悉的加法、减法、乘法法则等。标量的加法满足结合律和交换律,标量的乘法满足结合律和交换律,并对加法满足分配律。
a + b = b + a , a + b + c = a + ( b + c ) , a ⋅ b = b ⋅ a , a ⋅ b ⋅ c = a ⋅ ( b ⋅ c ) , a ( b + c ) = a ⋅ b + a ⋅ c , a , b , c ∈ R (1) \begin{aligned} &a+b &=& b+a,\\ &a+b+c &=& a+(b+c), \\ &a\cdot b &=& b \cdot a, \\ &a \cdot b \cdot c &=& a\cdot (b\cdot c), \\ &a(b+c) &=& a \cdot b+a \cdot c, \\ & &&a,b,c \in \mathbf{R} \end{aligned} \tag{1} a+ba+b+ca⋅ba⋅b⋅ca(b+c)=====b+a,a+(b+c),b⋅a,a⋅(b⋅c),a⋅b+a⋅c,a,b,c∈R(1)
克利福德代数中的向量可以相互添加,并且以常规方式乘以标量。向量加法满足结合律和交换律。按标量分配律乘法,向量加法也有分配律。我们将在第2.5 节引入向量的乘法。
大概你熟悉标量加法和向量加法(从头端 tip 到尾部 tail)的想法。我们现在介绍的想法,克利福德代数的任何元素可以添加到任何其他量上,这包括向量+标量,向量+双向量,以及所有其他组合体。因此,找到这样的元素 C C C 并不罕见:
C = s + V + B (2) \begin{aligned} C = s + \boldsymbol{V} + \boldsymbol{B} \end{aligned} \tag{2} C=s+V+B(2)
其中 s s s 是标量, V \boldsymbol{V} V 是向量, B \boldsymbol{B} B 是双向量。
这清楚地将克利福德代数与普通代数区别开来。
备注:有时非专家会觉得这令人不安。在向量中添加标量就像在橙子中加入苹果。嗯,就这样吧:人们一直把苹果加到橘子里;叫做水果沙拉。相比之下,把苹果比作橘子是很不明智的,事实上我们不会把苹果和向量作比较。允许加法( s + V s + \boldsymbol{V} s+V ); 不允许比较( s < V s<\boldsymbol{V} s<V )。
术语:克利福德代数最普遍的元素,我们将称之为一个克里夫(clif)。在文献中,同一概念被称为多维向量,但我们避免这个词,因为这是误导,具体原因将在第2.9节结尾处给出。
大概你已经知道如何添加向量图形,通过放置他们提示首尾相连,如图2所示。通过扩展此想法,我们还可以以图形方式添加双向量,将它们置于图 3中显示的边到边情形。
图2:向量加法(增加矢量)
我们添加双向量边缘到边缘,类比的方式,我们添加普通向量尖端到尾部。在此示例中,边缘 b \boldsymbol{b} b 将尖端到尾部添加到边缘 x \boldsymbol{x} x 以形成总和的顶部边缘。同样,边缘 z \boldsymbol{z} z 将尖端到尾部添加到边缘 d \boldsymbol{d} d 以形成总和的底部边缘。边缘 c \boldsymbol{c} c 抵消了 边缘 w \boldsymbol{w} w,因为它们是等长和相反的。边缘 a \boldsymbol{a} a 和 y \boldsymbol{y} y 不变, 成为总和的垂直边缘。
作为添加双向量的具体示例,请考虑陀螺(gyroscopic precession)前进问题,如下所示:绿色双向量是系统的初始角动量,而小紫色双向量是扭矩∧时间。然后黄色的双向量是新的角动量,它有一个新的前进方向。
角动量的公式在第3节中给出。
鉴于任何 c l i f C clif\; C clifC 级,我们可以谈论它的 0级部分,1级的一块,等等。
记号(Notation): C C C 级片的 N N N 级表示为 ⟨ C ⟩ N ⟨C⟩_N ⟨C⟩N。
我们经常会特别感兴趣的是标量, ⟨ C ⟩ 0 ⟨C⟩_0 ⟨C⟩0。
注意:如果您熟悉复数,您可以理解 ⟨ . . . ⟩ ⟨... ⟩ ⟨...⟩ 操作员类似于选择实部和虚部的 ℜ ( ) \Re() ℜ() 和 ℑ ( ) \Im() ℑ()操作。然而,有一个区别:你可能会认为复数的虚部分是虚数(或零),但这不是它的定义方式。根据长期确立的惯例,对于任何复数 z z z 来说, ℑ ( z ) \Im(z) ℑ(z)都是一个实数。克利福德代数更合乎逻辑:任何clif的矢量部分是向量(或零),任何clif的双向量部分是双向量(或零)等。有关此的更多资料,请参阅参考文献 1。
公理Axiom:我们假设有一个几何乘积操作,可以用来乘以克利福德代数的任何元素。
记号: A A A 和 B B B 的几何乘积是写为 A B AB AB 的。即,我们只是将乘法并列,而无需使用任何操作符。
正如我们将在第2.6节中看到的那样,几何乘积 A B AB AB 与点积 A ⋅ B A\cdot B A⋅B 有别, 也与 楔积 A ∧ B A∧B A∧B 不同。
我们进一步假设几何乘积满足结合律和分配律:
( A B ) C = A ( B C ) = A B C A ( B + C ) = A B + A C (3) \begin{aligned} &(A B)C &=& A(BC) = A B C \\ &A(B+C) &=& AB +AC \end{aligned}\tag{3} (AB)CA(B+C)==A(BC)=ABCAB+AC(3)
其中 A , B A,B A,B 和 C C C 是 clifs。
我们已经断言,任何克利夫clif 都可以乘以任何其他的克利夫 clif。将向量乘以向量是一个特别有趣的案例。在这一点上,克利福德代数与常规向量代数发生了戏剧性的背离。
鉴于两个向量 P P P 和 Q Q Q,我们知道几何乘积 P Q PQ PQ 存在,但(到目前为止),这就是我们所知道的一切。然而,基于这种单纯的存在,加上我们已经知道的加法和减法,我们可以定义两个新产品,即 点积 P ⋅ Q P\cdot Q P⋅Q 和楔积 P ∧ Q P∧Q P∧Q,如下:
P ⋅ Q : = P Q + Q P 2 其中 P 和 Q 为 1 级 P ∧ Q : = P Q − Q P 2 其中 P 和 Q 有等级≤1 (4) \begin{aligned} &P\cdot Q := \dfrac{PQ+QP}{2}\quad &\text{其中}P \text{和} Q \text{为 1 级} \\ &P\wedge Q := \dfrac{PQ - QP}{2}\quad &\text{其中} P \text{和} Q \text{有等级≤1} \end{aligned}\tag{4} P⋅Q:=2PQ+QPP∧Q:=2PQ−QP其中P和Q为 1 级其中P和Q有等级≤1(4)
方程 4a \text{4a} 4a 是一个非常有用的公式,但您不应过分依附于它,因为它仅适用于 1 级向量,它不适用于高或低级别。有关更通用的公式,请参阅第 2.10 节。
方程 4b 只是稍微更一般。它适用于向量和(或)标量(等级≤1)的任何组合。有关一些更通用的公式,请参阅第 2.11 节。
作为方程 4 的直接推论,我们可以将两个向量的几何乘积重新表示为:
P Q = P ⋅ Q + P ∧ Q 其中 P 和 Q 具有 1 级 (5) \begin{aligned} PQ = P\cdot Q + P\wedge Q \quad \text{其中} P \text{ 和 } Q \text{具有 1 级} \tag{5} \end{aligned} PQ=P⋅Q+P∧Q其中P 和 Q具有 1 级(5)
此有用的公式仅在 P 和 Q 都是向量时才有效。我一直提到这一点,因为一些作者认为方程5 是几何乘积的"定义"(基于某种预先存在的点积和楔积的概念)。他们可以逃脱两个平面的老向量的产品,但它不能为更高(或更低)的等级,并造成很多混乱。
作为方程 4的另一个推论,我们看到两个向量的点积是对称的,而两个向量的楔积是反对称的:
P ⋅ Q = Q ⋅ P 其 中 P 和 Q 具 有 1 级 P ∧ Q = − Q ∧ P 其 中 P 和 Q 有 等 级 ≤ 1 (6) \begin{aligned} &P\cdot Q = Q\cdot P & 其中P和Q具有 1 级\\ &P\wedge Q = -Q\wedge P & 其中P和Q有等级≤1 % \tag{6b} \end{aligned} \tag{6} P⋅Q=Q⋅PP∧Q=−Q∧P其中P和Q具有1级其中P和Q有等级≤1(6)
术语:**楔积(wedge product)**有时被称为外积(exterior product)。(这不能与张量(tensor)级 ⊗ ⊗ ⊗ 混淆,后者有时称为外级(outer product)。
楔 积 ≠ 外 积 。 外 积 求 导 ≠ 梯 度 。 \boxed {楔积≠外积。外积求导≠梯度。} 楔积=外积。外积求导=梯度。
在此文档中,我们更愿意将其称为楔积。我们不涉及任何形式的衍生品,无论外部还是其他。
小心:参考 8 引入术语"反对称外积"来指楔积,然后将其速记为"外积",这是非常模棱两可和不标准的。它与第7节所讨论的外积(outer product)的长远概念冲突。
让我们来探索点积的属性。我们把注意力限制在普通等级=1的向量上。我们将显示此处定义的点积的行为与您从常规向量代数中的点积一样。首先,我们将讨论 P ⋅ P P \cdot P P⋅P 的行为就像一个标量。
标量的一个特征行为(在几何意义上)是: 如果你旋转它,什么也没有发生。这与向量非常不同,它在旋转时会发生变化(除非旋转平面垂直于向量)。
作为介绍特例,假设 P P P 位于旋转平面,请考虑将 P P P 旋转 180 度。这很容易做到:180 度旋转将 P P P 转换为 − P -P −P。我们高兴地看到,这种变换保持 P ⋅ P P \cdot P P⋅P 不变。这很容易证明,使用定义(方程 4),并使用乘法的缩放是可交换的事实:只是从乘积 ( − P ) ⋅ ( − P ) (-P)\cdot (-P) (−P)⋅(−P) 中考虑两个因子 − 1 -1 −1。
同样明显的是,垂直于 P P P 的平面旋转会保持 P ⋅ P P \cdot P P⋅P 不变, 这是令人放心的,虽然它无助于区分标量和任何其他量。
切线注意事项:更笼统地说,我们断言没有证据证明 P ⋅ P P\cdot P P⋅P 事实上,在任何旋转(即任何平面的任何旋转量)下都是不变的。我们还没有准备好证明这一点, 因为我们还没有正式定义我们所说的旋转变换…但我们几乎会坚持旋转保持 P ⋅ P P \cdot P P⋅P 不变,因为我们想要 P ⋅ P P \cdot P P⋅P 是一个标量,我们希望 P ⋅ P \sqrt{P\cdot P} P⋅P 是 P P P 的长度,我们希望旋转是保留长度的变换。(这不是证据,但它是合理性和自我一致性的论据。
如果 P ⋅ P P\cdot P P⋅P 是一个标量,很容易显示 P ⋅ Q P \cdot Q P⋅Q 也是一个标量,对于任何向量 P P P 和 Q Q Q。只需定义 R : = P + Q R := P + Q R:=P+Q,然后自行取每一侧的点积:
R ⋅ R = P ⋅ P + 2 P ⋅ Q + Q ⋅ Q (7) \begin{aligned} R \cdot R = P \cdot P + 2 P\cdot Q + Q \cdot Q \tag{7} \end{aligned} R⋅R=P⋅P+2P⋅Q+Q⋅Q(7)
此处每项除了 2 P ⋅ Q 2 P \cdot Q 2P⋅Q 显然是一个标量,所以剩下的项 2 P ⋅ Q 2P\cdot Q 2P⋅Q 也必须是一个标量。
这让我们几乎相信,任何两个向量之间的点积是一个标量。它不可能是一个向量或其他任何我们知道的。来到这里,我们所做的只不过是假设几何乘积的存在,然后做一堆算术。
术语 Terminology:如果向量 Q Q Q 等于 P P P,或等于 P P P 乘以任何非零标量,我们说 P P P 和 Q Q Q 是平行的,用 P ∥ Q P∥Q P∥Q 来表示。
根据我们已经知道的(主要是对称属性,方程 6),我们可以推断出,如果 P P P 和 Q Q Q 是平行的,那么 P ∧ Q = 0 P∧Q= 0 P∧Q=0 和 P Q = P ⋅ Q PQ = P \cdot Q PQ=P⋅Q; 即:
P Q = Q P = P ⋅ Q ⟺ P ∥ Q (8) \begin{aligned} PQ = QP = P \cdot Q \iff P ∥ Q \tag{8} \end{aligned} PQ=QP=P⋅Q⟺P∥Q(8)
这为我们检测平行向量提供了有用的测试。
术语:如果 P ⋅ Q = 0 P\cdot Q = 0 P⋅Q=0,我们说向量 P P P 和 Q Q Q 是垂直的或正交(orthogonal)的,记为 P ⊥ Q P⊥Q P⊥Q。
如果向量 P P P 和 Q Q Q 是正交的, 那么 P ⋅ Q = 0 P \cdot Q = 0 P⋅Q=0 和 P Q = P ∧ Q PQ = P∧Q PQ=P∧Q; 即:
P Q = − Q P = P ∧ Q ⟺ P ⊥ Q (9) \begin{aligned} PQ = -QP = P∧Q \iff P ⊥ Q \tag{9} \end{aligned} PQ=−QP=P∧Q⟺P⊥Q(9)
一般来说,在 P P P 和 Q Q Q 不一定平行或垂直的情况下,几何乘积将有两个术语,根据方程5。
引理:我们可以将任何向量 P P P 分解为与向量 Q Q Q 平行的组件 P Q P_Q PQ,以及垂直于 Q Q Q 的另一个组件 ( P − P Q ) (P-P_Q) (P−PQ)。 通过定义如下结构来证明:
P Q : = Q P ⋅ Q Q ⋅ Q (10) \begin{aligned} P_Q := Q \frac{P \cdot Q}{Q \cdot Q} \tag{10} \end{aligned} PQ:=QQ⋅QP⋅Q(10)
这种引理在概念上是有价值的,在实践中经常有用。(见第2.19节)。
P Q P_Q PQ 称为 P P P 投影到 Q Q Q 方向上,或 P P P 投影在 Q Q Q 方向上。
这是一个简单的练习,以显示以下:
( P Q ) ⋅ Q = P ⋅ Q P Q 与 Q 平 行 ( P Q ) ∧ Q = 0 ( P − P Q ) ⋅ Q = 0 P − P Q 与 Q 垂 直 ( P − P Q ) ∧ Q = P ∧ Q (11) \begin{aligned} % \begin{split} &(P_Q) \cdot Q = P \cdot Q \qquad P_Q 与 Q 平行\\ &(P_Q) ∧Q = 0 \\ &(P-P_Q) \cdot Q=0 \qquad P-P_Q 与 Q 垂直\\ &(P-P_Q) ∧Q = P∧Q % \end{split} \end{aligned}\tag{11} (PQ)⋅Q=P⋅QPQ与Q平行(PQ)∧Q=0(P−PQ)⋅Q=0P−PQ与Q垂直(P−PQ)∧Q=P∧Q(11)
现在,让我们来调查两个向量的楔积的特性。这将是一个双向量(或零),使用的推理与第2.7节相同,首先考虑P∧Q为非零的情况。
您可以轻松地显示楔积 P ∧ Q P∧Q P∧Q 与 P Q PQ PQ 平面中的 180 度旋转一致。即,只需用 − P -P −P 和 Q Q Q 分别替换 P P P 和 Q Q Q,并观察楔积不会发生任何情况。这告诉我们乘积不是 P Q PQ PQ 平面中的向量。我们评论没有证据证明: 在 P Q PQ PQ 平面的任何旋转(无论大小)结果是不变的。
如果我们有两个以上的维度,事情会变得更加有趣,因为这允许我们调查额外的旋转平面。
为了使事情易于可视化,让我们用 Q ′ Q' Q′ 替换 Q Q Q,其中 Q ′ Q' Q′ 是 Q Q Q方向垂直于 P P P的投影。我们总是可以这样做,使用第2.8节讨论的方法。根据方程 11,我们知道 P ∧ Q ′ P∧Q' P∧Q′ 等于 P ∧ Q P∧Q P∧Q。
选择任何垂直于 P P P和 Q ′ Q' Q′的矢量 R R R。将 P R PR PR平面上的两个向量旋转 180 度, 这将 P P P转换为 − P -P −P,但将 Q ′ Q' Q′保持不变(因为它与旋转平面垂直)。这意味着旋转并翻转(flip) 楔积的符号sign, P ∧ Q P∧Q P∧Q。
同样, Q R QR QR平面上的旋转会翻转楔积的符号。作为最后检查,我们执行反转,即将任何向量 V V V转换为 − V -V −V的操作,不限于任何旋转平面。这样,楔积保持不变。
综合所有这些观察结果,我们发现 P ∧ Q P∧Q P∧Q 的行为与我们期望的双向量的行为完全一样,基于第2.1节中的描述:一块表面,其边缘周围有循环方向。即:如果我们在表面平面上旋转东西,面积是不变的,但如果我们在垂直于表面的平面上旋转180度,表面就会翻转过来,反转的感觉。
楔积的概念可以推广到两个以上的向量。例如,对于三个向量,我们概括方程 4 如下:
P ∧ Q ∧ R : = 1 6 ( P Q R + Q R P + R P Q − R Q P − Q P R − P R Q ) (12) \begin{aligned} P∧Q∧R:=\frac{1}{6}(PQR + QRP + RPQ - RQP - QPR - PRQ)\tag{12} \end{aligned} P∧Q∧R:=61(PQR+QRP+RPQ−RQP−QPR−PRQ)(12)
如果您不感兴趣,您可以跳过以下方程,但如果您想要完全通用的表达式,则是:
q 1 ∧ q 2 ∧ q 3 ⋯ q r : = 1 r ! ∑ π sign ( π ) q π ( 1 ) q π ( 2 ) q π ( 3 ) ⋯ q π ( r ) (13) \begin{aligned} q_1∧q_2∧q_3 \cdots q_r :=\frac{1}{r!}\sum_{\pi} \text{sign}(\pi) q_{\pi(1)} q_{\pi(2)} q_{\pi(3)} \cdots q_{\pi(r)} \tag{13} \end{aligned} q1∧q2∧q3⋯qr:=r!1π∑sign(π)qπ(1)qπ(2)qπ(3)⋯qπ(r)(13)
总和运行在所有可能的排列 π π π。有 r ! r! r!这种排列,和 sin ( π ) \text{sin}(π) sin(π) 被定义为 + 1 +1 +1 (对所有偶排列)和 − 1 -1 −1 (对所有奇排列)。如果所有向量 q 1 ⋯ q r q_1 \cdots q_r q1⋯qr都是线性独立的,则这将是 r r r 级的对象; 否则,结果将是零。
人们喜欢说 “楔积是反对称的antisymmetric”…但你必须小心,它是反对称的交换任何两个向量…不是任何两clifs。例如:
s ∧ C = C ∧ s ( 不 是 反 对 称 的 ) (14) \begin{aligned} s∧C = C∧s \qquad (不是反对称的)\tag{14} \end{aligned} s∧C=C∧s(不是反对称的)(14)
对于任何标量和任何 clif C C C。
术语:刀片 blade 被定义为任何标量、任何向量或任意数量的向量的楔积。
术语:任何有一定等级的clif 都被称为同质的(或齐次的 homogeneous)。它必然要么是刀片或刀片的总和,要么就是所有相同的等级。
示例:总和 s + V s + V s+V (其中 s s s 是标量, V V V 是向量)不是同质的,它没有任何明确的等级,它肯定也不是刀片。
示例:在四个维度中,数量 γ 0 γ 1 + γ 2 γ 3 γ_0 γ_1 + γ_2 γ_3 γ0γ1+γ2γ3 是齐次的的,但不是刀片,它有2级,但不能仅仅写成两个向量之间的楔积。
术语:如前所述,我们使用"clif"一词来涵盖克利福德代数的最一般元素。在文献中,同一个概念被称为多维向量multivector,但我们避免这个词,因为它是误导。问题可能部分是由于序列建议的词源:
向 量 , 双 向 量 , 三 向 量 , . . . , 多 维 向 量 ( 错 误 ) (15) \begin{aligned} 向量,双向量,三向量,...,多维向量(错误)\tag{15} \end{aligned} 向量,双向量,三向量,...,多维向量(错误)(15)
与正确的序列相反:
向 量 , 双 向 量 , 三 向 量 , . . . , 刀 片 ( 正 确 ) (16) \begin{aligned} 向量,双向量,三向量,...,刀片(正确)\tag{16} \end{aligned} 向量,双向量,三向量,...,刀片(正确)(16)
术语:不要将三向量与 3-向量混淆。三向量可视化为由三个向量跨越的三维区域,此区域可能嵌入到三维或更高空间中。相比之下,3-向量是单个向量,它生活在完全三维的空间中。
术语:要描述刀片的等级,建议的方法是明确提及该等级。例如,我们说双向量有 2级,而三向量有 3级,等等。
还有另一种不推荐的方法,其中双向量称为 2-刀片,而三向量称为 3-刀片,等等。这是有风险的,因为可能混淆的数字是否指等级或维度。请注意,3-刀片具有等级=3,而 3-向量具有维度 3,因此需要预料到会出现混淆。
我们已经根据方程13 定义了任意许多向量的楔积。
我们现在定义任何刀片和任何刀片之间的楔积。规则很简单:将每个刀片拆开作为楔积,移除括号,并应用方程 13:
P ∧ ( Q ∧ R ) : = P ∧ Q ∧ R ( P ∧ Q ) ∧ R : = P ∧ Q ∧ R (17) %\begin{equation} \begin{aligned} &P∧(Q∧R) := P∧Q∧R\\ &(P∧Q)∧R := P∧Q∧R \end{aligned} \tag{17} %\end{equation} P∧(Q∧R):=P∧Q∧R(P∧Q)∧R:=P∧Q∧R(17)
其中 R H S RHS RHS 由方程13 定义。作为此定义的一个明显推论,楔积具有结合律(associative property)。
不难看出,对于 P P P 级和 Q Q Q 级(分别为 p p p 级和 q q q 级)的任何两个刀片, P ∧ Q P∧Q P∧Q的等级为 p + q p+q p+q(除非乘积恰好为零,在这种情况下其等级为零)。
我们可以从另一个方向使用这个想法,如下所述:正如第2.15节所讨论的,完整的几何乘积 P Q PQ PQ 可能包含所有等级的条款,从 ∣ p − q ∣ |p-q| ∣p−q∣ 到 p + q p+q p+q 包含(按两个计数)。楔积仅由具有最高等级的术语组成。用符号表示:
如 果 P = ⟨ P ⟩ p 和 Q = ⟨ Q ⟩ q 那 么 P ∧ Q : = ⟨ P Q ⟩ p + q (18) %\begin{equation} \begin{aligned} &如果 \quad P = ⟨P⟩_p\\ &和 \quad\quad Q = ⟨Q⟩_q\\ &那么 \quad P∧Q := ⟨PQ⟩_{p+q} \end{aligned} \tag{18} %\end{equation} 如果P=⟨P⟩p和Q=⟨Q⟩q那么P∧Q:=⟨PQ⟩p+q(18)
鉴于刀片楔积刀片的定义,我们可以概括到任何 clif 楔积 clif, 只需楔积对加法具有分配率:
V ∧ ( A + B ) = V ∧ A + V ∧ B (19) \begin{aligned} V ∧ (A + B ) = V∧A +V∧B \tag{19} \end{aligned} V∧(A+B)=V∧A+V∧B(19)
我们特此将两个刀片的点积定义为几何乘积中最低级的部分。即,如果 P 有 p级,Q级有 q级,那么点积将有等级|p-q|, 用符号表示:
如 果 P = ⟨ P ⟩ p 和 Q = ⟨ Q ⟩ q 那 么 P ⋅ Q : = ⟨ P Q ⟩ ∣ p − q ∣ (20) %\begin{equation} \begin{aligned} & 如果 \quad P = ⟨P⟩_p \\ & 和 \quad\quad Q = ⟨Q⟩_q\\ & 那么 \quad P \cdot Q := ⟨PQ⟩_{|p-q|} \end{aligned} \tag{20} %\end{equation} 如果P=⟨P⟩p和Q=⟨Q⟩q那么P⋅Q:=⟨PQ⟩∣p−q∣(20)
正如楔积是几何乘积的顶级部分一样,点积也是底层部分。
让我们说清楚:点积的定义更多地取决于其等级,而不是其对称性。两个向量的点积是对称的,而带双向量的向量的点积是反对称的:
V • X = X • V V ⋅ B = − B ⋅ V (21) %\begin{equation} \begin{aligned} & V•X = X•V \\ & V·B = −B·V \\ \end{aligned} \tag{21} %\end{equation} V•X=X•VV⋅B=−B⋅V(21)
你可以检查一下,这个更一般的点积定义与我们在第2.6节说的关于向量的点积是一致的。
鉴于刀片点积的这个定义,我们可以概括为任何clif点积,只需说点积对加法有分配律,即:
V ⋅ ( A + B ) = V ⋅ A + V ⋅ B (22) \begin{aligned} V·(A + B) = V ·A + V ·B \tag {22} \end{aligned} V⋅(A+B)=V⋅A+V⋅B(22)
假设 P 、 Q P、Q P、Q 和 R R R 是 1 级向量。然后 P ∧ ( Q ⋅ R ) P ∧ (Q \cdot R) P∧(Q⋅R) 很简单, 它只是一个与 P P P 平行的向量,被标量数量放大 Q ⋅ R Q \cdot R Q⋅R。
相比之下, ( P ∧ Q ) ⋅ R (P∧Q) \cdot R (P∧Q)⋅R 更有趣, 以下是一些重要的特殊情况:
( x ∧ y ) • z = 0 ( x ∧ y ) • x = − y ( x ∧ y ) • y = x (23) %\begin{equation} \begin{aligned} & (x ∧ y) •z = 0\\ & (x ∧ y) •x = -y\\ & (x ∧ y) •y = x \end{aligned} \tag{23} %\end{equation} (x∧y)•z=0(x∧y)•x=−y(x∧y)•y=x(23)
其中 x , y x,y x,y 和 z z z 是一组正交向量 orthonormal vectors,也许是基向量basis vectors。您可以使用方程 24 验证这些结果。其他案例可以使用上述线性组合进行计算。
我们可以总结如下情况:我们可以考虑 ( P ∧ Q ) ⋅ R (P∧Q)\cdot R (P∧Q)⋅R 是对矢量 R R R 进行变换操作。它部分是投影变换,一部分是旋转变换,一部分是缩放变换。也就是说:
这三项操作可以按任何顺序执行。
您可以使用楔积(方程 4b 或方程 18)的定义和点积的定义(方程 20):
( P ∧ Q ) • R = < P Q R − Q P R 2 > 1 (24) \begin{aligned} (P ∧ Q) •R = \left< \frac{PQR-QPR}{2}\right>_1 \tag{24} \end{aligned} (P∧Q)•R=⟨2PQR−QPR⟩1(24)
向量和双向量之间的点积是反对称的:
( P ∧ Q ) • R = − R • ( P ∧ Q ) (25) \begin{aligned} (P ∧ Q) •R = -R•(P ∧ Q) \tag{25} \end{aligned} (P∧Q)•R=−R•(P∧Q)(25)
小心:方程25 可能会让人感到意外,因为两个向量之间的点积是对称的。
还要小心:楔积和点积的组合不具备结合律:
( P ∧ Q ) • R ≠ P ∧ ( Q • R ) (26) \begin{aligned} (P ∧ Q) •R ≠ P ∧ (Q •R) \tag{26} \end{aligned} (P∧Q)•R=P∧(Q•R)(26)
进一步小心: 楔积也不会在点积上具备分布律,反之亦然:
( P ∧ Q ) • R ≠ ( P • R ) ∧ ( Q • R ) P ∧ ( Q • R ) ≠ ( P ∧ Q ) • ( P ∧ R ) (27) %\begin{equation} \begin{aligned} & (P ∧ Q) •R ≠ (P •R) ∧ (Q •R)\\ & P ∧ (Q •R) ≠ (P ∧ Q) •(P ∧ R) \end{aligned} \tag{27} %\end{equation} (P∧Q)•R=(P•R)∧(Q•R)P∧(Q•R)=(P∧Q)•(P∧R)(27)
我们真的不应该期望它, 我们期望乘积对加法具有分配律,但楔积和点积都是乘积(不是求和 not sums)。
有一个非常有趣的方法来可视化楔积。考虑乘积 C ∧ V C∧{V} C∧V ,其中 C C C 是任何等级的 clif, V {V} V 是向量。这个想法是使用 C C C 作为画笔,拖着 C C C 沿 V {V} V 。拖动运动由 V {V} V 的方向和大小指定。在此过程中,我们将 C C C 与自身保持平行。例如,在图 1 或图 4中,我们通过沿 Q Q Q 拖动向量 P P P 来形成平行四边形(parallelogram) P ∧ Q P ∧ Q P∧Q。同样,在图1 中,我们通过沿 R R R 将平行四边形 P ∧ Q P∧Q P∧Q 拖动,形成平行六面体(parallelepiped) P ∧ Q ∧ R P∧Q∧R P∧Q∧R。
画笔图片是有点笨拙的情况下, C C C 是一个标量,但我们可以通过重写 s ∧ V s∧{V} s∧V 为 1 ∧ ( s V ) 1∧(s{V}) 1∧(sV) 修复它,其中 s s s 是任何标量,即,我们采取标量 1(这是点状),并拖动它的距离 ∣ s V ∣ |s{V}| ∣sV∣ 在 V {V} V 方向, 它只是画了一个 s V s{V} sV 的副本。
双向量 P ∧ Q P∧Q P∧Q的方向可以被认为是平行四边形上标记的"循环方向",即在 P P P方向移动,然后向 Q Q Q方向移动。在图4中, Q ∧ P = − P ∧ Q Q∧P = -P∧Q Q∧P=−P∧Q,因为它们的流通方向相反。 (它们具有相同的大小,正好相反的方向)。
图4:双向量:流通方向相反
手性是惯用手的花哨词。它描述了一种情况,我们可以定义右手和左手之间的区别。克利福德代数的基础不需要任何手的概念。这一点很重要,因为物理学的许多基本定律与反射是一致的,克利福德代数使我们能够以一种表现这种不一致的方式编写这些定律。
例外是霍奇对偶(Hodge Dual),这需要手的概念,如第5节所讨论的。这可以被认为是一个可选的功能,添加到基本的克利福德代数包。
以下三个概念都是可选的,并且都是等价的:
我们强调,在大多数情况下,我们不需要定义这三个概念中的任何一个。我们只是说, 如果你定义他们,他们都会是等价的。除了第5节外,我们不会依赖任何顺时针或右手或正面对背面的概念。相反,我们依靠在双向量边缘循环所指定的方向,这是完全几何性和完全非手性。
我们提出一个观点,尽可能保持事物的非手性,因为它告诉我们一些关于物理基本定律的对称性,如参考3所讨论的。
一般来说,如果将 r r r级对象乘以等级 s s s的对象,几何乘积可能包含所有等级的项,从 ∣ r − s ∣ |r-s| ∣r−s∣ 到 ∣ r + s ∣ |r+s| ∣r+s∣,按两个计数,如下所见:
示例:让 { γ 1 , γ 2 , γ 3 , γ 4 } \{γ_1,γ_2,γ_3,γ_4\} {γ1,γ2,γ3,γ4}成为一组正交空间状向量,如第2.19节所述,并定义:
A : = γ 1 ∧ γ 2 B : = ( γ 2 + γ 3 ) ∧ ( γ 4 + γ 1 ) (28) %\begin{equation} \begin{aligned} &A:= \gamma_1 ∧ \gamma_2\\ &B:= (\gamma_2 + \gamma_3)∧(\gamma_4 + \gamma_1)\\ \end{aligned} \tag{28} %\end{equation} A:=γ1∧γ2B:=(γ2+γ3)∧(γ4+γ1)(28)
A A A 和 B {B} B 都是 2级同质的,事实上,它们是 2刀片。计算几何乘积很容易:
A B = 1 + γ 1 γ 4 + γ 2 γ 3 + γ 1 γ 2 γ 3 γ 4 (29) \begin{aligned} AB=1+ \gamma_1 \gamma_4 + \gamma_2 \gamma_3 + \gamma_1 \gamma_2 \gamma_3 \gamma_4 \tag{29} \end{aligned} AB=1+γ1γ4+γ2γ3+γ1γ2γ3γ4(29)
因此
A • B = ⟨ A B ⟩ 0 = 1 ⟨ A B ⟩ 2 = γ 1 γ 4 + γ 2 γ 3 A ∧ B = ⟨ A B ⟩ 4 = γ 1 γ 2 γ 3 γ 4 (30) \begin{aligned} &A•{B} &=& ⟨A{B}⟩_0 &=& 1 \\% \tag{30a} && & ⟨A{B}⟩_2 &=& \gamma_1 \gamma_4 + \gamma_2 \gamma_3 \\ %\tag{30b} &A∧{B} &=& ⟨A{B}⟩_4 &=& \gamma_1 \gamma_2 \gamma_3 \gamma_4 %\tag{30c} \end{aligned} \tag{30} A•BA∧B==⟨AB⟩0⟨AB⟩2⟨AB⟩4===1γ1γ4+γ2γ3γ1γ2γ3γ4(30)
对于高级的单体clifs A A A 和 B {B} B,几何乘积 A B A{B} AB 通常给我们留下了很多术语。正如第2.11节所讨论的,底部级术语是点积(例如方程30a), 同时,正如第2.10节所讨论的,最高级的术语是楔积(例如方程30c)。其他术语没有特别的名字,例如上一个示例中的中间项(例如方程 30b)。
如果我们暂时限制对平面老向量(仅限等级1)的关注,我们得出一个显著的结论,即两个向量的几何乘积只有两个项,一个缩放和一个双向量(假设双向量是非零):
V W = V • W + V ∧ W V • W = ⟨ V W ⟩ 0 V ∧ W = ⟨ V W ⟩ 2 (31) %\begin{equation} \begin{aligned} & VW = {V}•W + {V}∧W\\ &{V}•W = ⟨VW⟩_0\\ &{V}∧W = ⟨VW⟩_2 \end{aligned} \tag{31} %\end{equation} VW=V•W+V∧WV•W=⟨VW⟩0V∧W=⟨VW⟩2(31)
我们可以比较和方程4对比,我们在这里复制:
V • W : = V W + W V 2 V ∧ W : = V W − W V 2 (32) %\begin{equation} \begin{aligned} {V}•W := \frac{V W + W V}{2}\\ {V}∧W := \frac{V W - W V}{2}\\ \end{aligned} \tag{32} %\end{equation} V•W:=2VW+WVV∧W:=2VW−WV(32)
仍然假设 V {V} V 和 W W W是向量。
有时,人们看到介绍性讨论,首先介绍点积和楔积的属性,然后"定义"几何乘积
V W : = V ⋅ W + V ∧ W ( 据 称 ) (33) \begin{aligned} V W := {V} \cdot W + {V}∧W (据称)\tag{33} \end{aligned} VW:=V⋅W+V∧W(据称)(33)
这把讨论转向了我们在这里所做的。我们首先假设几何乘积的存在,然后用它来计算点积和楔积的特性。
在讨论向量时,他们可以摆脱方程33,但它不能很好地概括到任何级别高于或低于1的对象,它让学生在概念上开始走错路。下面是一个简单的反检查:
s C = s ⋅ C = s ∧ C ≠ s ⋅ C + s ∧ C (34) %\begin{equation} \begin{aligned} sC &= s \cdot C\\ &= s∧C\\ &≠ s \cdot C + s∧C \end{aligned} \tag{34} %\end{equation} sC=s⋅C=s∧C=s⋅C+s∧C(34)
其中 s s s 是任何标量, C C C 是任何 clif 单体。下面是另一个重要示例:
如 果 A : = γ 1 γ 2 B : = γ 2 γ 3 然 后 A B : = γ 1 γ 3 ≠ A ⋅ B + A ∧ B 因 为 A ⋅ B = 0 A ∧ B = 0 (35) %\begin{equation} \begin{aligned} 如果 & A := \gamma_1 \gamma_2\\ & B := \gamma_2 \gamma_3\\ 然后 & AB := \gamma_1 \gamma_3\\ &\quad ≠ A \cdot B + A∧B\\ 因为 & A \cdot B = 0\\ & A∧B = 0 \end{aligned} \tag{35} %\end{equation} 如果然后因为A:=γ1γ2B:=γ2γ3AB:=γ1γ3=A⋅B+A∧BA⋅B=0A∧B=0(35)
在普通的欧几里德空间中,每当你用自身计算向量的点积时,结果都是正的:即, S ⋅ S > 0 S\cdot S > 0 S⋅S>0. 一般来说,每当这个点积是正的,我们说,矢量 S S S 是空间状的 spacelike。
在特殊相对论中,如在明科夫斯基空间(Minkowski Space)中,我们发现某些向量具有的属性是 T ⋅ T < 0 T\cdot T < 0 T⋅T<0. 在这种情况下,我们说向量 T T T 是 时间状的 timelike。
在空间状和时间状向量存在的空间中,将会有其他向量具有属性 N ⋅ N = 0 N \cdot N= 0 N⋅N=0。我们说,这样的矢量 N \boldsymbol{N} N 是空(Null) 或等效轻的(lightlike)。
对于 1 级向量,我定义向量的 戈尔姆 gorm 是与自身一起点向量的乘积。gorm 是双线性bilinear的,也就是说:
geom ( 2 S ) = 4 geom ( S ) (36) \begin{aligned} \text{geom}(2 S) = 4 \text{geom}(S) \tag{36} \end{aligned} geom(2S)=4geom(S)(36)
这与线性的*规范(norm)*形成鲜明对比: ∣ 2 S ∣ = 2 ∣ S ∣ |2S|=2|S| ∣2S∣=2∣S∣。对于空间状向量,规范是 S ⋅ S \sqrt{S \cdot S} S⋅S,并符合适当的长度的概念。同时,对于一个像时间一样的向量,规范是 − T ⋅ T \sqrt{-T \cdot T} −T⋅T,这符合适当的时间间隔的概念。对于空矢量,规范为零,因此我们不必担心是否在方根内使用 + 或 - 符号。
要将 geom 的概念概括为更高级的对象,请参阅第 2.18 节。
我们定义一个 clif 的反向如下:将 clif 表示为乘积的总和,并在每个项内反转因子的顺序。例如, ( P + Q ∧ R (P+Q∧R (P+Q∧R 的反向方向是 ( P + R ∧ Q ) (P + R∧Q) (P+R∧Q),其中 P 、 Q P、Q P、Q 和 R R R是向量 (或者可能是标量) 。
记号:对于任何 clif C , C C,C C,C 的反向表示 C ∼ C^{\sim} C∼
反向对单个标量或矢量没有影响,但对双向量和高等级对象很重要。反向在旋转描述中起着重要作用,如参考2 所述。它也出现在戈尔姆gorm的一般定义中,如第2.18节所述
注意:如果您熟悉复数,您可以将反向理解为共轭复数的概括。有关详细信息,请参阅参考 1。
总的说来,任何clif C C C的 gorm 都是通过将 C C C 乘以 C C C 的反向,并保持乘积的标量部分而形成的。那是:
gorm ( C ) : = ⟨ C ∼ C ⟩ 0 (37) \begin{aligned} \text{gorm}(C) := ⟨C^{\sim}C⟩_0 \tag{37} \end{aligned} gorm(C):=⟨C∼C⟩0(37)
例如,如果 C = a + b γ + 1 + c γ + 2 + d γ 1 γ 2 C = a + b γ+1 + c γ+2 + d γ_1 γ_2 C=a+bγ+1+cγ+2+dγ1γ2,那么 C C C 的 geom 是 a 2 + b 2 + c 2 + d 2 + . . . a^2 + b^2 + c^2 + d^2+... a2+b2+c2+d2+... 假设 γ 1 γ_1 γ1 和 γ 2 γ_2 γ2 是空间状的基础向量,如第2.19节所述。你几乎可以认为这是毕达哥拉斯公式的概括,在非抽象意义上, γ 1 γ_1 γ1 是垂直于 γ 2 γ_2 γ2,在一些更抽象的意义上,每个级别的项是"正交"到每一个其他等级的项。
在任何欧几里德空间中,任何非零刀片的gorm都是正数。然而,在明科夫斯基时空(即特殊相对论)中,一个类似时间的刀片的gorm是负的。此外, 轻盈 (又名空) 刀片的gorm是零, 即使刀片本身是非零。
时空与普通的欧几里德空间尽可能的模拟,而不会完全相同。在指标的某一位置显示有负符号,这具有深远的影响。
鉴于任何一组线性独立的非空向量,我们可以创建一个正交基集,即一组 d d d 相互正交的单位矢量。实际上,我们可以任意创建许多这样的集合。
结构证明:使用格拉姆-施密特重新归化算法(Gram-Schmidt renormalization algorithm)。即使用方程 10等公式来投射出相互正交组件, 然后按规范划分,使其正交化。
在明科夫斯基时空中,任何此类基础都将具有以下属性:
γ 0 γ 0 = − 1 (38) \begin{aligned}\gamma_0 \gamma_0 = -1 \tag{38}\end{aligned} γ0γ0=−1(38)
γ 1 γ 1 = γ 2 γ 2 = γ 3 γ 3 = + 1 (39) \begin{aligned}\gamma1 \gamma_1 = \gamma_2 \gamma_2 = \gamma_3 \gamma_3 = +1 \tag{39}\end{aligned} γ1γ1=γ2γ2=γ3γ3=+1(39)
γ i γ j = − γ j γ i ∀ i ≠ j (40) \begin{aligned}γ_i γ_j = - γ_j γ_i \quad \forall i≠j \tag{40}\end{aligned} γiγj=−γjγi∀i=j(40)
在此基数集中, γ 0 γ_0 γ0是时间单位向量,而 γ 1 、 γ 2 γ_1、γ_2 γ1、γ2和 γ 3 γ_3 γ3是空间单位向量。
备注:方程 38 中的减号与方程 39中的加号相反, 这种符号的差异本质上是将特殊相对论与普通欧几里德几何学区别开来的唯一因素。这一点在参考9中进行了更充分的讨论。
在普通的欧几里德空间里,故事是相同的,除了没有时间状的向量,所以你只需忘记 γ 0 γ_0 γ0和方程38。
给定一组基,我们可以将任意向量 V {V} V 写成基向量的线性组合:
V = a γ 0 + b γ 1 + c γ 2 + d γ 3 (41) \begin{aligned} V = a γ_0 + b γ_1 + c γ_2 + d γ_3 \tag{41} \end{aligned} V=aγ0+bγ1+cγ2+dγ3(41)
适合的标量 a , b , c a, b, c a,b,c 和 d d d.
术语:这些标量 ( a 、 b 、 c 、 d ) (a、b、c、d) (a、b、c、d) 有时在所选基础上称为 V {V} V 组件。它们也可以在所选的基础上称为 V {V} V 的矩阵元素。
术语:向量 γ 0 γ_0 γ0有时称为所选 γ 0 γ_0 γ0方向中的 V {V} V 组件(同样,对于方程 41的 RHS 上的其他项)。这种向量也可以称为 V {V} V 投影到所选方向。
通常从"组件"的定义意图的上下文中可以明显看出。如果你想避免写作中的模糊性,你可以避免"组件"这个词,而是说"矩阵元素"或"投影"在适当的时候。
我们也可以写 V {V} V 的扩展作为
V = V 0 γ 0 + V 1 γ 1 + V 2 γ 2 + V 3 γ 3 (42) \begin{aligned} V = V^0 γ_0 + V^1 γ_1 + V^2 γ_2 + V^3 γ_3 \tag{42} \end{aligned} V=V0γ0+V1γ1+V2γ2+V3γ3(42)
其中 V i V^i Vi 再次称为所选基中 V {V} V 的组件(或矩阵元件)。
小心:即使 V i {V}^i Vi 是矢量 V {V} V 的一个组件,并且是一个标量,请不要以同样的方式想到 γ i γ_i γi。每一 γ i γ_i γi 都是一个向量本身,而不是一个标量。 在 γ i γ_i γi 中的 i i i 告诉哪个向量,而在 V i {V}^i Vi 中的 i i i 告诉向量的哪个组件。想象一些以 i i i 向量为组件的 γ i γ_i γi 超级矢量是没有优势的。
鉴于两个向量 P P P 和 Q Q Q,点积可以按照其组件表示如下:
P • Q = − P 0 Q 0 + P 1 Q 1 + P 2 Q 2 + P 3 Q 3 (43) \begin{aligned} P•Q = -P^0 Q^0 + P^1 Q^1 + P^2 Q^2 + P^3 Q^3 \tag{43} \end{aligned} P•Q=−P0Q0+P1Q1+P2Q2+P3Q3(43)
假设时间状 γ 0 γ_0 γ0 和空间状 γ 1 , γ 2 γ_1,γ_2 γ1,γ2,和 γ 3 γ_3 γ3。
请注意,这不是点积的定义:这只是点积早期定义(方程5)和组件定义(方程43)的结果。
特别是:非专家有时认为点积是"定义"的,通过相加相应组件的乘积,但一般来讲这不是真的,你可以看到方程43中从减号前面的第一个项。软件库程序通过轻快地乘以相应的元素来计算所谓的"点积",从而强化了虚假的定义(bogus definition)。(如果所有基向量都像空间一样,那么您只需将相应的组件乘以即可,但请记住,这不是定义,也不是一般规则)。
关于克利福德代数及其在物理学中的应用的各个方面的有用教程包括参考10、参考11和参考8。
描述 clif 所需的组件数量取决于所涉及的维度数。本表中显示了前几个案例:
1 s 1 v D + 1 1 s 2 v 1 b D + 2 1 s 3 v 3 b 1 t D + 3 1 s 4 v 6 b 4 t 1 q D + 4 (44) %\begin{equation} \begin{array}{ccc} 1s \quad 1v \quad &D+1\\ 1s \quad 2v \quad 1b \quad &D+2\\ 1s \quad 3v \quad 3b \quad 1t \quad &D+3\\ 1s \quad 4v \quad 6b \quad 4t \quad 1q \quad &D+4\\ \end{array} \tag{44} %\end{equation} 1s1v1s2v1b1s3v3b1t1s4v6b4t1qD+1D+2D+3D+4(44)
其中 s s s表示标量, v v v表示矢量, b b b表示双向量, t t t表示三向量, q q q表示四向量(quadvector)。你可以看到它采取帕斯卡三角形的形式,在每行中,组件总数为 2 D 2^D 2D。
当我们谈到维度时,它指的是你实际使用的任何空间的维度。这包括,无论出于什么原因,注意力仅限于自然宇宙的某个子空间(subspace)。例如,如果您的宇宙包含三个维度,但您只考虑单个平面的旋转,则 D=2描述适用。同样,如果您生活在四维时空中,但只考虑在三个空间方向旋转,则 D=3描述适用。
换句话说,克利福德代数对于超出实际使用的维度的存在(或不存在)非常不可知。(这使得几何乘积比老式向量叉积优雅得多,这需要你考虑第三个维度,即使你只是从两个维度开始。)
如果你发现你需要 D 维度来描述物理定律,那么它就设定了你生活的宇宙的维度。它不是一个上限,即它没有提供丝毫的证据来证明存在额外的、看不见的维度,如在弦论 string theory中出现。
这部分没有解释物理。不好意思,这里的目的只是为了收集一些有用的公式。特别是,如果你忘记了符号公约,这可能作为一个提醒。
扭矩是
τ : = r ∧ F (45) \begin{aligned} \tau := r∧F \tag{45} \end{aligned} τ:=r∧F(45)
点状物体的角动量是
L : = r ∧ p (46) \begin{aligned}L:=r ∧ p\tag{46}\end{aligned} L:=r∧p(46)
其中 r r r是对象的位置, p p p是它的动量 (即其常规的线性动量)。
物理学的基本定律说明,线性动量和角动量都是保守的。
对象的角速度由
ω : = ( 1 / r ) ∧ v = r ∧ v r ⋅ r (47) \begin{aligned} \omega := (1/r)∧v = \frac{r \land v}{r\cdot r} \tag{47} \end{aligned} ω:=(1/r)∧v=r⋅rr∧v(47)
其中 v v v 是速度。
从角速度 ( ω ) (\omega) (ω) 和位置的角度发现线性速度 ( v ) (v) (v) 通常很有用:
v = r ω = − ω r (48) \begin{aligned} v=r \omega = - \omega r \tag{48} \end{aligned} v=rω=−ωr(48)
您可以通过将 ω \omega ω(从方程 46)的定义插入方程 47 的 RHS 来验证。您还需要楔积的定义,即方程 4, 小心方程 48 最后一行的减号:将向量倍数乘以一个双向量是不可交换的。
这一节应在刚开始读时跳过。对于大多数目的,点积——由方程 20或方程 48d定义——是您需要知道的唯一类型的点积。另一方面,有时在某些情况下,方程 48 中定义的其他乘积之一允许更简单地表达某些内容:请参阅第 5.1 节作为示例。
通过背景,回忆乘积 P : = A ⋅ B P := A\cdot B P:=A⋅B 的定义 B B B 来自基本向量代数。这称为点积、内积(inner product)或标量积(scalar product)。基本定义仅适用于 A A A 和 B B B 是普通等级 1 向量的情况。在这种情况下,该产品有几个有趣的属性:
我们希望概括这种乘积概念,以便它适用于任意的clifs。有几种方法可以这样做,具体取决于我们最感兴趣的属性保留着不变。
如 果 . . . A = ⟨ A ⟩ r ( 同 质 等 级 r ) B = ⟨ B ⟩ s ( 同 质 等 级 s ) 那 么 . . . A ⌊ B : = ⟨ A B ⟩ r − s ( 右 收 缩 ) ( 向 前 收 缩 ) A ⌋ B : = ⟨ A B ⟩ s − r ( 左 收 缩 ) ( 向 后 收 缩 ) A ∘ B : = ⟨ A B ⟩ 0 ( 标 量 产 品 ) A ∙ B : = ⟨ A B ⟩ ∣ s − r ∣ ( 点 积 ) A ∙ H B : = ⟨ A B ⟩ ∣ s − r ∣ 提 供 r > 0 和 s > 0 ( 赫 斯 特 内 斯 内 乘 积 H e s t e n e s i n n e r p r o d u c t ) (48) %\begin{equation} \begin{aligned} 如果 ...\\ &A = ⟨A⟩_r & (同质等级r) \\ &B = ⟨B⟩_s & (同质等级s) \\ 那么 ...\\ &A \lfloor B := ⟨AB⟩_{r-s} & (右收缩) & \\ & &(向前收缩)\\ &A \rfloor B := ⟨AB⟩_{s-r} & (左收缩) &\\ & & (向后收缩)\\ &A \circ B := ⟨AB⟩_0 & (标量产品) &\\ &A \bullet B := ⟨AB⟩_{|s-r|} &(点积) &\\ &A \bullet_H B:= ⟨AB⟩_{|s-r|} & 提供 r>0 和 s>0 &\\ & (赫斯特内斯内乘积Hestenes inner product) \end{aligned}\tag{48} %\end{equation} 如果...那么...A=⟨A⟩rB=⟨B⟩sA⌊B:=⟨AB⟩r−sA⌋B:=⟨AB⟩s−rA∘B:=⟨AB⟩0A∙B:=⟨AB⟩∣s−r∣A∙HB:=⟨AB⟩∣s−r∣(赫斯特内斯内乘积Hestenesinnerproduct)(同质等级r)(同质等级s)(右收缩)(向前收缩)(左收缩)(向后收缩)(标量产品)(点积)提供r>0和s>0(48)
松散地说,所有这些都试图捕捉收缩是几何乘积中最低等级块的想法。赫斯特内斯乘积几乎从来不是个好主意:我们在这里提到它,这样你就不会感到困惑, 如果你在文献中看到它。当心喜欢 Hestenes 内积的人通常用简单 ∙ \bullet ∙ 的方法编写它,因此很容易与更传统的点积混淆。同样,喜欢标量乘积的人通常用简单的 ∙ \bullet ∙ 来书写它,因此现在我们有三种不同的乘积,由相同的符号表示。如果有必要区分常规点积(如方程 20或方程 48d中定义)和其他乘积,它可以称为"脂肪fat"点积。有关详细信息,请参阅参考文献 12。
助记符Mnemonic:在方程 48a和方程 48b中,操作符号( ⌊ \lfloor ⌊或 ⌋ \rfloor ⌋)上的垂直立式上升器位于"大"侧。即,在 A ⌊ B A\lfloor B A⌊B 的表达中,左边是大的一面:此表示为零,除非 A A A 在等级上大于 B {B} B 。
助记符Mnemonic:我称 A ⌊ B A\lfloor {B} A⌊B 为"前进"收缩,因为等级是按预期顺序的减法计算的:(A级)减(B级)。在文献中,传统的英文名称是"向右"的收缩。声波是, “向右” 的方式。这是右边的双关语(左的对面)和右边(向后的对面)。
非仿生:当心符号类似于字母"L",但英文名称为"右收缩"(而不是"左收缩"),不要把它看作是一封信。
如果 A A A 和 B {B} B 不是同质的,我们使用以下每个乘积在加法中满足分配律的事实来扩展这些定义。这为我们提供了以下公式:
A ⌊ B : = ∑ r , s ⟨ ⟨ A ⟩ r ⟨ B ⟩ s ⟩ r − s ( 右 收 缩 ) ( 向 前 收 缩 ) A ⌋ B : = ∑ r , s ⟨ ⟨ A ⟩ r ⟨ B ⟩ s ⟩ s − r ( 左 收 缩 ) ( 向 后 收 缩 ) A ∘ B : = ∑ r , s ⟨ ⟨ A ⟩ r ⟨ B ⟩ s ⟩ 0 ( 标 量 乘 积 ) A ∙ B : = ∑ r , s ⟨ ⟨ A ⟩ r ⟨ B ⟩ s ⟩ + ∣ s − r ∣ ( 点 积 ) A ∙ H B : = ∑ r ≠ 0 , s ≠ 0 ⟨ ⟨ A ⟩ r ⟨ B ⟩ s ⟩ ∣ s − r ∣ ( 赫 斯 特 内 斯 内 积 ) (49) %\begin{equation} \begin{aligned} &A \lfloor B:= \sum_{r,s}⟨⟨A⟩_r ⟨B⟩_s⟩_{r-s} & (右收缩)(向前收缩)\\ &A \rfloor B:= \sum_{r,s}⟨⟨A⟩_r ⟨B⟩_s⟩_{s-r} &(左收缩)(向后收缩)\\ &A \circ B:= \sum_{r,s}⟨ ⟨A⟩_r ⟨B⟩_s ⟩_0 & (标量乘积)\\ &A \bullet B:=\sum_{r,s}⟨ ⟨A⟩_r ⟨B⟩_s ⟩+{|s-r|} & (点积)\\ &A \bullet_H B:= \sum{r≠0,s≠0}⟨ ⟨A⟩_r ⟨B⟩_s ⟩_{|s-r|} &(赫斯特内斯内积) \end{aligned}\tag{49} %\end{equation} A⌊B:=r,s∑⟨⟨A⟩r⟨B⟩s⟩r−sA⌋B:=r,s∑⟨⟨A⟩r⟨B⟩s⟩s−rA∘B:=r,s∑⟨⟨A⟩r⟨B⟩s⟩0A∙B:=r,s∑⟨⟨A⟩r⟨B⟩s⟩+∣s−r∣A∙HB:=∑r=0,s=0⟨⟨A⟩r⟨B⟩s⟩∣s−r∣(右收缩)(向前收缩)(左收缩)(向后收缩)(标量乘积)(点积)(赫斯特内斯内积)(49)
霍奇对偶是一个线性操作。在 d d d 维中,它将等级 g g g 的刀片映射到 d = g d=g d=g 的刀片中,反之亦然。我称之为等级翻转属性。图5和图6中显示了两个特别常见的案例。
作为第一个例子,霍奇对偶总是将标量转换为相应的伪标量。作为另一个例子,在 $d=34 中,它将向量转换为某个"对应"伪数,同时,在 d = 4 d=4 d=4 中,它将向量转换为"对应"伪向量(不是伪数)。
示例:在 d = 3 d=3 d=3 中,熟悉的"三重标量乘积" a ⋅ b × c a\cdot b×c a⋅b×c 产生伪标量。这叫做伪的,因为如果你在镜子里看它,它就改变了符号。这与普通的非伪标量形成鲜明对比,例如豆类的数量,它不受反射的影响,像这样的对称性问题在物理学中至关重要。
术语:伪向量的另一个名字是轴向量(axis vector)。 d = 3 d=3 d=3 中熟悉的叉积产生伪向量,又名轴向向量。有关此的更多细节,请参阅第 5.3 节。
想法#1:提高等级:让 V {V} V 成为任何向量(等级=1),让 C C C 成为任意刀片(等级= g g g)。然后楔积 V ∧ C V∧C V∧C 将具有等级 = g + 1 =g+1 =g+1,除非乘积消失。我们可以总结这一点,大致说来楔积乘以向量提高等级1。
想法#2:降低等级:让 V {V} V 像以前一样成为任何向量(等级=1),让 D D D 成为不是标量的任意刀片(等级 = g =g =g,其中 g > 0 g>0 g>0)。然后点积 V ⋅ D V\cdot D V⋅D 将具有等级 = g + 1 =g+1 =g+1,除非乘积消失。我们可以总结这一点,大致说来点积向量降低 1。
可选切线:我们可以使用第 4 节中定义的左收缩操作符来简化前一段。让 V {V} V 成为任何向量 (等级 =1) 像以前一样, 让 C C C 成为任意刀片 (等级 = g =g =g),标量或其他。然后左收缩 V ⌋ C {V} \rfloor C V⌋C将有等级 = g − 1 =g-1 =g−1,除非乘积消失。我们可以总结这一点,大致说来向量的左收缩降低1级。
结合#1和#2的想法,我们可以说,楔乘在某种程度上是点乘的等级翻转版本。即,我们应该能够定义一个对应函数,其中楔乘将我们向下移动在图 6的左列,而点乘将我们在右列向上移动。事实上,我们可以用这个想法来定义霍奇对偶。(请注意,图5和图6并没有完全定义霍奇对偶; 它们只是描述了它的一些特征。)
从带等级的刀片 B {B} B 开始。让 X X X 表示 B {B} B 的霍奇对偶。我们还不能计算 X X X,但我们知道,不管它是什么,它必须有等级 d + k d+k d+k。我们现在发现一些其他刀片 A A A 与原来的 B {B} B ,即等级=k 相同的等级。楔积 A ∧ X A∧X A∧X 将是一个伪标量 (假设它不会消失) 。也就是说,它将具有最大的可能等级,即d等级.
同时,我们也可以形成点积, A ⋅ B A\cdot {B} A⋅B. 这将具有尽可能小的等级,即 0 级。
最后,我们选择一些单位伪标量,我们表示 i i i. 如果我们有一套有序的基础向量,显而易见的选择是按顺序将它们加倍,这样 i = γ 1 γ 2 . . . γ d i =γ_1 γ_2...γ_d i=γ1γ2...γd(请注意,通过向基础向量分配订单,我们引入了手性(chirality)概念。这是重要的补充,因为克利福德代数的基础不需要手性,如第2.14节所述。
在这一点上,我们有定义霍奇对偶所需的所有工具。
对于任何给定的 B B B,
如 果 A ∧ X = ( A ⋅ B ) i ∀ A 那 么 X = B ξ i (50) \begin{aligned} 如果 & A∧X = (A \cdot B)i \quad \forall A\\ 那么 & X = B \xi i \\ \end{aligned}\tag{50} 如果那么A∧X=(A⋅B)i∀AX=Bξi(50)
其中 B ξ i B\xi i Bξi 我表示霍奇对偶 关于 i i i 的 B {B} B.您可以在此处查看工作级别翻转属性。
在温和的条件下,总是有一个和唯一的一个 X X X,满足方程 50a,所以霍奇对偶存在,是独特的。我们要求,在某些基础上, B {B} B 中出现的每一个基础向量也必须出现在 i i i 中。
请注意,等级翻转不会改变基的基数(cardinality)。例如,总是有一个基标量和一个基础的伪标量。在 d d d 维中,有 d d d 基向量和 d d d 基伪向量。
重复一遍,关键属性是,对于任何给定的 B {B} B :
A ∧ ( B ξ i ) = ( A ⋅ • B ) i ∀ A (51) \begin{aligned} A∧(B\xi i)=(A \cdot •B)i \quad \forall A \tag{51}\end{aligned} A∧(Bξi)=(A⋅•B)i∀A(51)
从根本上说,霍奇对偶是一个二进制操作,也就是说, B ξ i {B}\xi i Bξi 取决于 B {B} B 和 i i i。然而,在相当广泛的实际应用中,有一个明显的选择 i i i,然后被称为"首选"伪标量。因此,通过将 B {B} B 的对偶写为 ∗ B *{B} ∗B 来简化符号,其中此"*"是一个未使用的前缀操作。这是传统的方法,但并不完全明智。这是因为有时我们想思考四维闵可夫斯基时空中的物理学,有时我们想限制对三维欧几里德空间的关注。霍奇对偶在这两种情况下是非常不同的,因为相关的伪标量是不同的。
示例:假设 B = 7 {B} =7 B=7(即标量), 然后 B ξ i = 7 i {B}\xi i = 7i Bξi=7i (即伪标量)。从 d = 1 d= 1 d=1 开始,在任意数量的维度中都是如此。
示例:在 d = 3 d=3 d=3 中,假设 B = 5 γ 1 γ 2 {B}= 5 γ_1 γ_2 B=5γ1γ2(即 x y xy xy平面中的双向量), 然后 B ξ i = 5 γ 3 = [ 0 , 0 , 5 ] {B}\xi i = 5 γ_3 = [0, 0, 5] Bξi=5γ3=[0,0,5] (即 z z z方向的矢量), 假设 i = γ 1 γ 2 γ 3 i = γ_1 γ_2 γ_3 i=γ1γ2γ3。
注:方程式 50提供了一个隐含的定义。有显式的切割和干燥算法(cut-and-dried algorithms)来计算 B {B} B 的霍奇对偶,特别是如果 B {B} B 是某些基上的组件。请参阅参考 13中的讨论,或查看参考 14中的实际代码。
如果你不使用霍奇对偶,克利福德代数有以下明显的属性,我觉得非常美丽:假设你与三个基向量, γ 1 , γ 2 γ_1,γ_2 γ1,γ2,和 γ a γ_a γa, 你知道你的空间必须至少有三个维度,但你没有办法知道这是否只是一个更大的空间的子空间。即,可能还有其它你所不知道基向量。值得注意的是,你不需要知道它们。这是因为克利福德代数在通常的操作下是封闭的closed(点积、楔积、加法等)。此外,您不需要按顺序排列基向量,你不需要知道 γ a γ_a γa出现在其他人之前,还是之后,还是在两者之间。您没有"右手规则",也不需要规则。
我称这个属性为"子空间自由 subspace freedom"。
相比之下,如果你用表格 ∗ B *{B} ∗B 来写霍奇对偶,它不允许子空间自由。这是因为 ∗ B *{B} ∗B 隐含着取决于一些特定的、可选择的、"首选"单位伪向量。根据通常的 ∗ B *{B} ∗B 思维方式,伪标量的等级会告诉你到底有多少基向量,此外,伪标量的选择定义了右手与左手的概念,因为如果你对基向量进行奇怪的排列,"首选"伪标量的符号会发生变化。
相比之下,以 B ξ i {B}\xi i Bξi 的形式书写霍奇对偶,可以维护子空间自由,因此没有必要选择"首选"伪标量,可能有其他基向量,你不知道,也不需要知道,只要他们不出现在 B {B} B 或 i i i。
在此小节中,我们将注意力限制在 d = 3 d=3 d=3 上。我们选择我们喜欢的单位伪标量,即 i = γ 1 γ 2 γ 3 i=γ_1 γ_2 γ_3 i=γ1γ2γ3。
叉积 A × B A×{B} A×B 是伪向量, 它可以根据 双向量 A ∧ B A∧{B} A∧B 来计算如下:
A × B = ( A ∧ B ) ξ i ≡ ∗ ( A ∧ B ) ∣ A × B ∣ = ∣ A ∧ B ∣ (52) %\begin{equation} \begin{aligned} &A×B & = (A∧B)\xi i \\ & &≡ *(A∧B) \\ &|A×{B}| &= |A∧B| \end{aligned} \tag{52} %\end{equation} A×B∣A×B∣=(A∧B)ξi≡∗(A∧B)=∣A∧B∣(52)
其中在方程 52a操作 ξ i \xi i ξi 代表霍奇对偶,定义在第5.1 节。同时,方程 52b 使用更传统的未固定前缀 * 符号表示完全相同的事物。
霍奇对偶操作是一个线性操作,这意味着,如果你不打算对叉积做任何非线性操作,你几乎可以忽略方程52的霍奇对偶操作。这留给我们以下又快又脏的配方(quick-and-dirty recipe):
A × B → A ∧ B ( 对 于 简 单 的 线 性 应 用 程 序 ) ∣ A × B ∣ = ∣ A ∧ B ∣ (53) %\begin{equation} \begin{aligned} &A×{B} \to A∧{B} \qquad (对于简单的线性应用程序)\\ &|A×{B}| = |A∧{B}| \end{aligned} \tag{53} %\end{equation} A×B→A∧B(对于简单的线性应用程序)∣A×B∣=∣A∧B∣(53)
作为此配方的一部分,将"旋转轴"的概念替换为"旋转平面",例如,而不是围绕 Z Z Z 轴旋转,而是从 X Y XY XY 平面的旋转角度进行思考。
如果您计划将双向量乘以向量或更高级的切屑clifs,则需要坚持方程 52中更通用的表达方式。例如,考虑三重标量乘积,它表示由三个向量跨越的平行六面体的体积,我们可以这样写:
A × B ⋅ C = A ∧ B ∧ C ∣ A × B ⋅ C ∣ = ∣ A ∧ B ∧ C ∣ (54) %\begin{equation} \begin{aligned} & A×{B} \cdot C = A ∧ B ∧ C \\ &|A×{B}\cdot C| = |A∧{B}∧C| \\ \end{aligned} \tag{54} %\end{equation} A×B⋅C=A∧B∧C∣A×B⋅C∣=∣A∧B∧C∣(54)
在这种情况下, A × B • C A×{B}•C A×B•C 严格等于 A ∧ B ∧ C A∧{B}∧ C A∧B∧C。它们是计算同一伪标量的两种方法, 有关更多的平行六面体的体积,请参阅参考7。
在更高级的情况下,如电动力学,你经常发现有一个方程涉及叉积和一个涉及点积的"相似"方程。在这种情况下,您可能需要将两个方程组合在一起,用完整的几何乘积替换两个乘积。这通常需要的不仅仅是一个配方,即它可能需要实际理解方程的含义。特别是对于电动力学,正确的答案包括将方程从 3 D 3D 3D 提升到 4 D 4D 4D,以及用一个双向量字段替换2-向量字段。参见参考文献4。
我更喜欢楔积有几个原因。
首先是最简单的实用教学原因:我可以使用楔积获得良好的效果。上下文越基本,学生越没有准备,楔积就越有用。我可以可视化楔积,我可以让学生可视化它。(这与叉积形成鲜明对比,叉积对学生而言往往非常神秘。
具体来说:考虑陀螺仪的预处理。我做过教学实验的次数比较多,我已经尝试了两种方式, 使用叉积(伪向量)和(或)使用楔积(双向量),可以理解预处理只是使用双向量的加法,添加它们边缘到边缘,如第2.3节所述。我可以用我的手来代表要添加的双向量,或者(甚至更好)我可以用简单的纸板道具展现。
让学生在旋转平面上将角动量想象成双向量,根本不需要时间。相比之下,让他们沿着旋转轴将其形象化为伪向量是一个很大的乘积;即使是聪明的学生也会为此而挣扎,不那么聪明的学生永远也得不到。
也许这只是意味着我在解释叉积方面做得很糟糕,但即使这是真的,我敢打赌,有很多老师发现自己处于同样的境地,并会从采取双向量方法中获益。
选择几何方法(即克利福德代数方法)的另一个原因是(与叉积相比),它在建模现实世界的对称性方面要好得多。
记住,现实世界就是它是什么,你就做什么。当我们写下一个方程时,它可能是现实世界的一个贴切的模型,也可能不是一个合适的模型。通常,涉及叉积的方程对它有手性(“手感”),即使现实世界中的物理学不是手性。有关此的更多资料,请参阅参考文献 3。
选择几何方法的其他原因是它与其他数学和物理思想的联系有关,如第1节所述。(这与叉积形成鲜明对比,后者几乎不那么可扩展。
呈现相同材料的方法总是多种多样的。就克利福德代数而言,本来可以跳到很早就建立的基础的想法。顺序是:
让我们称之为 “基础+组件” 方法。
有些学生更喜欢基础+组件的方法,因为这是他们所期待的。他们认为,根据定义,向量只不过是一个组件列表。
另一种选择是将向量视为一种事物,作为具有几何特性的对象,不受任何依据。让我们称之为几何方法。
我们必须问这个问题,哪种方法更基本,哪种方法更复杂?此外,哪种方法更抽象,哪种方法与物理现实更紧密地联系在一起?
其实这些都是诡异 trick 问题:他们看起来像二分法,但他们真的不是。答案是几何方法更物理,更抽象。它更基本,更复杂。
您可以使用尖棒作为向量的物理模型,不受任何基础的利用。在教室前挥动它。 | 通过将向量贴在尾部来显示如何添加矢量。 |
使用平板作为双向量的物理模型。 | 通过将双向量放在边缘,显示如何添加双向量。 |
在物理学中,几乎所有值得知道的东西都可以独立于任何基础来表达。你应该怀疑任何似乎取决于特定选择的基础。有关此的更多情况,请参阅参考文献 15。观察第2节中的一切工作都是在没有提及任何依据的情况下完成的; 直到最后才提到"基础"和"组件"的定义。
基础+组件方法的真正实际优势在于它非常适合数值计算,包括计算机程序。参考 2包括一个程序,用于跟踪 D = 3 D=3 D=3 空间中的复合旋转。
考虑对比度:
几何方法是物理的,但也是代数,公理的,抽象的;它又是基本的,但复杂的。基础+组件方法更具有数字性,即更适合计算机程序。
有些学生事先熟悉一种方法,或另一种方法,或两者兼而有之,或两者皆非。
根据长期惯例,两个向量( V \bold{V} V 和 W \boldsymbol{W} W)的"外积"一词是指张量积 tensor product,即
T : = V ⊗ W (55) \begin{aligned} T := V ⊗ W \tag{55} \end{aligned} T:=V⊗W(55)
其中 T T T 是第二级张量。
如果我们在组件方面扩展内容,相对于某些基,我们可以写:
T i j : = V i W j (56) \begin{aligned} T_{ij}:=V_i W_ j \tag{56} \end{aligned} Tij:=ViWj(56)
例如:
[ 0 1 2 ] ⊗ [ 2 3 4 ] = [ 0 0 0 2 3 4 4 6 8 ] (57) \begin{bmatrix} 0 \\ 1 \\ 2 \\ \end{bmatrix}⊗ \begin{bmatrix} 2\\ 3\\ 4\\ \end{bmatrix} = \begin{bmatrix} 0 \; 0 \; 0\\ 2 \; 3 \; 4\\ 4 \; 6 \; 8\\ \end{bmatrix}\tag{57} ⎣⎡012⎦⎤⊗⎣⎡234⎦⎤=⎣⎡000234468⎦⎤(57)
一般来说, T T T 本身没有特定的对称性,但我们可以将其拆分为对称部分和反对称部分:
T = V ⊗ W + W ⊗ V 2 + V ⊗ W − W ⊗ V 2 (58) \begin{aligned} T= \frac{V⊗W + W ⊗ V}{2}+\frac{V⊗W-W⊗V}{2} \tag{58} \end{aligned} T=2V⊗W+W⊗V+2V⊗W−W⊗V(58)
方程58 的 RHS 的第二项是楔积 V ∧ W V∧W V∧W。第一项的痕迹 TRACE 是点积。
小心:参考8 引入术语"反对称外积"来指楔积,然后将其速记为"外积",这是非常模棱两可和不标准的。它与外积的长期传统定义相冲突,外积由所有 T T T 组成,而不仅仅是 T T T 的反对称部分。
我写了一个"克利福德代数台计算器"程序。它知道如何做加法,减法,点积,楔积,全几何乘积,逆向,霍奇对偶,等等。大多数功能在任意多维度下工作。
这里是程序的帮助信息。另请参阅参考 14。
Desk calculator for Clifford algebra in arbitrarily many
Euclidean dimensions. (No Minkowski space yet; sorry.)
Usage: ./cliffer [options]
Command-line options include
-h print this message (and exit immediately).
-v increase verbosity.
-i fn take input from file ‘fn’.
-pre fn take preliminary input from file ‘fn’.
– take input from STDIN
If no input files are specified with -i or --, the default is an
implicit ‘–’. Note that -i and -pre can be used multiple times.
All -pre files are processed before any -i files.
Advanced usage: If you want to make an input file into a
self-executing script, you can use “#! /path/to/cliffer -i” as
the first line. Similarly, if you want to do some
initialization and then read from standard input, you can use
“#! /path/to/cliffer -pre” as the first line.
Ordinary usage example:
# compound rotation: two 90 degree rotations
# makes a 120 degree rotation about the 1,1,1 diagonal:
echo -e "1 0 0 90° vrml 0 0 1 90° vrml mul @v" | cliffer
Result:
0.57735 0.57735 0.57735 2.09440 = 120.0000°
Explanation:
On input, we expect all angles to be in radians. You can convert
from degrees to radians using the “deg” operator, which can be
abbreviated to “°” (the degree symbol). Hint: Alt-0 on some
keyboards.
As a special case, on input, a number with suffix “d” (with no
spaces between the number and the “d”) is converted from degrees to
radians.
echo “90° sin @” | cliffer
echo “90 ° sin @” | cliffer
echo “90d sin @” | cliffer
are each equivalent to
echo “pi 2 div sin @” | cliffer
Input words can be spread across as many lines (or as few) as you
wish. If input is from an interactive terminal, any error causes
the rest of the current line to be thrown away, but the program does
not exit. In the non-interactive case, any error causes the program
to exit.
On input, a comma or tab is equivalent to a space. Multiple spaces
are equivalent to a single space.
Note on VRML format: X Y Z theta
[X Y Z] is a vector specifying the axis of rotation,
and theta specifies the amount of rotation around that axis.
VRML requires [X Y Z] to be normalized as a unit vector,
but we are more tolerant; we will normalize it for you.
VRML requires theta to be measured in radians.
Also note that on input, the VRML operator accepts either four
numbers, or one 3-component vector plus one scalar, as in the
following example.
Same as previous example, with more output:
echo -e “[1 0 0] 90° vrml dup @v dup @m
[0 0 1] -90° vrml rev mul dup @v @m” | cliffer
Result:
1.00000 0.00000 0.00000 1.57080 = 90.0000°
[ 1.00000 0.00000 0.00000 ]
[ 0.00000 0.00000 -1.00000 ]
[ 0.00000 1.00000 0.00000 ]
0.57735 0.57735 0.57735 2.09440 = 120.0000°
[ 0.00000 0.00000 1.00000 ]
[ 1.00000 0.00000 0.00000 ]
[ 0.00000 1.00000 0.00000 ]
Even fancier: Multiply two vectors to create a 双向量,
then use that to crank a vector:
echo -e “[ 1 0 0 ] [ 1 1 0 ] mul normalize [ 0 1 0 ] crank @”
| ./cliffer
Result:
[-1, 0, 0]
Another example: Calculate the angle between two vectors:
echo -e “[ -1 0 0 ] [ 1 1 0 ] mul normalize rangle @a” | ./cliffer
Result:
2.35619 = 135.0000°
Example: Powers: Exponentiate a quaternion. Find rotor that rotates
only half as much:
echo -e “[ 1 0 0 ] [ 0 1 0 ] mul 2 mul dup rangle @a "
" .5 pow dup rangle @a @” | ./cliffer
Result:
1.57080 = 90.0000°
0.78540 = 45.0000°
1 + [0, 0, 1]§
Example: Take the 4th root using pow, then take the fourth
power using direct multiplication of quaternions:
echo “[ 1 0 0 ] [ 0 1 0 ] mul dup @v
.25 pow dup @v dup mul dup mul @v” | ./cliffer
Result
0.00000 0.00000 1.00000 3.14159 = 180.0000°
0.00000 0.00000 1.00000 0.78540 = 45.0000°
0.00000 0.00000 1.00000 3.14159 = 180.0000°
More systematic testing:
./cliffer.test1
The following operators have been implemented:
help help message
listops list all operators
=== Unary operators
pop remove top item from stack
neg negate: multiply by -1
deg convert number from radians to degrees
dup duplicate top item on stack
gorm gorm i.e. scalar part of V~ V
norm norm i.e. sqrt(gorm}
normalize divide top item by its norm
rev clifford '~' operator, reverse basis vectors
hodge hodge dual aka unary '§' operator; alt-' on some keyboards
gradesel given C and s, find the grade-s part of C
rangle calculate rotor angle
=== Binary operators
exch exchange top two items on stack
codot multiply corresponding components, then sum
add add top two items on stack
sub sub top two items on stack
mul multiply top two items on stack (in subspace if possible)
cmul promote A and B to clifs, then multiply them
div divide clif A by scalar B
dot promote A and B to clifs, then take dot product
wedge promote A and B to clifs, then take wedge product
cross the hodge of the wedge (familiar as cross product in 3D)
crank calculate R~ V R
pow calculate Nth power of scalar or quat
sqrt calculate square root of power of scalar or quat
=== Constructors
[ mark the beginning of a vector
] construct vector by popping to mark
unpack unpack a vector, quat, or clif; push its contents (normal order)
dimset project object onto N-dimensional Clifford algebra
unbave top unit basis vector in N dimensions
ups unit pseudo-scalar in N dimensions
pi push pi onto the stack
vrml construct a quaternion from VRML representation x,y,z,theta
clif take a vector in D=2**n, construct a clif in D=n
Note: You can do the opposite via '[ exch unpack ]'
=== Printout operators
setbasis set basis mode, 0=abcdef 1=xyzabc
dump show everything on stack, leave it unchanged
@ compactly show item of any type, D=3 (then remove it)
@m show quaternion, formatted as a rotation matrix (then remove it)
@v show quaternion, formatted in VRML style (then remove it)
@a show angle, formatted in radian and degrees (then remove it)
@x print clif of any grade, row by row
=== Math library functions:
sin cos tan sec csc cot
sinh cosh tanh asin acos atan
asinh acosh atanh ln log2 log10
exp atan2
[1]. 约翰·登克,“将复数与克利福德代数进行比较”
[2]. 约翰·登克,“多维旋转,包括助推器”
[3]. 约翰·登克,《皮埃尔的谜题》
[4]. 约翰 ·登克,“使用几何代数与组件的电磁学”
[5]. 约翰·登克,《磁场起源》
[6]. 约翰·登克,长直线的磁场双向量
[7]. 约翰·登克,平行图和平行的面积和体积
[8]. 大卫·赫斯滕斯,[2002年奖章演讲:物理数学语言的改革],
摘要;
全文
[9]. 约翰·登克,[时空的几何学和三角学] 阿赫雷塔布
[10]. 斯蒂芬·古尔、安东尼·拉森比和克里斯·多兰,时空的几何代数
[11]. 理查德·哈克,《时空代数数学导论》
[12]. 利奥·多斯特,[几何代数的内在产品第35-46页], 比尔霍瑟(波士顿,2002年)。
[13]. 维基百科文章,霍奇对偶
[14]. 约翰 ·登克, [克利夫 - 克利福德代数的桌面计算器], 任意欧几里德维度(从 1 开始)
主程序;
必需库;
使用示例和测试
[15]. 约翰·登克,《矢量导论》