贡献者: Giacomo
直观上说,矩阵就是把数字排列成长方形,因此它是一个纯粹的 “组合数学” 对象:不需要学习集合论、微积分、线性代数,只需要理解了数(整数,有理数,实数或者复数都可)的概念和上面的加、减、乘(可以没有除法)我们就可以理解矩阵。
不过,长方形只是一个很简单的二维图形,抛开纸张(二维)和方(形状)的限制我们可以得到很多不同的 “数字结构”,其中张量就是一种(不那么简单的)对正方形矩阵的推广。
在线性代数中,我们会学到用矩阵来理解(选定基之后的)线性算子,用张量来理解多线性变换。
1. 列矩阵和行矩阵
在这篇文章中,我们把一个 $n$ 行 $n$ 列的矩阵记作方矩阵,$n \times 1$ 矩阵记作列矩阵(列向量),$1 \times n$ 矩阵记作行矩阵(行向量),$1 \times 1$ 矩阵记作数矩阵(标量)。根据矩阵的乘法子节 7 ,我们有以下五种合法的乘法(注意顺序不能颠倒),
其中三种 “化简” 的乘法:
- 行矩阵 $\times$ 方矩阵 $\mapsto$ 行矩阵
$$
\begin{bmatrix}
\square & \square & \square
\end{bmatrix}
\begin{bmatrix}
\square & \square & \square \\
\square & \square & \square \\
\square & \square & \square
\end{bmatrix}
=
\begin{bmatrix}
\square & \square & \square
\end{bmatrix} ~.
$$
- 方矩阵 $\times$ 列矩阵 $\mapsto$ 列矩阵
$$
\begin{bmatrix}
\square & \square & \square \\
\square & \square & \square \\
\square & \square & \square
\end{bmatrix}
\begin{bmatrix}
\square \\
\square \\
\square
\end{bmatrix}
=
\begin{bmatrix}
\square \\
\square \\
\square
\end{bmatrix} ~.
$$
- 行矩阵 $\times$ 列矩阵 $\mapsto$ 数矩阵
$$
\begin{bmatrix}
\square & \square & \square
\end{bmatrix}
\begin{bmatrix}
\square \\
\square \\
\square
\end{bmatrix}
=
\begin{bmatrix}
\square
\end{bmatrix} ~.
$$
一种 “化繁” 的乘法:
- 列矩阵 $\times$ 行矩阵 $\mapsto$ 方矩阵
$$
\begin{bmatrix}
\square \\
\square \\
\square
\end{bmatrix}
\begin{bmatrix}
\square & \square & \square
\end{bmatrix}
=
\begin{bmatrix}
\square & \square & \square \\
\square & \square & \square \\
\square & \square & \square
\end{bmatrix} ~.
$$
三种 “不变” 的乘法:
- 列矩阵 $\times$ 数矩阵 $\mapsto$ 列矩阵
$$
\begin{bmatrix}
\square \\
\square \\
\square
\end{bmatrix}
\begin{bmatrix}
\square
\end{bmatrix}
=
\begin{bmatrix}
\square \\
\square \\
\square
\end{bmatrix} ~.
$$
- 数矩阵 $\times$ 行矩阵 $\mapsto$ 行矩阵
$$
\begin{bmatrix}
\square
\end{bmatrix}
\begin{bmatrix}
\square & \square & \square
\end{bmatrix}
=
\begin{bmatrix}
\square & \square & \square
\end{bmatrix} ~.
$$
- 方矩阵 $\times$ 方矩阵 $\mapsto$ 方矩阵
$$
\begin{bmatrix}
\square & \square & \square \\
\square & \square & \square \\
\square & \square & \square
\end{bmatrix}
\begin{bmatrix}
\square & \square & \square \\
\square & \square & \square \\
\square & \square & \square
\end{bmatrix}
=
\begin{bmatrix}
\square & \square & \square \\
\square & \square & \square \\
\square & \square & \square
\end{bmatrix} ~.
$$
在研究张量的时候(本文)只考虑 “化简” 的三种乘法,这之中我们发现,
因此,对于一个方矩阵或者行矩阵,我们可以把作用一个列矩阵定义为在右边乘上一个列矩阵;类似的对于一个方矩阵或者列矩阵,我们可以把作用一个行矩阵定义为在左边乘上一个行矩阵。
就目前来说,上述行为显得很没有意义,因为总共只有三种情况,而我却用了 $2 \times 2 = 4$ 种情况来表述。但是,我们可以推广它来得到张量的定义。
2. 矩阵的类型
我们现在有四种矩阵,方矩阵、列矩阵与行矩阵、数矩阵。我们把数矩阵作为终止状态,那么如果想通过 “作用列/行矩阵” 来得到终止状态,我们有
- 数矩阵
- 行矩阵作用列矩阵得到数矩阵
- 列矩阵作用行矩阵得到数矩阵
- 方矩阵作用列矩阵/作用行矩阵得到数矩阵
需要注意的是,对于方矩阵来说,作用列矩阵和作用行矩阵顺序不重要,因为一个是左乘一个是右乘。
我们把不需要任何作用的数矩阵称为 $(0,0)$ 型,把需要一次列矩阵作用的行矩阵称为 $(0,1)$ 型,把需要一次行矩阵作用的列矩阵称为 $(1,0)$ 型,把需要一次列矩阵作用和一次行矩阵作用方列矩阵称为 $(1,1)$ 型。因此,所谓 “化简” 的乘法指的是使类型变小的乘法。
注:这里我不称呼它们为 $(r, s)$ 型矩阵是因为这很容易和 $s \times t$ 型矩阵搞混。之后我会称呼它们为 $(r, s)$ 型张量。
因此对 $(r, s)$ 型作用一次列矩阵会得到 $(r, s - 1)$ 型;作用一次行矩阵会得到 $(r - 1, s)$ 型。这也解释为什么行矩阵不能再作用一次行矩阵,列矩阵不能再作用一次列矩阵。
很自然的,如果取更大的 $r$ 和 $s$,我们能把 $(r, s)$ 型定义成需要 $s$ 次列矩阵作用和 $r$ 次行矩阵作用来得到数矩阵的某种东西吗?
答案是肯定的,这就是 $(r, s)$ 型张量的定义。
3. 矩阵的新记号
之前说过,矩阵是一种组合数学对象,往往用二维数组 $ \begin{bmatrix}A_{i j}\end{bmatrix} $ 来表示。实际上,这不是一套很好的记号,为了得到张量,我们需要修改一下矩阵的记号。我们使用 $ \begin{bmatrix}A^i_j\end{bmatrix} $,即
$$
\boldsymbol{\mathbf{A}} = \begin{bmatrix}
A_1^1 & & A_n^1 \\
& \ddots & \\
A_1^n & & A_n^n \\
\end{bmatrix} ~.
$$
这样的好处是什么呢?
- 不再需要记忆矩阵元是怎么摆放的了
- 不再需要考虑列/行矩阵是左乘还是右乘了
- 我们甚至可以省略掉求和符号(指标与求和约定)
这套符号还和行列矩阵统一了,我们有列矩阵 $ \boldsymbol{\mathbf{v}} = \begin{bmatrix}v^j\end{bmatrix} $,
\begin{equation}
\begin{bmatrix}v^1 \\ \vdots \\ v^n\end{bmatrix} ~,
\end{equation}
行矩阵 $ \boldsymbol{\mathbf{\theta}} = \begin{bmatrix}\theta_i\end{bmatrix} $,
\begin{equation}
\begin{bmatrix}\theta_1 & \dots & \theta_n\end{bmatrix} ~.
\end{equation}
现在在矩阵 $ \boldsymbol{\mathbf{A}} $ 上作用列矩阵 $ \boldsymbol{\mathbf{v}} $,我们得到了一个新的列矩阵
$$
\begin{bmatrix}w^i\end{bmatrix} = \begin{bmatrix}\sum_j A^i_j v^j\end{bmatrix} ~.
$$
现在再作用行矩阵 $ \boldsymbol{\mathbf{\theta}} $,我们得到了
$$
\begin{bmatrix}a\end{bmatrix} = \begin{bmatrix}\sum_i w^i \theta_i\end{bmatrix} ~,
$$
反过来,我们也可以先作用行矩阵,再作业列矩阵,这会得到同样的结果;因此我们会同时作用列矩阵和行矩阵,即
$$
\begin{bmatrix}a\end{bmatrix} = \begin{bmatrix}\sum_{i, j} A^i_j v^j \theta_i\end{bmatrix} ~.
$$
例 1
我们考虑一个 $3 \times 3$ 方矩阵与 $3 \times 1$ 列矩阵的乘法,
$$
\begin{bmatrix}
A_1^1 & A_2^1 & A_3^1 \\
A_1^2 & A_2^2 & A_3^2 \\
A_1^3 & A_2^3 & A_3^3 \\
\end{bmatrix} \begin{bmatrix}
v^1 \\
v^2 \\
v^3 \\
\end{bmatrix} = \begin{bmatrix}
A_1^1 v^1 + A_2^1 v^2 + A_3^1 v^3 \\
A_1^2 v^1 + A_2^2 v^2 + A_3^2 v^3 \\
A_1^3 v^1 + A_2^3 v^2 + A_3^3 v^3 \\
\end{bmatrix} ~.
$$
4. 张量
一个 $(r, s)$ 型张量是一个有两种编号(系数)的多维数组,记作 $ \begin{bmatrix}A_{j_1 \dots j_s}^{i_1 \dots i_r}\end{bmatrix} $。
定义对它作用一个列矩阵 $ \begin{bmatrix}v^{j}\end{bmatrix} $,为
\begin{equation}
\begin{bmatrix}B_{j_1 \dots j_{s - 1}}^{i_1 \dots i_r}\end{bmatrix} = \begin{bmatrix}\sum_j A_{j_1 \dots j_{s - 1} j}^{i_1 \dots i_r} v^j\end{bmatrix} ~,
\end{equation}
得到一个 $(r,s - 1)$ 型张量。
当 $s > 1$ 时,我们也可以对任意的系数 $j_k$ 求和,因此在定义 “作用一个列矩阵” 的时候,我们需要声明是哪个系数的作用,数学中如不加申明的使用,一般指最后一位。
例 2 $(0, 2)$-型张量
一个 $2$ 维的 $(0, 2)$-型张量 $ \begin{bmatrix}A_{j_1 j_2}\end{bmatrix} $ 由 $A_{1 1}, A_{1 2}, A_{2 1}, A_{2 2}$ 四个数构成。考虑一个 $2$ 维列向量 $ \begin{bmatrix}v^1 \\ v^2\end{bmatrix} $,我们把它作用到 $ \begin{bmatrix}A\end{bmatrix} $ 的 $j_2$ 系数上得到
\begin{equation}
\begin{aligned}
\begin{bmatrix}\sum_j A_{j_1 j} v^j\end{bmatrix} &= \begin{bmatrix}\sum_j A_{1 j} v^j & \sum_j A_{2 j} v^j\end{bmatrix} \\
&= \begin{bmatrix}A_{1 1} v^1 + A_{1 2} v^2 & A_{2 1} v^1 + A_{2 2} v^2\end{bmatrix} ~.
\end{aligned}
\end{equation}
类似的,可以对 $ \boldsymbol{\mathbf{A}} $ 作用一个行矩阵 $ \begin{bmatrix}\theta_i\end{bmatrix} $,为
\begin{equation}
\begin{bmatrix}C_{j_1 \dots j_s}^{i_1 \dots i_{r - 1}}\end{bmatrix} = \begin{bmatrix}\sum_i A_{j_1 \dots j_s}^{i_1 \dots i_{r - 1} i} \theta_i\end{bmatrix} ~,
\end{equation}
得到一个 $(r - 1,s)$ 型张量。
对于 $(r, s)$ 型张量 $ \boldsymbol{\mathbf{A}} $ 来说,我们也可以一次性作用 $s$ 个列矩阵,$r$ 个行矩阵,得到一个数矩阵。
5. 张量的推广
张量的定义是基于列/行向量的,而在线性代数中它们正好对应原向量和对偶向量。但如果我们抛开线性代数,假设存在第三种 “基本向量呢”?比如垂直于纸面向外写,我们可以得到 “竖向量”。如果以这三种向量为基础,我们可以定义 $(r, s, t)$ 型 “广义张量” 是一个有三种编号(系数)的多维数组,记作 $ \begin{bmatrix}{}^{k_1 \dots k_t}A_{j_1 \dots j_s}^{i_1 \dots i_r}\end{bmatrix} $。我们甚至可以定义第四个、第五个甚至更多个基本向量。