叉积

在数学和向量代数领域，外积（external product）又称叉积（cross product）、叉乘、向量积（vector product），是对三维空间中的两个向量的二元运算，使用符号$\times$。与点积不同，它的运算结果是向量。对于线性无关的两个向量$\mathbf{a}$和$\mathbf{b}$，它们的外积写作$\mathbf{a} \times \mathbf{b}$，是$\mathbf{a}$和$\mathbf{b}$所在平面的法线向量，与$\mathbf{a}$和$\mathbf{b}$都垂直。外积被广泛运用于数学、物理、工程学、计算机科学领域。

如果两个向量方向相同或相反（即它们没有线性无关的分量），亦或任意一个的长度为零，那么它们的外积为零。推广开来，外积的模长和以这两个向量为边的平行四边形的面积相等；如果两个向量成直角，它们外积的模长即为两者长度的乘积。

外积和点积一样依赖于欧几里德空间的度量，但与点积之不同的是，外积还依赖于定向或右手定则。

叉积的名称源自表示叉积运算的叉乘号（$\mathbf a \times \mathbf b$），读作`a cross b`，向量积的叫法则是在强调其运算结果为向量而非标量。向量的另一种乘法是点积（$\mathbf a \cdot \mathbf b$），读作`a dot b`，其结果为标量，称为点积或数量积或标量积。

<image>

## 定义

<image>

两个向量$\mathbf{a}$和$\mathbf{b}$的外积仅在三维空间中有定义，写作$\mathbf{a} \times \mathbf{b}$。在物理学中，外积有时也被写成$\mathbf{a} \wedge \mathbf{b}$，但在数学中$\mathbf{a} \wedge \mathbf{b}$是外代数中的外积。

外积$\mathbf{a} \times \mathbf{b}$是与$\mathbf{a}$和$\mathbf{b}$都垂直的向量$\mathbf{c}$。其方向由右手定则决定，范数等于以两个向量为边的平行四边形的面积。

外积可以定义为：

$$\mathbf{a} \times \mathbf{b} = \| \mathbf{a} \| \| \mathbf{b} \| \sin(\theta) \ \mathbf{n}$$

其中$\theta$表示$\mathbf{a}$和$\mathbf{b}$在它们所定义的平面上的夹角（$0^\circ \le \theta \le 180^\circ$）。$\| \mathbf{a} \|$和$\| \mathbf{b} \|$是向量$\mathbf{a}$和$\mathbf{b}$的模长，而$\mathbf{n}$则是一个与$\mathbf{a}$、$\mathbf{b}$所构成的平面垂直的单位向量，方向由右手定则决定。根据上述公式，当$\mathbf{a}$与$\mathbf{b}$平行（即$\theta$为0°或180°）时，它们的外积为零向量$\mathbf{0}$。

<image>

按照惯例，向量$\mathbf{n}$的方向由右手定则决定：将右手食指指向$\mathbf{a}$的方向、中指指向$\mathbf{b}$的方向，则此时拇指的方向即为$\mathbf{n}$的方向。使用这一定则意味着外积满足反交换律，$\mathbf{a} \times \mathbf{b} = -(\mathbf{b} \times \mathbf{a})$：将右手食指指向$\mathbf{b}$、中指指向$\mathbf{a}$，那么拇指就必定指向相反方向，即翻转了外积的符号。

由此可以看出，使用外积需要考虑坐标系的利手性（Handedness），如果使用的是左手坐标系，向量$\mathbf{n}$的方向需要使用左手定则决定，与右手坐标系中的方向相反。

这样就会带来一个问题：参照系的变换不应该影响$\mathbf{n}$的方向（例如从右手坐标系到左手坐标系的镜像变换）。因此，两个向量的外积并不是（真）向量，而是赝向量。

## 计算

### 坐标表示

<image>

右手坐标系中，基向量$\mathbf{i}$、$\mathbf{j}$、$\mathbf{k}$满足以下等式：

$$\begin{align} <pre> \mathbf{i}\times\mathbf{j} &= \mathbf{k}\\ \mathbf{j}\times\mathbf{k} &= \mathbf{i}\\ \mathbf{k}\times\mathbf{i} &= \mathbf{j} </pre> \end{align}$$

