线性代数的内容主要关于这四种对象:
标量表示单独的一个数,通常用斜体小写字母表示,如 $s\in \mathbb R, n \in \mathbb N$。
向量是一个一维数组,这些数字有一定的顺序,可以通过下标获取对应的值,通常用粗体小写字母表示:$\mathbf{x} \in \mathbb R^n$,表示元素取实数,且有 $n$ 个元素,它的元素用对应的斜体小写字母加下标表示:$x_1$。一般我们将向量写成列向量的形式:
$$ \mathbf x = \begin{bmatrix} x_1 \\ x_2 \\ \cdots \\ x_n \end{bmatrix} $$有时候我们需要得到一个向量的子集,例如得到第 $1,3,6$ 个元素,那么我们可以令集合 $S = \{1,3,6\}$,然后用 $\mathbf x_{S}$ 来表示这个子集。
另外,我们用 $-$ 的下标表示去集合的补:$\mathbf x_{-1}$ 表示除了 $x_1$ 之外 $\mathbf x$ 中的所有元素,$\mathbf x_{-S}$ 表示除了 $x_1, x_3, x_6$ 之外 $\mathbf x$ 中的所有元素。
矩阵是一个二维数组,每个元素的下标有两个,通常用大写粗体字母表示:$\mathbf A \in \mathbb R^{m\times n}$ 表示取实值的 $m$ 行 $n$ 列矩阵,其元素用对应的小写斜体字母加下标表示:$A_{1,1}, A_{m,n}$。
另外,我们用 $:$ 下标表示矩阵的一行或者一列:$\mathbf A_{i,:}$ 第 $i$ 行,$\mathbf A_{:,j}$ 第 $j$ 列。
矩阵可以写成这样的形式:
$$ \begin{bmatrix} A_{1,1} & A_{1,2} \\ A_{2,1} & A_{2,2} \\ \end{bmatrix} $$有时候我们需要对矩阵进行逐元素操作,例如将函数 $f$ 应用到 $\bf A$ 的所有元素上,此时我们用 $f({\bf A})_{i,j}$ 表示。
张量是超过二维的数组,我们用 $\sf A$ 表示张量,${\sf A}_{i,j,k}$ 表示其元素(三维张量情况下)。
矩阵的转置操作相当于沿着对角线翻转,定义为:
$$ \mathbf A^\top_{i,j} = \mathbf A_{i,j} $$矩阵转置的转置等于矩阵本身:
$$\bf \left(A^\top\right)^\top=A$$转置将矩阵的形状从 $m\times n$ 变成了 $n \times m$。
向量可以看成是只有一列的矩阵,因此也可以进行转置操作,有时候为了方便,我们可以使用行向量加转置的操作,如:$\mathbf x=[x_1,x_2,x_3]^\top$
标量也可以看出是一行一列的矩阵,其转置等于自己:$a^\top=a$。
加法即逐元素相加,要求两个矩阵的形状一样:
$$ \mathbf{C = A+B}, C_{i,j}=A_{i,j}+B_{i,j} $$数乘即一个标量与矩阵相乘:
$$ \mathbf D = a \cdot \mathbf B + c, D_{i,j}=a \cdot B_{i,j}+c $$有时候我们允许使用一个矩阵和向量相加的形式,得到一个矩阵,把 $\bf b$ 加到了 $C$ 的每一行上,本质上是构造了一个将 $\bf b$ 按行复制的一个新矩阵,这种机制叫做 broadcasting
: