点积

在数学中，点积（dot product；Punktprodukt）又称数量积或标量积（scalar product；Skalarprodukt），是一种接受两串等长的数字序列（通常是坐标向量）、返回单一常数的代数运算。

在欧几里得几何里，两个笛卡尔坐标向量的点积常称为内积（inner product；inneres Produkt）。点积是内积的一种特殊形式：内积是点积的抽象，内积是一种双线性函数，点积是欧几里得空间（内积空间）的度量。

从代数角度看，先求两数字序列中每组对应元素的积，再求所有积之和，结果即为点积。从几何角度看，点积则是两向量的长度与它们夹角余弦的积，这两种定义在笛卡尔坐标系中等价。

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

## 定义

点积有两种定义方式：代数方式和几何方式。通过在欧氏空间中引入笛卡尔坐标系，向量间的点积既可以由向量坐标的代数运算得出，也可以通过引入两向量的长度和角度等几何概念来求解。

### 代数定义

向量$\vec{a}=[a_1, a_2, \cdots, a_n]$和$\vec{b}=[b_1, b_2, \cdots, b_n]$的点积定义为：

$$\vec{a}\cdot \vec{b} = \sum_{i=1}^n a_ib_i = a_1b_1 + a_2b_2 + \cdots + a_nb_n$$

这里的Σ是求和符号，而$n$是向量空间的维度。

例如，三维向量$\left [ 1,3,-5 \right ]$和$\left [ 4,-2,-1 \right ]$的点积是

$$\begin{align} \ [1, 3, -5] \cdot [4, -2, -1] &= (1)(4) + (3)(-2) + (-5)(-1) \\ &= 4 - 6 + 5 \\ &= 3 \end{align}$$

点积还可以写为：

$\vec{a} \cdot \vec{b} = \vec{a}\vec{b}^T$。

这里，$\vec{b}^T$是列向量$\vec{b}$的转置。

使用上面的例子，1×3矩阵（列向量）乘以3×1矩阵（行向量）的行列式就是结果(通过矩阵乘法得到1×1矩阵):

$\begin{bmatrix} <pre> 1 & 3 & -5 </pre> \end{bmatrix} \begin{bmatrix} <pre> 4 \\ -2 \\ -1 </pre> \end{bmatrix} = \begin{bmatrix} <pre> 3 </pre> \end{bmatrix} = 3$。

### 几何定义

在欧几里得空间中，点积可直观定义为

$$\vec{a} \cdot \vec{b} = |\vec{a}| \, |\vec{b}| \cos \theta \;$$

这里 |$\vec{x}$| 表示$\vec{x}$的模（长度），$\theta$表示向量间的角度。

注意：点积的形式定义和这定义不同；在形式定义，$\vec{a}$和$\vec{b}$的夹角用上述等式定义。

这样，互相垂直的两条向量的点积总是零。若$\vec{a}$和$\vec{b}$都是单位向量（长度为1），它们的点积就是它们的夹角的余弦。那么，给定两条向量，它们之间的夹角可以以下公式得到：

$$\cos{\theta} = \frac{\mathbf{a \cdot b}}{|\vec{a}| \, |\vec{b}|}$$

这个运算可以简单地理解为：在点积运算中，第一向量投影到第二向量上（向量顺序这里在不重要，点积运算可交换），然后通过除以它们的标量长度来“标准化”。这样，这分数一定是小于等于1的，可以简单转化成角度值。

### 标量投影

<image>

欧氏空间中向量$\mathbf A$在向量$\mathbf B$上的标量投影是指对于向量B来说向量A的垂直度到向量B的代表长度

$$A_B=|\mathbf A|\cos\theta$$

这里$\theta$是$\mathbf A$和$\mathbf B$的夹角。从点积的几何定义$\mathbf A\cdot\mathbf B=|\mathbf{A}||\mathbf{B}|\cos\theta$不难得出，两向量的点积：$\mathbf A\cdot\mathbf B$可以理解为向量$\mathbf A$在向量$\mathbf B$上的投影再乘以$\mathbf B$的长度。

