矩阵及其运算

                     

贡献者: addis; Giacomo; JierPeter; ACertainUser; .@

预备知识 列向量

   小时百科中矩阵符号用加粗的正体字母来表示,而对应的矩阵元一般用正常斜体加行标列标表示。例如矩阵 $ \boldsymbol{\mathbf{A}} $ 的第 $i$ 行第 $j$ 列的的矩阵元表示为 $A_{ij}$。特殊地,行数等于列数的矩阵叫做方矩阵或者方阵。只有一行的矩阵和只有一列的矩阵分别叫做行向量列向量

1. 矩阵的概念

   矩阵本身,是将元素按矩形排列所得到的结构。取 $n$ 行和 $m$ 列,得到 $nm$ 个空位,每个空位都有对应的行数和列数,在这些空位里填入元素,即为元素的矩形排列。被填入的元素,即被称为矩阵的矩阵元素(entry),简称矩阵元。如

\begin{equation} \begin{pmatrix} 1&2&3\\ 4&5&6 \end{pmatrix}~ \end{equation}
就是一个由数字作为矩阵元的矩阵,其第二行第一列的元素为 $4$。有一些文献也会用方括号表示矩阵(和向量)如
\begin{equation} \begin{bmatrix} 1&2&3\\ 4&5&6 \end{bmatrix}~. \end{equation}

   矩阵概念最早出现于线性方程组中,因此其概念不可避免地涉及矩阵元素之间相乘、相加的运算,即矩阵乘法,见本文子节 7 。事实上,矩阵的威力正来自矩阵的乘法运算,因此即便某个矩阵的元素不是数字,我们也希望这些元素能拿有乘法、加法等运算。目前,我们先默认矩阵的元素都是数字。1

2. 矩阵的对角线

   我们先定义矩阵的对角线(diagonal)是行标等于列标的所有矩阵元(图 1 ),称为对角元(diagonal element),左上角的对角元是第一个。对角线的概念常在讨论方阵时使用,但严格来说也适用于长方形矩阵。方阵从右上角到左下角的所有矩阵元则称为反对角线(anti-diagonal)。另外,把对角线向上或向下平移一个元素也称为副对角线(subdiagonal),所以对角线也称为主对角线(main diagonal)

图
图 1:左:方阵的对角线(实线)和副对角线(虚线),右:方阵的反对角线

3. 矩阵的转置

   则任意矩阵 $ \boldsymbol{\mathbf{A}} $ 的转置(transpose)记为 $ \boldsymbol{\mathbf{A}} ^{\mathrm{T}} $。转置操作把 $ \boldsymbol{\mathbf{A}} $ 的第 $i$ 行变为 $ \boldsymbol{\mathbf{A}} ^{\mathrm{T}} $ 的第 $i$ 列,相当于把矩阵沿对角线翻转。即任意矩阵元满足

\begin{equation} A ^{\mathrm{T}} _{ij} = A_{ji}~, \end{equation}
注意转置操作不影响对角线上的矩阵元。另外行向量转置后变为列向量,反之亦然。
\begin{equation} \begin{pmatrix}x_1& x_2& \dots& x_n\end{pmatrix} ^{\mathrm{T}} = \begin{pmatrix} x_1\\x_2\\ \vdots\\x_n \end{pmatrix}~. \end{equation}
为了排版方便,小时百科在正文中通常用 $ \begin{pmatrix}x_1 &x_2& \dots& x_n\end{pmatrix} ^{\mathrm{T}} $ 表示列向量。

4. 零矩阵、单位矩阵

   零矩阵(unit matrix)是所有矩阵元都为 $0$ 的矩阵。

   单位矩阵(unit matrix)是对角线上的元素全为 1,非对角线上的元素全为 0 的方阵。通常记为通常记为 $ \boldsymbol{\mathbf{I}} $。为了强调矩阵的维数 $N$,也可记为 $ \boldsymbol{\mathbf{I}} _N$。单位矩阵的矩阵元可用克罗内克 $\delta$ 函数(式 6 )表示为

\begin{equation} I_{ij} = \delta_{ij}~. \end{equation}

   任何矩阵左乘或右乘单位矩阵,仍然得到矩阵本身 $ \boldsymbol{\mathbf{I}} \boldsymbol{\mathbf{A}} = \boldsymbol{\mathbf{A}} \boldsymbol{\mathbf{I}} = \boldsymbol{\mathbf{A}} $。

   单位矩阵的转置仍为单位矩阵 $ \boldsymbol{\mathbf{I}} ^T = \boldsymbol{\mathbf{I}} $。

