Linear-Algebra(一)

1 预备知识

1.1 基本概念

- 标量

标量表示单独的一个数,通常用斜体小写字母表示,如 $s\in \mathbb R, n \in \mathbb N$。

- 向量

向量是一个一维数组,这些数字有一定的顺序,可以通过下标获取对应的值,通常用粗体小写字母表示:$\mathbf{x} \in \mathbb R^n$,表示元素取实数,且有 $n$ 个元素,它的元素用对应的斜体小写字母加下标表示:$x_1$。一般我们将向量写成列向量的形式:

$$ 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

$$ \mathbf {C = A + b}, C_{i,j} = A_{i,j} + b_{j} $$

1.2 矩阵乘法

对于矩阵$A_{m \times n}$和矩阵$B_{n \times p}$,$A \times B = C$,其中$C$为$m \times p$的矩阵,其每一个元素,$$C_{ij}=\sum_{k=1}^{n}a_{ik} \times b_{kj}$$在numpy中使用dot运算符来进行数学上矩阵乘法运算,而普通的*运算则是$A,B$矩阵对应位置元素的乘积。

矩阵乘法性质

矩阵乘法满足结合律(associative)和分配律(distributive):

$$ \begin{align} \bf A(B+C)&=\bf AB+AC \\ \bf A(BC)&=\bf (AB)C \end{align} $$

矩阵乘法通常是不可交换的:

$$ \bf AB \neq BA $$

但是向量内积是可交换的:

$$ \bf x^\top y = y^\top x $$

矩阵乘法的转置形式如下:

$$ \bf (AB)^\top = B^\top A^\top $$

利用这个式子和标量转置等于其本身,我们马上得到内积是可交换的结论:

$$ \bf x^\top y = (x^\top y)^\top = y^\top x $$

1.3 单位矩阵和逆

单位矩阵

为了引入矩阵的逆,我们需要先定义单位矩阵:单位矩阵乘以任意一个向量等于这个向量本身。记 $\mathbf I_n$ 为保持 $n$ 维向量不变的单位矩阵,即:

$$ \mathbf I_n \in \mathbb R^{n\times n}, \forall \mathbf x \in \mathbb R^{n}, \mathbf I_n \mathbf{x=x} $$

单位矩阵的形式十分简单,所有的对角元素都为 $1$,其他元素都为 $0$,如:

$$ \mathbf I_3 \begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \\ \end{bmatrix} $$

矩阵的逆

矩阵 $\bf A$ 的逆记作 $\mathbf A^{-1}$,定义为一个矩阵使得

$$ \mathbf A^{-1} \mathbf A = \mathbf I_n $$

如果 $\mathbf A^{-1}$ 存在,那么线性方程组 $\bf Ax=b$ 的解为:

$$ \mathbf A^{-1}\mathbf{Ax} = \mathbf I_n \mathbf x = \mathbf x = \mathbf A^{-1}\mathbf b $$

1.4 向量和矩阵相乘

  • 向量右乘
    $\Bigg[v_1\ v_2\ v_3\Bigg]\begin{bmatrix}3\\4\\5\end{bmatrix}=3v_1+4v_2+5v_3$

向量$v_1,v_2,v_3$分别代表列向量,当$v_1,v_2,v_3$组成的矩阵右乘一个列向量,则相当于使用右边的列向量中的数值对$v_1,v_2,v_3$进行线性组合。

  • 向量左乘
    $\begin{bmatrix}1&2&7\end{bmatrix}\begin{bmatrix} row_1\\row_2\\row_3\end{bmatrix}=1row_1+2row_2+7row3$

向量$row_1,row_2,row_3$分别代表了行向量,当$row_1,row_2,row_3$组成的的矩阵左乘一个行向量,则相当于使用左边行向量中的数值对$row_1,row_2,row_3$进行线性组合。

1.5 置换矩阵

