矩阵及其运算

                     

贡献者: 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$。

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

   延伸阅读:指标与求和约定(这是矩阵的另一种表达方式)。

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. 矩阵的乘法

   矩阵最常见的运算是矩阵的乘法。矩阵乘法表示从 $(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}
可用矩阵与列矢量的乘法表示为(有时候也会用方括号表示矩阵和矢量)
\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{x}} = \begin{pmatrix}x_1& \dots& x_n\end{pmatrix} ^{\mathrm{T}} $, $ \boldsymbol{\mathbf{y}} = \begin{pmatrix}y_1&y_2& \dots& y_n\end{pmatrix} ^{\mathrm{T}} $,系数矩阵为 $ \boldsymbol{\mathbf{A}} $,上式可记为

\begin{equation} \boldsymbol{\mathbf{y}} = \boldsymbol{\mathbf{A}} \boldsymbol{\mathbf{x}} ~. \end{equation}
注意 $ \boldsymbol{\mathbf{A}} $ 的列数必须和 $ \boldsymbol{\mathbf{x}} $ 的行数相等。由此可以定义矩阵乘以列矢量的运算规则:$m \times n$ 矩阵乘以 $n \times 1$ 列矢量会得到 $m \times 1$ 的列矢量。要计算 $y_i$,就用 $m \times n$ 矩阵的第 $i$ 行的 $n$ 个数和 $x_1 \dots x_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}
可以将所有的 $ \boldsymbol{\mathbf{x}} _k$ 和 $ \boldsymbol{\mathbf{y}} _k$ 分别横向拼成 $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}
现在把 $l$ 组线性变换用一条式子表示为
\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} \boldsymbol{\mathbf{Y}} = \boldsymbol{\mathbf{A}} \boldsymbol{\mathbf{X}} ~. \end{equation}
矩阵元公式为
\begin{equation} Y_{ij} = \sum_{k = 1}^n A_{ik} X_{kj}~. \end{equation}
再次注意两个相乘的矩阵,左边矩阵的列数必须等于右边矩阵的行数。我们可以用图 2 来记忆矩阵乘法。

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

5. 矩阵乘法没有交换律

   请注意矩阵一般没有“乘法交换律”,即一般情况下 $ \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}

6. 矩阵的乘法分配律

   矩阵的乘法满足分配律

\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}
式 14 左边等于矩阵 $ \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}} $ 的矩阵元。证毕。式 15 的证明类似。

   现在我们可以得出线性变换(式 6 )的一个重要性质。对若干列矢量 $ \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}
也就是说若干列矢量的线性组合的线性变换等于每个列矢量分别进行线性变换再进行同样的线性组合。

7. 矩阵乘法的结合律

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

\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}
证毕。

8. 矩阵的等式性质

   若 $ \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}} ~.$

9. 单位矩阵

   单位矩阵(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}} $。

10. 对角矩阵

   对角元以外的矩阵元都为零的矩阵叫做对角矩阵(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$ 个对角元。另外,两个对角矩阵相乘就是把它们的对角元分别相乘。

11. 逆矩阵

   详见逆矩阵。记方阵 $ \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}} $ 本身。

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

\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}} $。

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

\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}


1. ^ 这个定理暂时不证


致读者: 小时百科一直以来坚持所有内容免费,这导致我们处于严重的亏损状态。 长此以往很可能会最终导致我们不得不选择大量广告以及内容付费等。 因此,我们请求广大读者热心打赏 ,使网站得以健康发展。 如果看到这条信息的每位读者能慷慨打赏 10 元,我们一个星期内就能脱离亏损, 并保证在接下来的一整年里向所有读者继续免费提供优质内容。 但遗憾的是只有不到 1% 的读者愿意捐款, 他们的付出帮助了 99% 的读者免费获取知识, 我们在此表示感谢。

                     

友情链接: 超理论坛 | ©小时科技 保留一切权利