5. 对角矩阵

   对角元以外的矩阵元都为零的矩阵叫做对角矩阵(diagonal matrix)(对角元也可以部分为零),相应的也有反对角矩阵(anti-diagonal matrix)。对角矩阵和反对角矩阵通常是指方阵。

   根据下面矩阵乘法的定义,对角矩阵 $ \boldsymbol{\mathbf{\Lambda}} $ 左乘任意矩阵 $ \boldsymbol{\mathbf{A}} $(即 $ \boldsymbol{\mathbf{\Lambda}} \boldsymbol{\mathbf{A}} $)相当于把 $ \boldsymbol{\mathbf{A}} $ 阵的第 $i$ 行乘以 $ \boldsymbol{\mathbf{\Lambda}} $ 的第 $i$ 个对角元;右乘(即 $ \boldsymbol{\mathbf{A}} \boldsymbol{\mathbf{\Lambda}} $)相当于把第 $j$ 列乘以第 $j$ 个对角元。另外,两个对角矩阵相乘就是把它们的对角元分别相乘。

6. 矩阵和列向量的乘法

   矩阵 $ \boldsymbol{\mathbf{A}} $ 乘以列向量 $ \boldsymbol{\mathbf{x}} $ 表示从 $(x_1, \dots, x_n) \in \mathbb R^n$ 到 $(y_1, \dots, y_m) \in \mathbb R^m$ 的线性映射

