Skip to main content

矩阵

参考资料

引入

矩阵(Matrix)是按 矩形阵列 排列的数表,记为 A=(aij)m×nA=(a_{ij})_{m\times n},表示 mmnn 列。

矩阵有两套互相补充的直觉,学线代要随时在两者间切换:

  • 数据表的视角:矩阵就是一张表格,每行是一个样本、每列是一个特征(或反之)。机器学习里的数据集、图像的像素网格、图的邻接矩阵都是这种用法。
  • 线性映射的视角:一个 m×nm\times n 矩阵代表一个把 nn 维向量变成 mm 维向量的 线性变换 xAx\vec x\mapsto A\vec x。矩阵的每一列,正是标准基向量 ej\vec e_j 被变换后落到的位置。

线性映射的视角更深刻,它解释了所有看似古怪的运算规则。比如矩阵乘法之所以那样定义,是因为它要对应 变换的复合

基本运算

加法与数乘

(A+B)ij=aij+bij,(kA)ij=kaij(A+B)_{ij}=a_{ij}+b_{ij},\qquad (kA)_{ij}=ka_{ij}

要求 A,BA,B 同型(行列数都相同)。加法和数乘都是 逐元素 进行的,满足交换律、结合律、分配律,规则和普通数的加法、数乘一致。

矩阵乘法

AAm×nm\times nBBn×pn\times p,则乘积 C=ABC=ABm×pm\times p,其中

cij=k=1naikbkjc_{ij}=\sum_{k=1}^{n}a_{ik}b_{kj}

即「CC 的第 ii 行第 jj 列 = AA 的第 ii 行与 BB 的第 jj 列对应相乘再相加」。

例:算 (1234)(5678)\begin{pmatrix}1&2\\3&4\end{pmatrix}\begin{pmatrix}5&6\\7&8\end{pmatrix}。左行配右列逐个点乘:

c11=15+27=19,c12=16+28=22,c21=35+47=43,c22=36+48=50\begin{aligned} c_{11}&=1\cdot5+2\cdot7=19, & c_{12}&=1\cdot6+2\cdot8=22,\\ c_{21}&=3\cdot5+4\cdot7=43, & c_{22}&=3\cdot6+4\cdot8=50 \end{aligned}

故乘积为 (19224350)\begin{pmatrix}19&22\\43&50\end{pmatrix}。若反过来算 (5678)(1234)=(23343146)\begin{pmatrix}5&6\\7&8\end{pmatrix}\begin{pmatrix}1&2\\3&4\end{pmatrix}=\begin{pmatrix}23&34\\31&46\end{pmatrix},结果完全不同,正印证乘法不交换。

例:行向量乘列向量得一个数(内积),(123)(456)=4+10+18=32\begin{pmatrix}1&2&3\end{pmatrix}\begin{pmatrix}4\\5\\6\end{pmatrix}=4+10+18=32;反过来列乘行得一个 33 阶矩阵 (456)(123)=(48125101561218)\begin{pmatrix}4\\5\\6\end{pmatrix}\begin{pmatrix}1&2&3\end{pmatrix}=\begin{pmatrix}4&8&12\\5&10&15\\6&12&18\end{pmatrix}。同样两个矩阵,乘的次序不同连形状都变了。

tip

为什么定义得这么「绕」?因为矩阵乘法对应 变换的复合:先做 BB 再做 AA,等于做一次 ABAB。即 A(Bx)=(AB)xA(B\vec x)=(AB)\vec x。复合变换的规则一旦展开,就长成上面这个求和式。理解了这一点,乘法就不是死记的公式了。

相乘的前提是「左列 = 右行」:左矩阵的列数必须等于右矩阵的行数,否则无法相乘。

乘法不满足交换律

一般情况下

ABBAAB\ne BA

几何直觉很清楚:变换的 次序 会影响结果。先旋转再投影,和先投影再旋转,得到的图形通常完全不同。所以矩阵乘法天然是「有先后」的,交换次序会变。

不过矩阵乘法仍然满足:

