迹

在线性代数中，一个$n \times n$的矩阵$\mathbf{A}$的迹（或迹数），是指$\mathbf{A}$的主对角线（从左上方至右下方的对角线）上各个元素的总和，一般记作$\operatorname{tr}(\mathbf{A})$或$\operatorname{Sp}(\mathbf{A})$：

$$\operatorname{tr}(\mathbf{A}) = \sum_{i=1}^n \mathbf{A}_{i, i} = \mathbf{A}_{1, 1} + \mathbf{A}_{2, 2} + \cdots + \mathbf{A}_{n, n}$$

其中$\mathbf{A}_{i, j}$代表矩阵的第$i$行$j$列上的元素的值。一个矩阵的迹是其特征值的总和（按代数重数计算）。

迹的英文为trace，是来自德文中的Spur这个单字（与英文中的Spoor是同源词），在数学中，通常简写为“Sp”或“tr”。

## 例子

设有矩阵：

$$\mathbf{A} = \begin{bmatrix} 3 & 5 & 1\\0 & 9 & 2\\7 & 6 & 4 \end{bmatrix}$$

它的迹是：

$$\operatorname{tr}(\mathbf{A}) = \operatorname{tr} \begin{bmatrix} 3 & 5 & 1\\0 & 9 & 2\\7 & 6 & 4 \end{bmatrix} = 3 + 9 + 4 = 16$$

## 性质

### 线性函数

给定一个环$\mathbb{R}$，迹是一个从系数在环中的$n \times n$矩阵的空间$\mathcal{M}_n(\mathbb{R})$射到环$\mathbb{R}$之上的线性算子。也就是说，对于任两个$n \times n$的矩阵$\mathbf{A}$、$\mathbf{B}$和纯量$r$，都有：

$$\mathrm{tr}(\mathbf{A} + \mathbf{B}) = \mathrm{tr}(\mathbf{A}) + \mathrm{tr}(\mathbf{B})$$

$\mathrm{tr}(r \cdot \mathbf{A} ) = r \cdot \mathrm{tr}(\mathbf{A})$

更进一步来说，当$\mathbb{R}$是一个域时，迹数函数$\mathrm{tr}$是$n \times n$矩阵的空间$\mathcal{M}_n(\mathbb{R})$上的一个线性泛函。

由于一个矩阵$\mathbf{A}$的转置矩阵$\mathbf{A}^T$的主对角线元素和原来矩阵的主对角线元素是一样的，所以任意一个矩阵和其转置矩阵都会有相同的迹：

$$\mathrm{tr}(\mathbf{A} ) = \mathrm{tr}\left(\mathbf{A}^T \right)$$

### 矩阵乘积的迹数

设$\mathbf{A}$是一个$n \times m$矩阵，$\mathbf{B}$是个$m \times n$矩阵，则：

$\mathrm{tr}(\mathbf{AB} ) = \mathrm{tr}(\mathbf{BA})$

其中$\mathbf{AB}$是一个$n \times n$矩阵，而$\mathbf{BA}$是一个$m \times m$矩阵。

上述的性质可以由矩阵乘法的定义证明：

$$\mathrm{tr}(\mathbf{AB}) = \sum_{i=1}^n (\mathbf{AB})_{i, i} = \sum_{i=1}^n \sum_{j=1}^m \mathbf{A}_{i, j} \mathbf{B}_{j, i} = \sum_{j=1}^m \sum_{i=1}^n \mathbf{B}_{j, i} \mathbf{A}_{i, j} = \sum_{j=1}^m (\mathbf{BA})_{j, j} = \mathrm{tr}(\mathbf{BA})$$

如果$\mathbf{A}$和$\mathbf{B}$都是$n \times n$的方形矩阵，那么它们的乘积$\mathbf{AB}$和$\mathbf{BA}$也会是方形矩阵。因此，利用这个结果，可以推导出：计算若干个同样大小的方形矩阵的乘积的迹数时，可以循环改变乘积中方形矩阵相乘的顺序，而最终的结果不变。例如，有三个方形矩阵$\mathbf{A}$、$\mathbf{B}$和$\mathbf{C}$，则：

$\mathrm{tr}(\mathbf{ABC} ) = \mathrm{tr}(\mathbf{BCA}) = \mathrm{tr}(\mathbf{CAB})$

但是要注意：

$\mathrm{tr}(\mathbf{ABC} ) \neq \mathrm{tr}(\mathbf{ACB})$