根据反交换律可以得出：

$$\begin{align} <pre> \mathbf{j\times i} &= -\mathbf{k}\\ \mathbf{k\times j} &= -\mathbf{i}\\ \mathbf{i\times k} &= -\mathbf{j} </pre> \end{align}$$

根据外积的定义可以得出：

$\mathbf{i}\times\mathbf{i} = \mathbf{j}\times\mathbf{j} = \mathbf{k}\times\mathbf{k} = \mathbf{0}$（零向量）。

根据以上等式，结合外积的分配律和线性关系，就可以确定任意向量的外积。

向量$\mathbf{u}$和$\mathbf{v}$可以定义为平行于基向量的三个正交元素之和：

$$\begin{align} <pre> \mathbf{u} &= u_1\mathbf{i} + u_2\mathbf{j} + u_3\mathbf{k} \\ \mathbf{v} &= v_1\mathbf{i} + v_2\mathbf{j} + v_3\mathbf{k} </pre> \end{align}$$

两者的外积$\mathbf{u} \times \mathbf{v}$可以根据分配律展开：

$$\begin{align} <pre> \mathbf{u}\times\mathbf{v} = {} &(u_1\mathbf{i} + u_2\mathbf{j} + u_3\mathbf{k}) \times (v_1\mathbf{i} + v_2\mathbf{j} + v_3\mathbf{k})\\ = {} &u_1v_1(\mathbf{i} \times \mathbf{i}) + u_1v_2(\mathbf{i} \times \mathbf{j}) + u_1v_3(\mathbf{i} \times \mathbf{k}) + {}\\ &u_2v_1(\mathbf{j} \times \mathbf{i}) + u_2v_2(\mathbf{j} \times \mathbf{j}) + u_2v_3(\mathbf{j} \times \mathbf{k}) + {}\\ &u_3v_1(\mathbf{k} \times \mathbf{i}) + u_3v_2(\mathbf{k} \times \mathbf{j}) + u_3v_3(\mathbf{k} \times \mathbf{k})\\ </pre> \end{align}$$

即把$\mathbf{u} \times \mathbf{v}$分解为九个仅涉及$\mathbf{i}$、$\mathbf{j}$、$\mathbf{k}$的简单外积之和。九个外积各自所涉及的向量，要么相互平行、要么相互正交。将最前面所述的几个等式带入其中，然后合并同类项，可以得到：

$$\begin{align} <pre> \mathbf{u}\times\mathbf{v} = {} &- u_1v_1\mathbf{0} + u_1v_2\mathbf{k} - u_1v_3\mathbf{j} \\ &- u_2v_1\mathbf{k} - u_2v_2\mathbf{0} + u_2v_3\mathbf{i} \\ &+ u_3v_1\mathbf{j} - u_3v_2\mathbf{i} - u_3v_3\mathbf{0} \\ = {} &(u_2v_3 - u_3v_2)\mathbf{i} + (u_3v_1 - u_1v_3)\mathbf{j} + (u_1v_2 - u_2v_1)\mathbf{k}\\ </pre> \end{align}$$

即结果向量$\mathbf{s} = s_1\mathbf{i} + s_2\mathbf{j} + s_3\mathbf{k} = \mathbf{u} \times \mathbf{v}$的三个标量元素为：

$$\begin{align} <pre> s_1 &= u_2v_3-u_3v_2\\ s_2 &= u_3v_1-u_1v_3\\ s_3 &= u_1v_2-u_2v_1 </pre> \end{align}$$

也可以记作列向量的形式：

$$\begin{pmatrix}s_1,s_2,s_3\end{pmatrix}=\begin{pmatrix}u_2v_3-u_3v_2,u_3v_1-u_1v_3,u_1v_2-u_2v_1\end{pmatrix}$$

### 矩阵表示

<image>

外积可以表达为这样的行列式：

$\mathbf{u\times v} = \begin{vmatrix} <pre> \mathbf{i}&\mathbf{j}&\mathbf{k}\\ u_1&u_2&u_3\\ v_1&v_2&v_3\\ </pre> \end{vmatrix}$