\begin{equation} \left\{\begin{aligned} y_1 &= A_{11}x_1 + A_{12}x_2 + \ldots + A_{1n}x_n\\ y_2 &= A_{21}x_1 + A_{22}x_2 + \ldots + A_{2n}x_n\\ &\;\;\vdots \\ y_m &= A_{m1}x_1 + A_{m2}x_2 + \ldots + A_{mn}x_n~. \end{aligned}\right. \end{equation}
令列向量 $ \boldsymbol{\mathbf{x}} = \begin{pmatrix}x_1& \dots& x_n\end{pmatrix} ^{\mathrm{T}} $, $ \boldsymbol{\mathbf{y}} = \begin{pmatrix}y_1&y_2& \dots& y_m\end{pmatrix} ^{\mathrm{T}} $,系数矩阵为 $ \boldsymbol{\mathbf{A}} $,上式可用矩阵与列向量的乘法表示为
\begin{equation} \boldsymbol{\mathbf{y}} = \boldsymbol{\mathbf{A}} \boldsymbol{\mathbf{x}} ~. \end{equation}
或者具体来说,就是
\begin{equation} \begin{pmatrix} y_1 \\ y_2\\ \vdots \\ y_m \end{pmatrix} = \begin{pmatrix} A_{11} & A_{12} & \ldots & A_{1n} \\ A_{21} & A_{22} & \ldots & A_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ A_{m1} & A_{m2} & \ldots & A_{mn} \end{pmatrix} \begin{pmatrix} x_1 \\ x_2 \\ \vdots \\ x_n \end{pmatrix}~. \end{equation}

   注意 $ \boldsymbol{\mathbf{A}} $ 的列数必须和 $ \boldsymbol{\mathbf{x}} $ 的行数相等。由此可以定义矩阵乘以列向量的运算规则:$m \times n$ 矩阵乘以 $n \times 1$ 列向量会得到 $m \times 1$ 的列向量。要计算 $y_i$,就用 $x_1 \dots x_n$ 与 $m \times n$ 矩阵的第 $i$ 行的 $n$ 个数分别相乘再相加(即内积

\begin{equation} y_i = \sum_{j = 1}^n A_{ij} x_j ~. \end{equation}

   若有 $l$ 个不同的 $ \boldsymbol{\mathbf{x}} $ 和 $ \boldsymbol{\mathbf{y}} $,第 $k$ 个记为 $ \boldsymbol{\mathbf{x}} _k = \begin{pmatrix}x_{1k}&\dots& x_{nk}\end{pmatrix} ^{\mathrm{T}} $ 和 $ \boldsymbol{\mathbf{y}} _k = \begin{pmatrix}y_{1k}&\dots& y_{mk}\end{pmatrix} ^{\mathrm{T}} $,对应的变换为

\begin{equation} \begin{pmatrix} y_{1k} \\ y_{2k}\\ \vdots \\ y_{mk} \end{pmatrix} = \begin{pmatrix} A_{11} & A_{12} & \ldots & A_{1n} \\ A_{21} & A_{22} & \ldots & A_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ A_{m1} & A_{m2} & \ldots & A_{mn} \end{pmatrix} \begin{pmatrix} x_{1k} \\ x_{2k} \\ \vdots \\ x_{nk} \end{pmatrix}~. \end{equation}

7. 矩阵的乘法

图
图 2:矩阵乘法的示意图:$ \boldsymbol{\mathbf{C}} $ 的 $(i, j)$ 矩阵元等于 $ \boldsymbol{\mathbf{A}} $ 的第 $i$ 行和 $ \boldsymbol{\mathbf{B}} $ 的第 $j$ 列逐个元素相乘再相加

   矩阵最常见的运算是矩阵的乘法。事实上,上面的 “矩阵乘以列向量” 就是矩阵乘法的一种特殊情况。如果我们分别把同一矩阵乘以多个列向量

\begin{equation} \boldsymbol{\mathbf{y}} _i = \boldsymbol{\mathbf{A}} \boldsymbol{\mathbf{x}} _i \qquad (i=1,\dots, l)~, \end{equation}
那么把所有列向量 $ \boldsymbol{\mathbf{y}} _i$ 从左到右排列得到矩阵 $ \boldsymbol{\mathbf{Y}} $,把所有 $ \boldsymbol{\mathbf{y}} _i$ 从左到右排列得到 $ \boldsymbol{\mathbf{X}} $,就得到了矩阵乘法的一般定义
\begin{equation} \boldsymbol{\mathbf{Y}} = \boldsymbol{\mathbf{A}} \boldsymbol{\mathbf{X}} ~. \end{equation}
其中 $ \boldsymbol{\mathbf{X}} $,$ \boldsymbol{\mathbf{Y}} $ 分别为 $n \times l$ 和 $m \times l$ 的矩阵
\begin{equation} \boldsymbol{\mathbf{X}} = \begin{pmatrix} x_{11} & \cdots & x_{1l} \\ \vdots & \ddots & \vdots \\ x_{n1} & \cdots & x_{nl} \end{pmatrix}~, \qquad \boldsymbol{\mathbf{Y}} = \begin{pmatrix} y_{11} & \cdots & y_{1l} \\ \vdots & \ddots & \vdots \\ y_{m1} & \cdots & y_{ml} \end{pmatrix}~. \end{equation}
式 12 可以详细写为
\begin{equation} \begin{pmatrix} y_{11} & \cdots & y_{1l} \\ \vdots & \ddots & \vdots \\ y_{m1} & \cdots & y_{ml} \end{pmatrix} = \begin{pmatrix} A_{11} & \cdots & A_{1n} \\ \vdots & \ddots & \vdots \\ A_{m1} & \cdots & A_{mn} \end{pmatrix} \begin{pmatrix} x_{11} & \cdots & x_{1l} \\ \vdots & \ddots & \vdots \\ x_{n1} & \cdots & x_{nl} \end{pmatrix}~. \end{equation}
由此,可以定义一般的矩阵乘法:$m \times n$ 的矩阵 $ \boldsymbol{\mathbf{A}} $ 和 $n \times l$ 的矩阵 $ \boldsymbol{\mathbf{X}} $ 相乘得到 $m \times l$ 的矩阵 $ \boldsymbol{\mathbf{Y}} $, $Y_{ij}$ 等于 $ \boldsymbol{\mathbf{A}} $ 的第 $i$ 行和 $ \boldsymbol{\mathbf{X}} $ 的第 $j$ 列内积。

   计算矩阵的乘法的公式为

\begin{equation} Y_{ij} = \sum_{k = 1}^n A_{ik} X_{kj}~. \end{equation}
再次注意两个相乘的矩阵,左边矩阵的列数必须等于右边矩阵的行数。我们可以用图 2 来记忆矩阵乘法。

矩阵乘法不满足交换律

   请注意矩阵一般不满足 “乘法交换律”,即一般情况下 $ \boldsymbol{\mathbf{A}} \boldsymbol{\mathbf{B}} \ne \boldsymbol{\mathbf{B}} \boldsymbol{\mathbf{A}} $。举一个例子:

\begin{equation} \begin{pmatrix}1 & 1\\ 0 & 0\end{pmatrix} \begin{pmatrix}1 & 0\\ 1 & 0\end{pmatrix} = \begin{pmatrix}2 & 0\\ 0 & 0\end{pmatrix} \ne \begin{pmatrix}1 & 1\\ 1 & 1\end{pmatrix} = \begin{pmatrix}1 & 0\\ 1 & 0\end{pmatrix} \begin{pmatrix}1 & 1\\ 0 & 0\end{pmatrix} ~. \end{equation}
但我们有时候也可以找到满足交换律的两个矩阵,我们就说这样两个矩阵对易(commute)

8. 矩阵的乘法分配律

   矩阵的乘法满足分配律

\begin{equation} \boldsymbol{\mathbf{A}} ( \boldsymbol{\mathbf{B}} + \boldsymbol{\mathbf{C}} ) = \boldsymbol{\mathbf{A}} \boldsymbol{\mathbf{B}} + \boldsymbol{\mathbf{A}} \boldsymbol{\mathbf{C}} ~, \end{equation}
\begin{equation} ( \boldsymbol{\mathbf{A}} + \boldsymbol{\mathbf{B}} ) \boldsymbol{\mathbf{C}} = \boldsymbol{\mathbf{A}} \boldsymbol{\mathbf{C}} + \boldsymbol{\mathbf{B}} \boldsymbol{\mathbf{C}} ~. \end{equation}
式 17 左边等于矩阵 $ \boldsymbol{\mathbf{D}} $,则其矩阵元为
\begin{equation} D_{ij} = \sum_k A_{ik} (B_{kj} + C_{kj})~, \end{equation}
拆括号得
\begin{equation} D_{ij} = \sum_k A_{ik}B_{kj} + \sum_k A_{ik}C_{kj}~. \end{equation}
而这恰好是 $ \boldsymbol{\mathbf{A}} \boldsymbol{\mathbf{B}} + \boldsymbol{\mathbf{A}} \boldsymbol{\mathbf{C}} $ 的矩阵元。证毕。式 18 的证明类似。

   现在我们可以得出线性变换(式 7 )的一个重要性质。对若干列向量 $ \boldsymbol{\mathbf{v}} _1, \boldsymbol{\mathbf{v}} _2, \dots$

\begin{equation} \boldsymbol{\mathbf{A}} \left(\sum_i c_i \boldsymbol{\mathbf{v}} _i \right) = \sum_i c_i \boldsymbol{\mathbf{A}} \boldsymbol{\mathbf{v}} _i~. \end{equation}
也就是说若干列向量的线性组合的线性变换等于每个列向量分别进行线性变换再进行同样的线性组合。

9. 矩阵乘法的结合律

   我们希望证明三个矩阵的乘法满足结合律

\begin{equation} \boldsymbol{\mathbf{A}} ( \boldsymbol{\mathbf{B}} \boldsymbol{\mathbf{C}} ) = ( \boldsymbol{\mathbf{A}} \boldsymbol{\mathbf{B}} ) \boldsymbol{\mathbf{C}} ~. \end{equation}
\begin{equation} \boldsymbol{\mathbf{D}} = \boldsymbol{\mathbf{A}} ( \boldsymbol{\mathbf{B}} \boldsymbol{\mathbf{C}} )~. \end{equation}
$ \boldsymbol{\mathbf{D}} $ 的矩阵元为
\begin{equation} D_{ij} = \sum_l A_{il} (BC)_{lj} = \sum_l A_{il} \left(\sum_k B_{lk} C_{kj} \right) ~, \end{equation}
拆括号得
\begin{equation} D_{ij} = \sum_k\sum_l ( A_{il} B_{lk} C_{kj} )~. \end{equation}
对 $C_{kj}$ 进行合并同类项,得
\begin{equation} D_{ij} = \sum_k \left(\sum_l A_{il} B_{lk} \right) C_{kj} ~. \end{equation}
括号中恰好是 $ \boldsymbol{\mathbf{A}} $ 乘以 $ \boldsymbol{\mathbf{B}} $ 所得矩阵的矩阵元 $(AB)_{ik}$ 所以
\begin{equation} D_{ij} = \sum_k (AB)_{ik} C_{kj}~. \end{equation}
\begin{equation} \boldsymbol{\mathbf{D}} = ( \boldsymbol{\mathbf{A}} \boldsymbol{\mathbf{B}} ) \boldsymbol{\mathbf{C}} ~, \end{equation}
证毕。

10. 逆矩阵

   详见逆矩阵。记方阵 $ \boldsymbol{\mathbf{M}} $ 的逆矩阵为 $ \boldsymbol{\mathbf{M}} ^{-1}$,且满足

\begin{equation} \boldsymbol{\mathbf{M}} ^{-1} \boldsymbol{\mathbf{M}} = \boldsymbol{\mathbf{I}} ~. \end{equation}
其中 $ \boldsymbol{\mathbf{I}} $ 是单位矩阵。也就是说,任意一个矩阵(或列向量)$ \boldsymbol{\mathbf{A}} $ 乘以矩阵 $ \boldsymbol{\mathbf{M}} $ 再乘以其逆矩阵 $ \boldsymbol{\mathbf{M}} ^{-1}$ 仍然得到 $ \boldsymbol{\mathbf{A}} $ 本身。

   虽然矩阵乘法一般不满足交换律,但矩阵和对应的逆矩阵满足2,即

\begin{equation} \boldsymbol{\mathbf{M}} \boldsymbol{\mathbf{M}} ^{-1} = \boldsymbol{\mathbf{M}} ^{-1} \boldsymbol{\mathbf{M}} = \boldsymbol{\mathbf{I}} ~. \end{equation}

   逆矩阵 $ \boldsymbol{\mathbf{M}} ^{-1}$ 所代表的线性变换就是 $ \boldsymbol{\mathbf{M}} $ 代表的线性变换的逆变换,令 $ \boldsymbol{\mathbf{x}} $ 和 $ \boldsymbol{\mathbf{y}} $ 为列向量,如果有

\begin{equation} \boldsymbol{\mathbf{y}} = \boldsymbol{\mathbf{M}} \boldsymbol{\mathbf{x}} ~. \end{equation}
那么我们在等式两边左乘 $ \boldsymbol{\mathbf{M}} ^{-1}$ 再把等式左右互换,则上式变为
\begin{equation} \boldsymbol{\mathbf{x}} = \boldsymbol{\mathbf{M}} ^{-1} \boldsymbol{\mathbf{y}} ~. \end{equation}

   要求逆矩阵,一种简单直接但低效的方法就是先令 $ \boldsymbol{\mathbf{y}} = (1\ 0\ \dots) ^{\mathrm{T}} $,代入式 3 解线性方程组得 $ \boldsymbol{\mathbf{x}} $,将 $ \boldsymbol{\mathbf{x}} , \boldsymbol{\mathbf{y}} $ 代入式 4 可知 $ \boldsymbol{\mathbf{x}} $ 就是 $ \boldsymbol{\mathbf{M}} $ 的第一列,再令 $ \boldsymbol{\mathbf{y}} = (0\ 1\ 0\ \dots) ^{\mathrm{T}} $,解线性方程组可得 $ \boldsymbol{\mathbf{M}} $ 的第二列,以此类推就可以得到完整的 $ \boldsymbol{\mathbf{M}} $。

11. 逆矩阵与转置矩阵的运算律

\begin{equation} \boldsymbol{\mathbf{(}} \boldsymbol{\mathbf{A}} \boldsymbol{\mathbf{B}} )^{-1}= \boldsymbol{\mathbf{B}} ^{-1} \boldsymbol{\mathbf{A}} ^{-1}~, \end{equation}
\begin{equation} ( \boldsymbol{\mathbf{A}} \boldsymbol{\mathbf{B}} ) ^{\mathrm{T}} = \boldsymbol{\mathbf{B}} ^{\mathrm{T}} \boldsymbol{\mathbf{A}} ^{\mathrm{T}} ~. \end{equation}

   证明留作习题。

12. 矩阵的等式性质

   若 $ \boldsymbol{\mathbf{A}} = \boldsymbol{\mathbf{B}} $,那么 $ \boldsymbol{\mathbf{A}} \boldsymbol{\mathbf{C}} = \boldsymbol{\mathbf{B}} \boldsymbol{\mathbf{C}} $,或 $ \boldsymbol{\mathbf{C}} \boldsymbol{\mathbf{A}} = \boldsymbol{\mathbf{C}} \boldsymbol{\mathbf{B}} ~.$

   但是除非 $ \boldsymbol{\mathbf{C}} $ 可逆,否则该结论反之不成立。$ \boldsymbol{\mathbf{A}} \boldsymbol{\mathbf{C}} = \boldsymbol{\mathbf{B}} \boldsymbol{\mathbf{C}} $ 推不出 $ \boldsymbol{\mathbf{A}} = \boldsymbol{\mathbf{B}} ~.$

   推论:若 $ \boldsymbol{\mathbf{A}} \boldsymbol{\mathbf{B}} = \boldsymbol{\mathbf{O}} $ (零矩阵),也不能推出 $ \boldsymbol{\mathbf{A}} = \boldsymbol{\mathbf{O}} $ 或 $ \boldsymbol{\mathbf{B}} = \boldsymbol{\mathbf{O}} ~.$


1. ^ 延伸阅读:指标与求和约定(这是矩阵的另一种表达方式)。
2. ^ 这个定理暂时不证

                     

© 小时科技 保留一切权利