$$\mathbf A\cdot\mathbf B = A_B|\mathbf{B}|=B_A|\mathbf{A}|$$

### 两种定义的等价性

点积的两种定义中，只需给定一种定义，另外一种定义就可以推出。

#### 由几何定义推出代数定义

设$e_1,...,e_n$是$\mathbb{R}^n$空间的一组标准正交基，可以得出：

$$\begin{align} \mathbf A &= [a_1,\dots,a_n] = \sum_i a_i\mathbf e_i\\ \mathbf B &= [b_1,\dots,b_n] = \sum_i b_i\mathbf e_i. \end{align}$$

上文中已经得知两条向量点积的几何定义实际上就是一条向量在另外一条向量上的投影，故$\mathbf A$在任一标准基$e_n$的点积$\mathbf A\cdot\mathbf e_i$就是$\mathbf A$在此标准基向量上的投影，而根据向量自身的定义，这个投影即为$a_i$。因此：

$$\mathbf A\cdot\mathbf B = \mathbf A\cdot\sum_i b_i\mathbf e_i = \sum_i b_i(\mathbf A\cdot\mathbf e_i) = \sum_i b_ia_i$$

#### 由代数定义推出几何定义

应用余弦定理。

注意：这个证明采用三维向量，但可以推广到$n$维的情形。

考虑向量

$\vec{v} = v_1 \vec{i} + v_2 \vec{j} + v_3 \vec{k} \;$.

重复使用勾股定理得到

$|\vec{v}|^2 = v_1^2 + v_2^2 + v_3^2 \;$.

而由代数定义

$\vec{v} \cdot \vec{v} = v_1^2 + v_2^2 + v_3^2 \;$,

所以，根据向量点积的代数定义，向量$\vec{v}$和自身的点积就是其长度的平方。

引理1:$\vec{v} \cdot \vec{v} = |\vec{v}|^2 \;$

现在，考虑从原点出发的两条向量$\vec{a}$和$\vec{b}$，夹角$\theta$。第三条向量$\vec{c}$定义为

$\vec{c} \equiv \vec{a} - \vec{b} \;$,

构造以$\vec{a}$，$\vec{b}$，$\vec{c}$为边的三角形，采用余弦定理，有

$|\vec{c}|^2 = |\vec{a}|^2 + |\vec{b}|^2 - 2 |\vec{a}||\vec{b}| \cos \theta \;$.

根据引理1，用点积代替向量长度的平方，有

$\vec{c} \cdot \vec{c} = \vec{a} \cdot \vec{a} + \vec{b} \cdot \vec{b} - 2 |\vec{a}||\vec{b}| \cos\theta \;$. (1)

同时，根据定义$\vec{c}$ ≡ $\vec{a}$ - $\vec{b}$，有

$\vec{c} \cdot \vec{c} = (\vec{a} - \vec{b}) \cdot (\vec{a} - \vec{b}) \;$,

根据分配律，得

$\vec{c} \cdot \vec{c} = \vec{a} \cdot \vec{a} + \vec{b} \cdot \vec{b} -2(\vec{a} \cdot \vec{b}) \;$. (2)

连接等式（1）和（2）有

$\vec{a} \cdot \vec{a} + \vec{b} \cdot \vec{b} -2(\vec{a} \cdot \vec{b}) = \vec{a} \cdot \vec{a} + \vec{b} \cdot \vec{b} - 2 |\vec{a}||\vec{b}| \cos\theta \;$.

简化等式即得

$\vec{a} \cdot \vec{b} = |\vec{a}||\vec{b}| \cos\theta \;$,

以上即为向量点积的几何定义。

需要注意的是，点积的几何解释通常只适用于$\mathbb{R}^n$ ($n \le 3$)。在高维空间，其他的域或模中，点积只有一个定义，那就是

$\left \langle \vec{a}, \vec{b} \right \rangle = \sum_{i=1}^n a_ib_i$.

## 性质