(AB)C=A(BC),A(B+C)=AB+AC,k(AB)=(kA)B=A(kB)(AB)C=A(BC),\qquad A(B+C)=AB+AC,\qquad k(AB)=(kA)B=A(kB)

结合律分配律 成立,只是 交换律 不成立。另外两个常见陷阱:AB=OAB=O 推不出 A=OA=OB=OB=OAB=ACAB=ACAOA\ne O 也推不出 B=CB=C(除非 AA 可逆)。

转置

(AT)ij=aji(A^T)_{ij}=a_{ji}

转置就是沿主对角线「翻折」,把行变成列。常用性质:

(A+B)T=AT+BT,(kA)T=kAT,(AT)T=A(A+B)^T=A^T+B^T,\qquad (kA)^T=kA^T,\qquad (A^T)^T=A (AB)T=BTAT(AB)^T=B^T A^T

注意乘积转置要 反序,和求逆 (AB)1=B1A1(AB)^{-1}=B^{-1}A^{-1} 的规律一致。

矩阵的幂

仅对 方阵 定义幂:Am=AAAmA^m=\underbrace{A\cdot A\cdots A}_{m},且约定 A0=EA^0=E。由结合律有 AmAk=Am+kA^mA^k=A^{m+k}(Am)k=Amk(A^m)^k=A^{mk}

但因为不交换,二项式定理一般不成立(A+B)2=A2+AB+BA+B2(A+B)^2=A^2+AB+BA+B^2,只有当 AB=BAAB=BA 时才能合并成 A2+2AB+B2A^2+2AB+B^2。求高次幂的实用办法是 相似对角化(详见 特征值与相似矩阵)。

特殊矩阵

名称定义
零矩阵 OO所有元素为 00
单位矩阵 EE(或 II对角线为 11,其余为 00,满足 AE=EA=AAE=EA=A
数量矩阵 kEkE对角线为 kk 的对角阵,左右乘相当于数乘 kk
对角矩阵非对角线元素全为 00,记 diag(d1,,dn)\operatorname{diag}(d_1,\dots,d_n)
上(下)三角矩阵主对角线下(上)方元素全为 00
对称矩阵AT=AA^T=A
反对称矩阵AT=AA^T=-A,对角线必为 00
正交矩阵ATA=AAT=EA^TA=AA^T=E,即 A1=ATA^{-1}=A^T
幂等矩阵A2=AA^2=A(对应投影变换)

单位矩阵是矩阵乘法的「11」:它对应「什么都不做」的恒等变换。对角矩阵对应「各坐标轴方向独立缩放」,是最简单的一类变换,后续对角化追求的就是把矩阵化到这种形态。

逆矩阵

定义

若存在矩阵 BB 使 AB=BA=EAB=BA=E,则称 AA 可逆(Invertible),BB 为其 逆矩阵(Inverse Matrix),记为 A1A^{-1}。逆矩阵若存在则唯一。

几何上,A1A^{-1} 就是把 AA 的变换「撤销」的那个变换。能撤销的前提是 AA 没有把空间压扁 —— 一旦压扁(信息丢失),就回不去了,这正对应 A=0|A|=0 不可逆。

可逆的充要条件

下列条件彼此等价(对 nn 阶方阵 AA):

A 可逆    A0    r(A)=n    Ax=0 只有零解A\ \text{可逆}\iff |A|\ne 0\iff r(A)=n\iff A\vec x=\vec 0\ \text{只有零解}

也等价于:AA 的列(行)向量 线性无关AA 可表示为若干 初等矩阵的乘积

伴随矩阵法

伴随矩阵(Adjugate Matrix)AA^* 由代数余子式 转置 排成:第 ii 行第 jj 列的元素是 AjiA_{ji}(注意下标颠倒)。它满足核心恒等式

AA=AA=AEAA^*=A^*A=|A|E

于是当 A0|A|\ne 0

A1=1AAA^{-1}=\frac{1}{|A|}A^*
tip

伴随矩阵法适合 二阶、三阶 的手算,尤其二阶有口诀:

(abcd)1=1adbc(dbca)\begin{pmatrix}a&b\\c&d\end{pmatrix}^{-1}=\frac{1}{ad-bc}\begin{pmatrix}d&-b\\-c&a\end{pmatrix}

「主对角线对调、副对角线变号,再除以行列式」。高阶时代数余子式太多,改用初等变换法。

例:用伴随矩阵法求 A=(123221343)A=\begin{pmatrix}1&2&3\\2&2&1\\3&4&3\end{pmatrix} 的逆。先算行列式:

A=1(2314)2(2313)+3(2423)=26+6=2|A|=1(2\cdot3-1\cdot4)-2(2\cdot3-1\cdot3)+3(2\cdot4-2\cdot3)=2-6+6=2

逐个算九个代数余子式 Aij=(1)i+jMijA_{ij}=(-1)^{i+j}M_{ij}(每个是划去第 ii 行第 jj 列后的二阶行列式):

A11=+2143=2,A12=2133=3,A13=+2234=2,A21=2343=6,A22=+1333=6,A23=1234=2,A31=+2321=4,A32=1321=5,A33=+1222=2\begin{aligned} A_{11}&=+\begin{vmatrix}2&1\\4&3\end{vmatrix}=2, & A_{12}&=-\begin{vmatrix}2&1\\3&3\end{vmatrix}=-3, & A_{13}&=+\begin{vmatrix}2&2\\3&4\end{vmatrix}=2,\\ A_{21}&=-\begin{vmatrix}2&3\\4&3\end{vmatrix}=6, & A_{22}&=+\begin{vmatrix}1&3\\3&3\end{vmatrix}=-6, & A_{23}&=-\begin{vmatrix}1&2\\3&4\end{vmatrix}=2,\\ A_{31}&=+\begin{vmatrix}2&3\\2&1\end{vmatrix}=-4, & A_{32}&=-\begin{vmatrix}1&3\\2&1\end{vmatrix}=5, & A_{33}&=+\begin{vmatrix}1&2\\2&2\end{vmatrix}=-2 \end{aligned}

伴随矩阵 AA^* 是代数余子式的 转置(第 ii 行第 jj 列放 AjiA_{ji}):

A=(A11A21A31A12A22A32A13A23A33)=(264365222)A^*=\begin{pmatrix}A_{11}&A_{21}&A_{31}\\A_{12}&A_{22}&A_{32}\\A_{13}&A_{23}&A_{33}\end{pmatrix}=\begin{pmatrix}2&6&-4\\-3&-6&5\\2&2&-2\end{pmatrix}

于是 A1=1AA=12(264365222)=(13232352111)A^{-1}=\dfrac{1}{|A|}A^*=\dfrac12\begin{pmatrix}2&6&-4\\-3&-6&5\\2&2&-2\end{pmatrix}=\begin{pmatrix}1&3&-2\\-\frac32&-3&\frac52\\1&1&-1\end{pmatrix}。可乘回 AA1=EAA^{-1}=E 验算。注意伴随矩阵的转置一步极易出错——代数余子式按 算出来,填进 AA^* 时要按 放。

初等变换法

AA 和单位阵并排写成 (AE)(A\,|\,E),对它做 初等行变换,当左边化成 EE 时,右边就是 A1A^{-1}

(AE)行变换(EA1)(A\,|\,E)\xrightarrow{\text{行变换}}(E\,|\,A^{-1})

原理:每次行变换相当于左乘一个初等矩阵,把 AA 化成 EE 的那串初等矩阵之积正好是 A1A^{-1},它们作用在 EE 上就得到 A1A^{-1}。这是高阶求逆的标准方法。

例:用初等行变换求 A=(123253108)A=\begin{pmatrix}1&2&3\\2&5&3\\1&0&8\end{pmatrix} 的逆。写出 (AE)(A\mid E),逐步把左半化成 EE

(123100253010108001)r22r1, r3r1(123100013210025101)\left(\begin{array}{ccc|ccc}1&2&3&1&0&0\\2&5&3&0&1&0\\1&0&8&0&0&1\end{array}\right) \xrightarrow{r_2-2r_1,\ r_3-r_1} \left(\begin{array}{ccc|ccc}1&2&3&1&0&0\\0&1&-3&-2&1&0\\0&-2&5&-1&0&1\end{array}\right)

用第 22 行消第 1133 行的第 22 列(r12r2r_1-2r_2r3+2r2r_3+2r_2):

r12r2, r3+2r2(109520013210001521)\xrightarrow{r_1-2r_2,\ r_3+2r_2} \left(\begin{array}{ccc|ccc}1&0&9&5&-2&0\\0&1&-3&-2&1&0\\0&0&-1&-5&2&1\end{array}\right)

把第 33 行乘 1-1 使主元为 11,再消第 1122 行的第 33 列(r19r3r_1-9r_3r2+3r3r_2+3r_3):

r3(109520013210001521)r19r3, r2+3r3(100401690101353001521)\xrightarrow{-r_3} \left(\begin{array}{ccc|ccc}1&0&9&5&-2&0\\0&1&-3&-2&1&0\\0&0&1&5&-2&-1\end{array}\right) \xrightarrow{r_1-9r_3,\ r_2+3r_3} \left(\begin{array}{ccc|ccc}1&0&0&-40&16&9\\0&1&0&13&-5&-3\\0&0&1&5&-2&-1\end{array}\right)

左半成了 EE,右半即 A1=(401691353521)A^{-1}=\begin{pmatrix}-40&16&9\\13&-5&-3\\5&-2&-1\end{pmatrix}。整个过程只用行变换,比算九个代数余子式利落得多。

运算性质

(A1)1=A,(kA)1=1kA1(k0)(A^{-1})^{-1}=A,\qquad (kA)^{-1}=\frac{1}{k}A^{-1}\,(k\ne 0) (AB)1=B1A1,(AT)1=(A1)T,A1=1A(AB)^{-1}=B^{-1}A^{-1},\qquad (A^T)^{-1}=(A^{-1})^T,\qquad |A^{-1}|=\frac{1}{|A|}

解矩阵方程

形如 AX=BAX=B 的矩阵方程,当 AA 可逆时两边 左乘 A1A^{-1}X=A1BX=A^{-1}B;若是 XA=BXA=B 则两边 右乘 A1A^{-1}X=BA1X=BA^{-1}。次序不能错——乘法不交换,左方程左乘、右方程右乘。

例:解 AX=BAX=B,其中 A=(2111)A=\begin{pmatrix}2&1\\1&1\end{pmatrix}B=(1325)B=\begin{pmatrix}1&3\\2&5\end{pmatrix}AA 可逆,A=1|A|=1,由二阶口诀 A1=(1112)A^{-1}=\begin{pmatrix}1&-1\\-1&2\end{pmatrix},于是

X=A1B=(1112)(1325)=(1237)X=A^{-1}B=\begin{pmatrix}1&-1\\-1&2\end{pmatrix}\begin{pmatrix}1&3\\2&5\end{pmatrix}=\begin{pmatrix}-1&-2\\3&7\end{pmatrix}

更省事的办法是把 A1A^{-1}BB 一并算掉:对 (AB)(A\mid B) 做初等行变换,左半化成 EE 时右半就是 X=A1BX=A^{-1}B,免去单独求逆。验算 AX=(2111)(1237)=(1325)=BAX=\begin{pmatrix}2&1\\1&1\end{pmatrix}\begin{pmatrix}-1&-2\\3&7\end{pmatrix}=\begin{pmatrix}1&3\\2&5\end{pmatrix}=B,正确。

初等变换与初等矩阵

三种初等行(列)变换

  1. 交换两行(列):rirjr_i\leftrightarrow r_j
  2. 某行(列)乘非零常数:krikr_ik0k\ne 0)。
  3. 某行(列)加另一行(列)的 kk 倍:ri+krjr_i+kr_j