更一般地，乘积中的矩阵不一定要是方形矩阵，只要某一个循环改变后的乘积依然存在，那么得到的迹数依然会和原来的迹数相同。

另外，如果$\mathbf{A}$、$\mathbf{B}$和$\mathbf{C}$是同样大小的方阵而且还是对称矩阵的话，那么其乘积的迹数不只在循环置换下不会改变，而且在所有的置换下都不会改变：

$$\mathrm{tr}(\mathbf{ABC} ) = \mathrm{tr}(\mathbf{BCA}) = \mathrm{tr}(\mathbf{CAB}) = \mathrm{tr}(\mathbf{ACB} ) = \mathrm{tr}(\mathbf{CBA}) = \mathrm{tr}(\mathbf{BAC})$$

### 迹数的相似不变性

迹数拥有相似不变性。如果矩阵$\mathbf{A}$和$\mathbf{B}$相似的话，它们会有相同的迹。这一性质可使上面讲过的循环性质来证明：

矩阵$\mathbf{A}$和$\mathbf{B}$相似也就是说存在可逆矩阵$\mathbf{P}$，使得$\mathbf{B} =\mathbf{P}\mathbf{A} \mathbf{P}^{-1}$

因此$\mathrm{tr}(\mathbf{B} ) = \mathrm{tr}(\mathbf{P}\mathbf{A} \mathbf{P}^{-1}) = \mathrm{tr}(\mathbf{P}^{-1} \mathbf{P}\mathbf{A}) = \mathrm{tr}(\mathbf{A})$

### 矩阵迹数和特征多项式

一个$n \times n$的方形矩阵$\mathbf{A}$的特征多项式$P_{A}(\lambda)$定义为$\mathbf{A}$减去$\lambda$倍的单位矩阵后所得到的矩阵的行列式：

$P_{A}(\lambda) = \det(\mathbf{A} - \lambda \mathbf{I})$ 特征多项式是一个关于$\lambda$的n次多项式，它的常数项是$\mathbf{A}$的行列式的值，最高次项是$(-1)^n \lambda^n$，而接下来的n-1次项就是$(-1)^{n-1} \mathrm{tr}( \mathbf{A}) \lambda^{n-1}$，也就是说：

$P_{A}(\lambda) = (-1)^n \lambda^n + (-1)^{n-1} \mathrm{tr}( \mathbf{A}) \lambda^{n-1} + \cdots + \det(\mathbf{A})$

### 矩阵迹数与特征值

当系数域是代数闭域时（否则可以将系数域扩展到其代数闭包上来看），特征多项式$P_{A}(\lambda)$有n个根，它可以表达成：

$P_{A}(\lambda) = (-1)^n(\lambda - r_1)^{\alpha_1}(\lambda - r_2)^{\alpha_2} \cdots (\lambda - r_k)^{\alpha_k}$

其中的$r_1,r_2 \cdots r_k$是特征多项式的不同的根，而$\alpha_1,\alpha_2 \cdots \alpha_k$是这些根在特征多项式里的重数，称为代数重数。显然，所有代数重数加起来等于n。一方面，特征多项式的根就是矩阵的特征值，而另一方面，借由根与多项式系数的关系可以知道：特征多项式的所有的根加起来等于矩阵的迹数。所以矩阵的迹数是矩阵的所有特征值（按照代数重数计算）的和。

$\mathrm{tr}( \mathbf{A}) = \alpha_1 r_1 + \alpha_2 r_2 + \cdots + \alpha_k r_k$

如果将矩阵写成它的若尔当标准型的话，也可以看出这一点，因为若尔当标准型的特征多项式的所有的根（包括重根）就是对角线上的所有元素。

如果不区分相同或不同的特征值的话，上述关系也可以写成：

$\mathrm{tr}( \mathbf{A}) = \lambda_1 + \lambda_2 + \cdots + \lambda_n$ 其中的$\lambda_1,\lambda_2 \cdots \lambda_n$是矩阵的特征值。

而且有：

$\forall m \in \mathbb{N}, \mathrm{tr}( \mathbf{A}^m) = \lambda_1^m + \lambda_2^m + \cdots + \lambda_n^m$

## 线性映射的迹数