这个行列式可以使用萨吕法则或拉普拉斯展开计算。使用萨吕法则可以展开为：

$$\begin{align} <pre> \mathbf{u\times v} &=(u_2v_3\mathbf{i}+u_3v_1\mathbf{j}+u_1v_2\mathbf{k}) - (u_3v_2\mathbf{i}+u_1v_3\mathbf{j}+u_2v_1\mathbf{k})\\ &=(u_2v_3 - u_3v_2)\mathbf{i} +(u_3v_1 - u_1v_3)\mathbf{j} +(u_1v_2 - u_2v_1)\mathbf{k} </pre> \end{align}$$

使用拉普拉斯展开可以沿第一行展开为：

$$\begin{align} \mathbf{u\times v} &= <pre> \begin{vmatrix} u_2&u_3\\ v_2&v_3 \end{vmatrix}\mathbf{i} - \begin{vmatrix} u_1&u_3\\ v_1&v_3 \end{vmatrix}\mathbf{j} + \begin{vmatrix} u_1&u_2\\ v_1&v_2 \end{vmatrix}\mathbf{k} \\ &=(u_2v_3 - u_3v_2)\mathbf{i} -(u_1v_3 - u_3v_1)\mathbf{j} +(u_1v_2 - u_2v_1)\mathbf{k} </pre> \end{align}$$

都可以直接得到结果向量。

## 性质

### 代数性质

对于任意三个向量$\mathbf{a}$、$\mathbf{b}$、$\mathbf{c}$。

- $$\mathbf{a} \times \mathbf{a} = \mathbf{0}$$
- $$\mathbf{a} \times \mathbf{0} = \mathbf{0}$$
- $\mathbf{a} \times \mathbf{b} = - \mathbf{b} \times \mathbf{a}$（反交换律）
- $\mathbf{a} \times (\mathbf{b} + \mathbf{c}) = \mathbf{a} \times \mathbf{b} + \mathbf{a} \times \mathbf{c}$（加法的左分配律）
- $(\mathbf{a} + \mathbf{b}) \times \mathbf{c} = \mathbf{a} \times \mathbf{c} + \mathbf{b} \times \mathbf{c}$（加法的右分配律）
- $$(\lambda \mathbf{a}) \times \mathbf{b} = \lambda ( \mathbf{a} \times \mathbf{b}) = \mathbf{a} \times (\lambda \mathbf{b})$$
- $$\mathbf{a} \times \mathbf{b} + \mathbf{c} \times \mathbf{d} = (\mathbf{a} - \mathbf{c}) \times (\mathbf{b} - \mathbf{d}) + \mathbf{a} \times \mathbf{d} + \mathbf{c} \times \mathbf{b}$$
- $$| \mathbf{a} \times \mathbf{b}| = | \mathbf{b} \times \mathbf{a}|$$
- $| \mathbf{a} \times \mathbf{b}|^2 = |\mathbf{a}|^2 |\mathbf{b}|^2 - (\mathbf{a} \cdot \mathbf{b})^2 = \begin{vmatrix} \mathbf{a} \cdot \mathbf{a} & \mathbf{a} \cdot \mathbf{b} \\ \mathbf{a} \cdot \mathbf{b} & \mathbf{b} \cdot \mathbf{b} \\ \end{vmatrix}$（拉格朗日恒等式）

一般来说，向量外积不遵守约简律，即$\mathbf{a} \times \mathbf{b} = \mathbf{a} \times \mathbf{c}$不表示$\mathbf{b} = \mathbf{c}$。此外，$\mathbf{a} \times \mathbf{b} = \mathbf{0}$不表示$\mathbf{a} = \mathbf{0}$或$\mathbf{b} = \mathbf{0}$。

但对于两个非零向量$\mathbf{a}$和$\mathbf{b}$。

- $\mathbf{a} \times \mathbf{b} = \mathbf{0}$当且仅当 $\mathbf{a}$平行于$\mathbf{b}$

### 几何意义

<image>

<image>

如果以向量$\mathbf{a}$和$\mathbf{b}$为边构成一个平行四边形，那么这两个向量外积的范数与这个平行四边形的正面积相等（如图1）：

$$\left\| \mathbf{a} \times \mathbf{b} \right\| = \left\| \mathbf{a} \right\| \left\| \mathbf{b} \right\| \sin \theta .$$

同时，如果以向量$\mathbf{a}$、$\mathbf{b}$、$\mathbf{c}$为棱构成一个平行六面体，那么这个平行六面体的体积$\mathbf{V}$也可以通过外积和点积的组合得到，这种积称作标量三重积（如图2）：

$$<pre> \mathbf{a}\cdot(\mathbf{b}\times \mathbf{c})= \mathbf{b}\cdot(\mathbf{c}\times \mathbf{a})= \mathbf{c}\cdot(\mathbf{a}\times \mathbf{b}). </pre>$$

因为标量三重积可能为负，平行六面体的体积需要取其绝对值：

$$V = |\mathbf{a} \cdot (\mathbf{b} \times \mathbf{c})|$$

因为外积的模长与其参数夹角的正弦有关，可以认为外积是“垂直度”的度量，正如点积是“平行度”的度量一样。对于任意两个单位向量，外积为1意味着它们互相垂直，外积为0意味着它们互相平行。点积则相反：点积为0意味着它们互相垂直。

单位向量还能带来两个特性：两个单位向量的点积是它们夹角的余弦（可正可负）；它们外积的模长则为夹角的正弦（始终为正）。

### 向量微分

对于实数$t$和两个向量值函数$\mathbf{a}(t)$、$\mathbf{b}(t)$，乘积法则成立：

- $$\frac{d}{dt}(\mathbf{a} \times \mathbf{b}) = \frac{d\mathbf{a}}{dt} \times \mathbf{b} + \mathbf{a} \times \frac{d\mathbf{b}}{dt}$$

## 三维坐标

给定直角坐标系的单位向量$\mathbf{i}$，$\mathbf{j}$，$\mathbf{k}$满足下列等式：

$\mathbf{i}\times\mathbf{j} =\mathbf{k}$、$\mathbf{j} \times \mathbf{k} = \mathbf{i}$、$\mathbf{k} \times \mathbf{i} = \mathbf{j}$

通过这些规则，两个向量的外积的坐标可以方便地计算出来，不需要考虑任何角度：设

$$\mathbf{a} = a_1\mathbf{i} + a_2\mathbf{j} + a_3\mathbf{k}$$

$$\mathbf{b} = b_1\mathbf{i} + b_2\mathbf{j} + b_3\mathbf{k}$$

则

$$\begin{align} \mathbf{a} \times \mathbf{b} & = (a_2b_3 - a_3b_2)\mathbf{i}+(a_3b_1 - a_1b_3)\mathbf{j}+(a_1b_2 - a_2b_1)\mathbf{k}\\ <pre> &= \begin{vmatrix} </pre> \mathbf{i} & \mathbf{j} & \mathbf{k} \\ a_1 & a_2 & a_3 \\ b_1 & b_2 & b_3 \\ \end{vmatrix} \end{align}$$

外积也可以用四元数来表示。注意到上述$\mathbf{i}$、$\mathbf{j}$、$\mathbf{k}$之间的外积满足四元数的乘法。一般而言，若将向量a1, a2, a3表示成四元数a1i + a2j + a3k，两个向量的外积可以这样计算：计算两个四元数的乘积得到一个四元数，并将这个四元数的实部去掉，即为结果。更多关于四元数乘法，向量运算及其几何意义请参见四元数与空间旋转。

## 高维情形

七维向量的外积可以通过八元数得到，与上述的四元数方法相同。

七维外积具有与三维外积相似的性质：

$$\mathbf{x} \times (a\mathbf{y} + b\mathbf{z}) = a\mathbf{x} \times \mathbf{y} + b\mathbf{x} \times \mathbf{z}$$

$$(a\mathbf{y} + b\mathbf{z}) \times \mathbf{x} = a\mathbf{y} \times \mathbf{x} + b\mathbf{z} \times \mathbf{x}$$