由1.2的向量和矩阵相乘后的分析,当若干个向量拼接在一起组成矩阵的时候,将会更多的向量的线性组合。$$\begin{bmatrix} a & b \\ c & d \end{bmatrix}\begin{bmatrix}0 & 1 \\ 1 & 0 \end{bmatrix}=\begin{bmatrix}b & a \\ d & c \end{bmatrix}$$

将矩阵乘法拆分如下:

$\begin{bmatrix} b \\ d \end{bmatrix} = \begin{bmatrix} a & b \\ c & d \end{bmatrix} \begin{bmatrix}0 \\ 1 \end{bmatrix}=0 \times \begin{bmatrix} a \\ c \end{bmatrix} + 1 \times \begin{bmatrix} b \\ d \end{bmatrix}$

$\begin{bmatrix} a \\ c \end{bmatrix} = \begin{bmatrix} a & b \\ c & d \end{bmatrix} \begin{bmatrix}1 \\ 0 \end{bmatrix}=1 \times \begin{bmatrix} a \\ c \end{bmatrix} + 0 \times \begin{bmatrix} b \\ d \end{bmatrix}$
其等价效果为交换矩阵的两列
同理,当左乘一个矩阵的时候 $$\begin{bmatrix} 0 & 1 \\ 1 & 0 \end{bmatrix}\begin{bmatrix}a & b \\ c & d \end{bmatrix}=\begin{bmatrix}c & d \\ a & b \end{bmatrix}$$
其等价效果为交换矩阵的两行

置换矩阵定义: 当一个矩阵的系数为0或者1的方阵,其每一行和每一列上恰好只有一个1,其余的为0,那么该矩阵则为置换矩阵。

1.6 消元矩阵

通过矩阵行之间的运算,使得矩阵达到精简的程度,比如: $$\begin{bmatrix}\underline{1}&2&1\\3&8&1\\0&4&1\end{bmatrix}\xrightarrow{row_2-3row_1}\begin{bmatrix}\underline{1}&2&1\\0&2&-2\\0&4&1\end{bmatrix} \xrightarrow{row_3-2row_1}\begin{bmatrix}\underline{1}&2&1\\0&\underline{2}&-2\\0&0&\underline{5}\end{bmatrix}$$

每一个行之间的运算可以看成矩阵右乘一个矩阵:
$row_2-3row_1 \Rightarrow E_{12}=\begin{bmatrix}1 & 0 & 0 \\ -3 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix}$

$row_3-2row_1 \Rightarrow E_{23}= \begin{bmatrix}1 & 0 & 0 \\ 0 & 1 & 0 \\ -2 & 0 & 1 \end{bmatrix}$
综上所述: $$E_{23}(E_{12}A)=(E_{23}E_{12})A=U$$,其中$U$为上三角矩阵,进一步来讲$$(E_{23}E_{12})A=U \Rightarrow A=(E_{23}E_{12})^{-1}U=LU$$ 这就是矩阵的LU分解,其中$L$为下三角矩阵。有时矩阵的主元pivot为零,那么就需要进行交换有关的行,即在矩阵A右乘一个置换矩阵P,则$PA=LU$

1.7 矩阵求逆

如果矩阵A为$n$阶方阵,那么$AA^{-1}=I$,称$A^{-1}$为逆矩阵,矩阵求逆的方法: $$[ A | I ] \Rightarrow [I | A^{-1}]$$ 在矩阵A的右边写上相同阶的单位阵,形成一个$n \times 2n$的矩阵,通过行变换,将左边矩阵A转换成单位矩阵的时候,矩阵右边的单位阵将会转换为A的逆。
证明 对于矩阵A而言,每一部行操作都会被右边的矩阵记录下来,当矩阵A转换成单位阵的时候,相当于左乘了一个$A^{-1}$,所以$$A^{-1}[A|I]=[A^{-1}A | A^{-1}I]=[I|A^{-1}]$$