初等矩阵

对单位矩阵 EE一次 初等变换得到的矩阵,称为 初等矩阵(Elementary Matrix)。关键规律:

  • AA 做一次 行变换 == 用对应的初等矩阵 左乘 AA
  • AA 做一次 列变换 == 用对应的初等矩阵 右乘 AA

初等矩阵都可逆,其逆仍是同类型的初等矩阵。「AA 可逆」等价于「AA 是有限个初等矩阵之积」,这把求逆、解方程、求秩统一到了同一套行变换工具上。

例:取 A=(abcd)A=\begin{pmatrix}a&b\\c&d\end{pmatrix},用初等矩阵直观看「左乘动行、右乘动列」。把交换行的初等矩阵 P=(0110)P=\begin{pmatrix}0&1\\1&0\end{pmatrix}(由 EE 交换两行得到)左乘 AA

PA=(0110)(abcd)=(cdab)PA=\begin{pmatrix}0&1\\1&0\end{pmatrix}\begin{pmatrix}a&b\\c&d\end{pmatrix}=\begin{pmatrix}c&d\\a&b\end{pmatrix}

正是把 AA 的两 对调。同一个 PP 改成 右乘

AP=(abcd)(0110)=(badc)AP=\begin{pmatrix}a&b\\c&d\end{pmatrix}\begin{pmatrix}0&1\\1&0\end{pmatrix}=\begin{pmatrix}b&a\\d&c\end{pmatrix}