设系数域为$\mathbb{K}$的$\mathbb{V}$是一个有限维的向量空间，维数是n。给定任一线性映射$f : \mathbb{V}\rightarrow \mathbb{V}$，可以定义此一映射的迹数为其变换矩阵的迹，即选定$\mathbb{V}$的一个基底并用对应于此基底的一个方形矩阵描述$f$，再定义这个方形矩阵的迹数为$f$的迹数。这个定义下$f$的迹数和所选取的基无关：只需要注意到不同的基底的选取实际上等价于对变换矩阵做一次相似变换，而两个相似的矩阵的迹数是一样的。因此这样的定义是自洽的。

另外一种定义涉及到行列式的性质。考虑$\mathbb{V}$的一个基底$\mathcal{B} = (e_1, e_2, \cdots , e_n)$，以及函数：

$Sp : \; \; \; \quad \mathbb{V}^n \qquad \; \quad \longrightarrow \quad \qquad \qquad \qquad \mathbb{K} \qquad \qquad \qquad,$

$Sp :(x_1, x_2, \cdots , x_n) \longmapsto \sum_{i=1}^n \det(x_1, x_2, \cdots , f(x_i),\cdots ,x_n)$

根据行列式理论，这个函数也是一个行列式型的函数，也就是说存在一个只取决于$f$的量$\mathrm{Sp} (f)$，使得$Sp(x_1, x_2, \cdots , x_n) = \mathrm{Sp} (f) \cdot \det(x_1, x_2,\cdots ,x_n)$ 可以证明，这个纯量$\mathrm{Sp} (f)$就等于之前定义的$f$的迹数。

## 迹的梯度

由迹的定义可知迹可以看作是矩阵的实标量函数，所以我们可以通过求实标量函数的梯度来求迹的梯度。

### 单个矩阵

- A是m×m矩阵时，有$\frac { \partial \mathrm{tr}(\mathbf{A}) }{ \partial \mathbf{A} } ={ \mathbf{I} }_{ m }$
- m×m矩阵A可逆时，有$\frac { \partial \mathrm{tr}(\mathbf{A}^{-1}) }{ \partial \mathbf{A} } =-( \mathbf{A}^{-2} )^T$
- 对于两个向量x和y的外积，有$\frac { \partial \mathrm{tr}(\boldsymbol{xy}^T) }{ \partial \boldsymbol{x} }=\frac { \partial \mathrm{tr}(\boldsymbol{yx}^T) }{ \partial \boldsymbol{x} } =\boldsymbol{y}$

### 两个矩阵

- 若A为m×n矩阵，有$\frac { \partial \mathrm{tr}(\mathbf{A}\mathbf{A}^T) }{ \partial \mathbf{A} }=\frac { \partial \mathrm{tr}(\mathbf{A}^T\mathbf{A}) }{ \partial \mathbf{A} } =2\mathbf{A}$
- 若A为m×m矩阵，有$\frac { \partial \mathrm{tr}(\mathbf{A}^2) }{ \partial \mathbf{A} }=\frac { \partial \mathrm{tr}(\mathbf{A}\mathbf{A}) }{ \partial \mathbf{A} } =2\mathbf{A}^T$
- 若A为m×n矩阵，B是m×n矩阵，有$\frac { \partial \mathrm{tr}(\mathbf{A}^T\mathbf{B}) }{ \partial \mathbf{A} }=\frac { \partial \mathrm{tr}(\mathbf{B}\mathbf{A}^T) }{ \partial \mathbf{A} } =\mathbf{B}$
- 若A为m×n矩阵，B是n×m矩阵，有$\frac { \partial \mathrm{tr}(\mathbf{A}\mathbf{B}) }{ \partial \mathbf{A} }=\frac { \partial \mathrm{tr}(\mathbf{B}\mathbf{A}) }{ \partial \mathbf{A} } =\mathbf{B}^T$
- 当A和B均为对称矩阵时，有$\frac { \partial \mathrm{tr}(\mathbf{A}\mathbf{B}) }{ \partial \mathbf{A} }=\frac { \partial \mathrm{tr}(\mathbf{B}\mathbf{A}) }{ \partial \mathbf{A} } =\mathbf{B}+\mathbf{B}^T-diag(\mathbf{B})$
- 若A和B都是m×m矩阵，并且A是非奇异矩阵，有$\frac { \partial \mathrm{tr}(\mathbf{B}\mathbf{A}^{-1}) }{ \partial \mathbf{A} }=-(\mathbf{A}^{-1}\mathbf{B}^T\mathbf{A}^{-1})^T$