点积有以下性质。

- $\vec{a} \cdot \vec{b} = \vec{b} \cdot \vec{a}$。
- $$\vec{a} \cdot \vec{b} = \left\| \vec{a} \right\| \left\| \vec{b} \right\| \cos \theta = \left\| \vec{b} \right\| \left\| \vec{a} \right\| \cos \theta = \vec{b} \cdot \vec{a}$$
- $$\vec{a} \cdot (\vec{b} + \vec{c}) = \vec{a} \cdot \vec{b} + \vec{a} \cdot \vec{c}$$
- $$\vec{a} \cdot (r\vec{b} + \vec{c}) = r(\vec{a} \cdot \vec{b}) +(\vec{a} \cdot \vec{c})$$
- $$(c_1\vec{a}) \cdot (c_2\vec{b}) = (c_1c_2) (\vec{a} \cdot \vec{b})$$
- 不满足结合律。因为标量（$\vec{a} \cdot \vec{b}$）与向量（$\vec{c}$）的点积没有定义，所以结合律相关的表达式 $(\vec{a} \cdot \vec{b}) \cdot \vec{c}$ 和 $\vec{a} \cdot (\vec{b} \cdot \vec{c})$ 都没有良好的定义
- 两个非零向量$\vec{a}$和$\vec{b}$是正交的，当且仅当$\vec{a}\cdot\vec{b}=0$

如果$\vec{b}$是单位向量，则点积给出$\vec{a}$在方向$\vec{b}$上投影的大小，如果方向相反则带有负号。分解向量对求向量的和经常是有用的，比如在力学中计算合力。

不像普通数的乘法服从消去律，如果$ab=ac$，则$b$总是等于$c$，除非$a$等于零。而对于点积：

如果$\vec{a}\cdot \vec{b}=\vec{a}\cdot\vec{c}$并且$\vec{a}\neq 0$:

则根据分配律可以得出：$\vec{a}\cdot\left ( \vec{b}-\vec{c} \right )=0$；进而：

如果$\vec{a}$垂直于$\left ( \vec{b}-\vec{c} \right )$，则$\left ( \vec{b}-\vec{c} \right )$可能$\neq 0$，因而$\vec{b}$可能$\neq\vec{c}$；否则$\vec{b}=\vec{c}$。

## 延伸

### 矩阵

矩阵具有弗罗比尼乌斯内积，可以类比于向量的内积。它被定义为两个相同大小的矩阵A和B的对应元素的内积之和。

复矩阵情况下：

$$\mathbf{A} : \mathbf{B} = \sum_i \sum_j A_{ij} \overline{B_{ij}} = \mathrm{tr} ( \mathbf{B}^\mathrm{H} \mathbf{A} ) = \mathrm{tr} ( \mathbf{A} \mathbf{B}^\mathrm{H} ) .$$

实矩阵情况下：

$$\mathbf{A} : \mathbf{B} = \sum_i \sum_j A_{ij} B_{ij} = \mathrm{tr} ( \mathbf{B}^\mathrm{T} \mathbf{A} ) = \mathrm{tr} ( \mathbf{A} \mathbf{B}^\mathrm{T} ) = \mathrm{tr} ( \mathbf{A}^\mathrm{T} \mathbf{B} ) = \mathrm{tr} ( \mathbf{B} \mathbf{A}^\mathrm{T} ) .$$

## 广义定义

在向量空间$V$中，定义在$V\times V$上的正定对称双线性形式函数即是$V$的内积，而添加有数量积的向量空间即是内积空间。

## 应用

物理学中力学的力做功的问题，经常用到点积计算。如机械功$W = \vec{F}\cdot \vec{d}$，其中$\vec{F}$为合力向量，$\vec{d}$为位移向量。

计算机图形学常用来判断方向，如两向量点积大于0，则它们的方向朝向相近；如果小于0，则方向相反。

向量内积是人工智能领域中的神经网络技术的数学基础之一。

此方法用于动画渲染（Animation-Rendering）。