变成把两 对调。再看「第 22 行加第 11kk 倍」的初等矩阵 (10k1)\begin{pmatrix}1&0\\k&1\end{pmatrix} 左乘 AA(abc+kad+kb)\begin{pmatrix}a&b\\c+ka&d+kb\end{pmatrix},恰好是行变换 r2+kr1r_2+kr_1。「行变换 == 左乘、列变换 == 右乘」这条规律就此一目了然。

行阶梯形与行最简形

  • 行阶梯形(Row Echelon Form):每个非零行的首非零元(主元,Pivot)所在列号比上一行严格靠右,全零行都在底部。
  • 行最简形(Reduced Row Echelon Form,RREF):在行阶梯形基础上,每个主元为 11,且主元所在列的其他元素全为 00

任何矩阵都可经初等行变换化为 唯一 的行最简形。它是求秩、解方程组、判断线性相关性的公共工具。

等价标准形

AA 同时做行、列变换,总能化成左上角是单位块、其余为零的 等价标准形

A(ErOOO),r=r(A)A\to\begin{pmatrix}E_r&O\\O&O\end{pmatrix},\qquad r=r(A)

这说明任意 m×nm\times n 矩阵在「行列变换等价」下完全由它的 rr 决定。

矩阵的秩

定义

矩阵 AA(Rank)r(A)r(A) 有几种等价说法,它们指的是同一个数:

  • AA 化成行阶梯形后 非零行的个数
  • AA最高阶非零子式 的阶数;
  • AA 的列(行)向量组的 极大无关组 所含向量个数。

秩的本质是:变换 AA像空间的维数,也就是「这堆向量真正张成了几维」。秩越小,空间被压得越扁。

求法

AA 用初等行变换化成行阶梯形,数非零行的个数即可。初等变换 不改变秩,这是求秩的标准做法。

例:求 A=(123424681357)A=\begin{pmatrix}1&2&3&4\\2&4&6&8\\1&3&5&7\end{pmatrix} 的秩。化行阶梯形:

r22r1, r3r1(123400000123)r2r3(123401230000)\xrightarrow{r_2-2r_1,\ r_3-r_1} \begin{pmatrix}1&2&3&4\\0&0&0&0\\0&1&2&3\end{pmatrix} \xrightarrow{r_2\leftrightarrow r_3} \begin{pmatrix}1&2&3&4\\0&1&2&3\\0&0&0&0\end{pmatrix}

22 行恰好是第 11 行的两倍,消成了全零行;非零行有 22 个,故 r(A)=2r(A)=2。它说明这三行里只有两行「真正独立」,第二行是多余的。

常用性质