$$\mathbf{x} \times \mathbf{y} + \mathbf{y} \times \mathbf{x} = \mathbf{0}$$

- $\mathbf{x} \times \mathbf{y}$同时与$\mathbf{x}$和$\mathbf{y}$垂直：

$$\mathbf{x} \cdot (\mathbf{x} \times \mathbf{y}) = \mathbf{y} \cdot (\mathbf{x} \times \mathbf{y}) = \mathbf{0}$$

$$| \mathbf{x} \times \mathbf{y}|^2 = |\mathbf{x}|^2 |\mathbf{y}|^2 - (\mathbf{x} \cdot \mathbf{y})^2$$

- 不同于三维情形，它并不满足雅可比恒等式：

$$\mathbf{x}\times (\mathbf{y}\times \mathbf{z}) \; + \mathbf{y}\times (\mathbf{z}\times \mathbf{x}) \; + \mathbf{z}\times (\mathbf{x}\times \mathbf{y}) \ne \mathbf{0}$$

## 应用

另外，在物理学力学、电磁学、光学和计算机图形学等理工学科中，外积应用十分广泛。例如力矩、角动量、洛伦兹力等矢量都可以由向量的外积求解。在进行这些物理量的计算时，往往可以借助右手定则辅助判断方向。

## 历史

1773年，约瑟夫·拉格朗日引入了点积和叉积的概念来研究三维空间中的四面体。1843年，威廉·哈密顿引入了四元数乘法，同时区分了“向（矢）量”和“标量”的概念。给定两个四元数0,u和0,v，其中u和v是$R^3$空间中的向量，使得其乘积可以写成为$[-\mathbf{u} \cdot \mathbf{v},\mathbf{u}\times\mathbf{v}]$的形式。詹姆斯·克拉克·麦克斯韦在四元数的基础建立了著名的麦克斯韦方程组。四元数因此（同时也因为其他方面的）应用，在很长一段时间内都是物理学教育的必备内容。

在1878年威廉·金顿·克利福德在发表的《Elements of Dynamic》中将两个向量的叉积的范数定义为以这两个向量为边的平行四边形的面积，且在在方向上垂直于它们所确定的平面。

四元数方法通常需要提取结果中的标量和矢量部分的信息，因此奥利弗·亥维赛和乔赛亚·威拉德·吉布斯都认为其过于冗长。于是在四元数乘法被引入约四十年后，他们在激烈的反对声中引入了点积和叉积以作为替代方案。新方法在效率上的便捷最终得到了一致认可，使得亥维赛可以将麦克斯韦方程组由最初的20个减为今天常见的4个。

在很大程度上独立于这种发展，而且当时基本上不受欢迎，赫尔曼·格拉斯曼发明了一种与二维和三维空间无关几何代数，外积在其中起着中心作用。在1853年，与格拉斯曼同时代的人奥古斯丁·路易·柯西发表了一篇关于代数键的文章。代数键可用于求解方程，且和叉积有着相同的乘法特性。克利福德将哈密顿和格拉斯曼的代数结合起来，创建了克利福德代数。在三维矢量的情况下，由两个矢量产生的双向量二重化为一个矢量，从而产生叉积。

交叉符号和“叉积”这个名字是从乔赛亚·威拉德·吉布斯开始的，它们最初出现在1881年给他的学生的私人出版笔记中，叫做《向量分析的元素》。吉布斯的符号以及“叉乘”这个名字后来通过他以前的学生埃德温·B·威尔逊编写的教科书《向量分析》(Vector Analysis)获得了广泛的读者。威尔逊从吉布斯的课件中重新组织了材料，以及Heaviside，Föpps和Hamilton出版的材料。他把向量分析分为下列三个部分：

第一，关于向量的加法和标量与向量的乘积。第二，关于微分和积分与标量函数和向量函数的关系。第三，包含了线性向量函数的理论。

定义了两个主要的向量乘法，称为：

- 两个向量的直接乘，标量乘或者点乘。
- 两个向量的斜乘，向量乘或叉乘。

还研究了几种三重积和三重以上向量的乘积。还包括上述的三重积扩展。