0r(A)min(m,n)0\le r(A)\le\min(m,n) r(AT)=r(A),r(kA)=r(A)(k0)r(A^T)=r(A),\qquad r(kA)=r(A)\,(k\ne 0) r(A+B)r(A)+r(B),r(AB)min(r(A),r(B))r(A+B)\le r(A)+r(B),\qquad r(AB)\le\min\big(r(A),r(B)\big)

可逆矩阵不改变秩:P,QP,Q 可逆时 r(PAQ)=r(A)r(PAQ)=r(A)。另有西尔维斯特不等式 r(A)+r(B)nr(AB)r(A)+r(B)-n\le r(AB)AAm×nm\times nBBn×pn\times p)。

满秩

  • 行满秩r(A)=mr(A)=m(行向量线性无关)。
  • 列满秩r(A)=nr(A)=n(列向量线性无关)。
  • 方阵 AA 满秩r(A)=nr(A)=n    A0    A\iff |A|\ne 0\iff A 可逆。

分块矩阵

把矩阵划分为若干 子块,就能把整块子矩阵当成「元素」来运算(前提是分块方式相容,能对上行列数)。分块是处理大矩阵、推导结构性结论的利器。

分块运算

加法、数乘逐块进行;乘法在「相邻块行列数对得上」时也逐块进行,规则与普通矩阵乘法一致,只是元素换成了子块(注意子块乘法不可交换次序)。

常见结论

分块对角阵的逆,逐块求逆即可:

(A1OOA2)1=(A11OOA21)\begin{pmatrix}A_1&O\\O&A_2\end{pmatrix}^{-1}=\begin{pmatrix}A_1^{-1}&O\\O&A_2^{-1}\end{pmatrix}

例:求 M=(200012034)M=\begin{pmatrix}2&0&0\\0&1&2\\0&3&4\end{pmatrix} 的逆。它是分块对角阵 (A1OOA2)\begin{pmatrix}A_1&O\\O&A_2\end{pmatrix},其中 A1=(2)A_1=(2)A2=(1234)A_2=\begin{pmatrix}1&2\\3&4\end{pmatrix}。逐块求逆:A11=(12)A_1^{-1}=(\frac12)A21=11423(4231)=12(4231)=(213212)A_2^{-1}=\frac{1}{1\cdot4-2\cdot3}\begin{pmatrix}4&-2\\-3&1\end{pmatrix}=-\frac12\begin{pmatrix}4&-2\\-3&1\end{pmatrix}=\begin{pmatrix}-2&1\\\frac32&-\frac12\end{pmatrix},拼回去:

M1=(120002103212)M^{-1}=\begin{pmatrix}\frac12&0&0\\0&-2&1\\0&\frac32&-\frac12\end{pmatrix}

大矩阵拆成小块各自处理,省去整体求逆。

分块三角阵的行列式,等于对角块行列式之积:

AOCB=ACOB=AB\begin{vmatrix}A&O\\C&B\end{vmatrix}=\begin{vmatrix}A&C\\O&B\end{vmatrix}=|A|\cdot|B|

副对角分块还会带定向因子:

OABO=(1)mnAB\begin{vmatrix}O&A\\B&O\end{vmatrix}=(-1)^{mn}|A|\cdot|B|

其中 AAmm 阶、BBnn 阶方阵。

例:算 1200340056217812\begin{vmatrix}1&2&0&0\\3&4&0&0\\5&6&2&1\\7&8&1&2\end{vmatrix}。它是分块下三角 AOCB\begin{vmatrix}A&O\\C&B\end{vmatrix},对角块 A=(1234)A=\begin{pmatrix}1&2\\3&4\end{pmatrix}B=(2112)B=\begin{pmatrix}2&1\\1&2\end{pmatrix},行列式等于对角块之积:

AB=(1423)(2211)=(2)(3)=6|A|\cdot|B|=(1\cdot4-2\cdot3)(2\cdot2-1\cdot1)=(-2)(3)=-6

左下角的 C=(5678)C=\begin{pmatrix}5&6\\7&8\end{pmatrix} 完全不影响结果——分块三角阵的行列式只看对角块。