【线性代数】 04 - 矩阵
1. 矩阵和秩
1.1 矩阵的定义
前面我们在不定义的情况下,一直在使用着矩阵,那些场合中矩阵仅仅是一些数的纵横排列,它只有符号的意义,而没有代数的性质。在继续讨论之前,先严格定义一下\(n\times m\)阶矩阵(matrix):它由\(nm\)个环元素排成\(n\)行\(m\)列(式(1)),并用方括号括起来,一般用大写字母表示,\(n\times n\)阶矩阵又称\(n\)阶方阵。矩阵元素的取值空间可以为一般环,也可以是域,这里默认是在域中讨论,环矩阵以后专门介绍。
\[A_{n\times m}=\begin{bmatrix}a_{11}&a_{12}&\cdots&a_{1m}\\a_{21}&a_{22}&\cdots&a_{2m}\\\vdots&\vdots&\ddots&\vdots\\a_{n1}&a_{n2}&\cdots&a_{nm}\end{bmatrix}\tag{1}\]
矩阵既可以看成是一个纵横排列的结构,也可以把它当成是由\(nm\)个孤立的元素组成。这时矩阵就是一个\(nm\)维的向量,按如下方法定义加法和数乘运算,显然所有\(n\times m\)阶矩阵组成一个\(nm\)维的线性空间,一般记作\(M_{n\times m}(R)\),方阵也可记作\(M_n(R)\)。
\[\begin{bmatrix}a_{11}&\cdots&a_{1m}\\\vdots&\ddots&\vdots\\a_{n1}&\cdots&a_{nm}\end{bmatrix}+\begin{bmatrix}b_{11}&\cdots&b_{1m}\\\vdots&\ddots&\vdots\\b_{n1}&\cdots&b_{nm}\end{bmatrix}=\begin{bmatrix}a_{11}+b_{11}&\cdots&a_{1m}+b_{1m}\\\vdots&\ddots&\vdots\\a_{n1}+b_{n1}&\cdots&a_{nm}+b_{nm}\end{bmatrix}\tag{2}\]
\[k\begin{bmatrix}a_{11}&\cdots&a_{1m}\\\vdots&\ddots&\vdots\\a_{n1}&\cdots&a_{nm}\end{bmatrix}=\begin{bmatrix}ka_{11}&\cdots&ka_{1m}\\\vdots&\ddots&\vdots\\ka_{n1}&\cdots&ka_{nm}\end{bmatrix}\tag{3}\]
方阵中\(a_{ii}\)称为主对角元,仅主对角元非零的矩阵称为对角矩阵,记作\(\text{diag}\{d_1,d_2,\cdots,d_n\}\),其中\(\text{diag}\{1,1,\cdots,1\}\)也叫单位矩阵,记作\(I_n\)。主对角线下(上)方全为\(0\)的矩阵称为上(下)三角矩阵,单位矩阵经过一次初等变换后称为初等矩阵(式子(4))。元素全为\(1\)的矩阵一般记作\(J\),容易有等式\(J^2=nJ\),这个式子变形中非常有用。
\[P(i(k))=\begin{bmatrix}\ddots&&\\&k&\\&&\ddots\end{bmatrix},\quad P(i,j)=\begin{bmatrix}0&\cdots&1\\\vdots&&\vdots\\1&\cdots&0\end{bmatrix},\quad P(j,i(k))=\begin{bmatrix}1&&\\\vdots&\ddots&\\k&\cdots&1\end{bmatrix}\tag{4}\]
矩阵中一个常用操作就是将\(a_{ij}\)和\(a_{ji}\)交换,得到的新矩阵叫\(A\)的转置,一般记做\(A^T\)或\(A'\)。显然有等式(3)成立,这个等式一定程度说明了矩阵中行和列的对等性。\(A'=A\)的矩阵称为对称矩阵,\(A'=-A\)的矩阵称为反对称矩阵,显然反对称矩阵的对角元皆为\(0\)。
\[|A'|=|A|\tag{3}\]
• 求\(n\)阶对角矩阵、三角矩阵、对称矩阵、反对称矩阵的维度;
• 求证:奇数阶反对称矩阵的行列式为\(0\)。
1.2 矩阵的秩
解线性方程组时,系数矩阵可以看成是\(n\)个列向量,这个向量组有它的相关性和秩。这使得我们好奇:矩阵行向量的相关性和秩是怎样的?它与列向量有什么关系?
不管是在线性方程组还是行列式中,我们看到用初等变换将矩阵阶梯化可以简化问题。容易证明,初等变换并不改变向量组所生成的线性空间,故它们的秩是不变的。所以矩阵的行(列)向量在阶梯化后秩保持不变,而显然阶梯矩阵的秩就是非零行(列)的个数,这就是求秩的一般方法。在按行阶梯化矩阵后,可以很轻松地继续按列阶梯化(公式(4)),最终每行每列最多只有一个非零元素。这样的话,矩阵行向量和列向量的秩都等于非零元素的个数,它们是相等的。我们把这个共同的秩也称为矩阵的秩,同样记作\(\text{rank}\,A\),秩是矩阵的一个基本属性。
\[\begin{bmatrix}a_{i_1j_1}&0&0&0&0\\0&a_{i_2j_2}&0&0&0\\\vdots&\vdots&\ddots&\vdots&\vdots\\0&0&0&a_{i_rj_r}&0\end{bmatrix}\tag{4}\]
在秩为\(r\)的向量组中,我们可以选出\(r\)个无关向量作为它的代表,那么在秩为\(r\)的矩阵中是否有\(r\times r\)的“子矩阵”呢?为此先定义矩阵任意\(m'\)行、\(n'\)列的交点元素组成的矩阵为其子矩阵,这是除行、列外考察矩阵的另一个视角。由于线性相关向量组的子向量组或截断向量组也线性相关,故子矩阵的秩必定不大于\(r\)。另一方面,可以先选出\(r\)行无关的行向量,它们组成的矩阵的秩还是\(r\),所以一定有\(r\)列是线性无关的,这就找到了原矩阵秩为\(r\)的\(r\times r\)子矩阵。特别地,满足\(r=\min(n,m)\)的矩阵称为满秩矩阵,对应分别有行满秩和列满秩的概念。
我们现在有三个视角看待一个矩阵:行或列的向量空间、矩阵的秩、方阵的行列式,这里稍作总结。首先矩阵的秩也是向量空间的维数,所以线性方程组有解的充要条件是:系数矩阵的秩等于增广矩阵的秩,有唯一解时还要求系数矩阵是列满秩的。特别地,齐次方程有非零解的充要条件是:系数矩阵不是列满秩的,且解空间\(W\)满足公式(5)。对于方阵而言,它满秩的充要条件是:矩阵的行列式非零。
\[\dim{W}+\text{rank}\,A=n\tag{5}\]
2. 矩阵的乘法
2.1 定义和基本性质
线性空间的浅层结构我们已经基本了解了,按照抽象代数的经验,现在需要借助同态映射研究其深层结构。但在此之前,我们需要需要一点准备工作,而把同态映射放到下一篇中介绍。其实前面的线性方程组就是同态映射的一个具体例子,现在就以此为切入点介绍矩阵的乘法。
回顾上一篇的线性方程组(11),如果把未知数也看作是一个向量\(\bar{x}=[x_1\:\cdots\:x_m]'\),系数矩阵\(A_{n\times m}\)可以看成是将\(\bar{x}\)映射成了\(\beta\)。映射是可以复合的,但要继续映射\(\beta\),矩阵的列数必须是\(n\),设为\(B_{l\times n}\)。设\(B\)将\(\beta\)又映射成\(\gamma=[z_1\:\cdots\:z_l]'\),可以算得\(z_i=\sum{c_{ij}x_j}\),其中\(c_{ij}=\sum{b_{ik}a_{kj}}\)。复合映射的结果任然可以看成是一个矩阵\(C\)在\(\bar{x}\)上的映射,为此我们定义这种映射的复合为矩阵的乘法,记作\(C=BA\),其中\(C\)的元素满足下式。
\[C=BA,\quad c_{ij}=b_{i1}a_{1j}+b_{i2}a_{2j}+\cdots+b_{in}a_{nj}=\sum_{k=1}^n{b_{ik}a_{kj}}\tag{8}\]
对矩阵\(A_{s\times t},B_{t\times m},C_{m\times n}\),可以证明有式子(9)成立,所以矩阵的乘法满足结合律。但不是所有矩阵之间都可以做乘法,所以全体矩阵并不构成半群。要使乘法处处成立,必须是阶相同的方阵组成的集合,但即使是方阵的乘法也不一定满足交换律。另外容易验证,乘法和加法的分配率成立(式子(10)),数乘运算满足公式(11),转置运算满足公式(12)。
\[(AB)C=A(BC)=D,\quad d_{ij}=\sum_{k=1}^t\sum_{l=1}^m{a_{ik}b_{kl}c_{lj}}\tag{9}\]
\[A(B+C)=AB+AC,\quad (B+C)A=BA+CA\tag{10}\]
\[k(AB)=(kA)B=A(kB)\tag{11}\]
\[(AB)'=B'A'\tag{12}\]
如果集合中任意两个矩阵都可以做乘法,这个集合必定是由阶相同的方阵组成的。特别地,\(M_n(R)\)是一个幺半群,其中单位元就是单位矩阵\(I_n\)(公式(13))。\(M_n(R)\)中的元素可以按照式子(14)定义幂次\(A^m\),容易证明幂次的一般性质对它都成立。另外要注意,由于交换律不一定成立,故\((AB)^m=A^mB^m\)一般也不成立。
\[I_mA_{m\times n}=A_{m\times n},\quad A_{m\times n}I_n=A_{m\times n}\tag{13}\]
\[A^0=I_n,\quad A^m=AA^{m-1}\:(m>0)\tag{14}\]
• 求证:\(n\)阶对角矩阵、上(下)三角矩阵分别都是幺半群,并且乘积的对角元就是对角元的乘积。
2.2 乘法的向量意义
如果把线性方程组的未知数写成\(m\times 1\)的矩阵\(X=[x_1\:x_2\:\cdots\:x_m]'\),显然方程组其实就是矩阵乘法\(AX=\beta\)。另外又因为线性方程组的本质是线性表示\(\sum{}\alpha_i x_i=\beta\),这就将矩阵乘法和线性表示建立起了联系。这个结论一方面给予了矩阵乘法的另一个现实意义,另一方面可以把变换统一到矩阵乘法中去,下面分别加以阐述。
如果把矩阵\(A_{l\times n},B_{n\times m}\)分别表示成列向量组\([\alpha_1\:\alpha_2\:\cdots\:\alpha_n]\)和行向量组\([\beta_1\:\beta_2\:\cdots\:\beta_n]'\),则\(AB\)可以看成是\(\alpha_i\)或\(\beta_j\)的一组线性表示(公式(15)(16)),其中\([\gamma_1\:\gamma_2\:\cdots\:\gamma_m]\)是\(AB\)的列向量组表示,而\([\delta_1\:\delta_2\:\cdots\:\delta_l]'\)是\(AB\)的行向量组表示。
\[AB=\begin{bmatrix}\alpha_1&\alpha_2&\cdots&\alpha_n\end{bmatrix}B=\begin{bmatrix}\gamma_1&\gamma_2&\cdots&\gamma_m\end{bmatrix},\:\gamma_j=\sum_{k=1}^n{\alpha_k{b_{kj}}}\tag{15}\]
\[AB=A\begin{bmatrix}\beta_1\\\beta_2\\\vdots\\\beta_n\end{bmatrix}=\begin{bmatrix}\delta_1\\\delta_2\\\vdots\\\delta_l\end{bmatrix},\:\delta_i=\sum_{k=1}^n{\beta_k{a_{ik}}}\tag{16}\]
这种视角在一些论证中非常有用,比如因为\(\gamma_k\)是\(\alpha_1,\alpha_2,\cdots,\alpha_n\)的线性表示,故\(AB\)的列秩不大于的\(A\)的列秩,同样可证\(AB\)的行秩不大于的\(B\)的行秩。结合前面行列秩相等的结论,可有以下\(AB\)秩的估算式。
\[\text{rank}\,AB\leqslant\min(\text{rank}\,A,\text{rank}\,B)\tag{17}\]
• \(A\)为实数域上的矩阵,求证:方程组\(A'AX=0\)和\(AX=0\)的解空间相同,从而\(\text{rank}\,A'A=\text{rank}\,A\);
• 若\(A_{l\times n}B_{n\times m}=0\),求证:\(\text{rank}\,A+\text{rank}\,B\leqslant n\);
• 设\(A\)的秩为\(r\),求证:存在列数为\(r\)的列满矩阵\(B\)和行数为\(r\)的行满矩阵\(C\),使得\(A=BC\)。
其实不光线性方程组可以表示成矩阵的乘积,矩阵上的其它操作也可以转化为乘积,比如数乘运算\(kA\)其实就是对角矩阵\(\text{diag}\{k,k,\cdots,k\}\)与\(A\)的乘积。另外容易证明,初等矩阵\(P(i(k))\)左(右)乘\(A\)就是将\(A\)的第\(i\)行(列)乘以\(k\),\(P(i,j)\)左(右)乘\(A\)就是将\(A\)的第\(i,j\)行(列)交换。\(P(j,i(k))\)左乘\(A\)就是将\(A\)的第\(i\)行的\(k\)倍加到第\(j\)行上,\(P(j,i(k))\)右乘\(A\)就是将\(A\)的第\(j\)列的\(k\)倍加到第\(i\)行上。
2.3 矩阵的逆
\(M_n(R)\)是幺半群,并不是所有矩阵都有逆元,这里就来讨论一下矩阵存在逆元的条件,以及逆元的计算。首先如果式(18)成立,\(B\)就称为\(A\)的逆矩阵(inverse matrix),也记作\(A^{-1}\)。在抽象代数中我们已经知道,逆元是唯一的,且逆元的逆元还是逆元,故\(A^{-1}\)唯一且\((A^{-1})^{-1}=A\),还有公式(19)成立。
\[AB=BA=I\quad\Leftrightarrow \quad B=A^{-1}\tag{18}\]
\[(AB)^{-1}=B^{-1}A^{-1}\tag{19}\]
由公式(17)知\(A\)必须是满秩的,反之对任意满足\(|A|\ne 0\)的矩阵,是否都有逆呢?逆矩阵是可以构造出来的,回顾行列式中的代数余子式的概念,以及行列式按一行(列)展开的结论,我们构造如下矩阵\(A^*\)(注意行列的下标),它被称为\(A\)的伴随矩阵(companion matrix)。
\[A^*=\begin{bmatrix}A_{11}&A_{21}&\cdots&A_{n1}\\A_{12}&A_{22}&\cdots&A_{n2}\\\vdots&\vdots&\ddots&\vdots\\A_{1n}&A_{2n}&\cdots&A_{nn}\end{bmatrix}\tag{20}\]
现在来计算\(AA^*\),它的第\(i\)行、\(j\)列的元素为\(\sum\limits_{k=1}^n{a_{ik}A_{jk}}\),它正是将\(|A|\)的第\(j\)行替换成第\(i\)行后的值。显然\(i=j\)时值为\(|A|\),\(i\ne j\)时值为\(0\),故\(AA^*=|A|I\),这样就构造了\(A\)的如下逆矩阵。同时还说明了,矩阵有逆的充要条件是:\(|A|\ne 0\)。
\[A^{-1}=\dfrac{1}{|A|}A^*\tag{21}\]
对于线性方程组\(AX=\beta\),它有唯一解的充要条件是\(|A|\ne 0\),且这个解就是\(X=A^{-1}\beta\)。再根据公式(21),可以得到解的如下公式,其中\(y_i\)是将\(|A|\)的第\(i\)列换成\(\beta\)后的值。这个式子用系数和常数项表达了方程组的解,该结论就是线性方程组的克莱姆法则(Cramer)。
\[X=\dfrac{1}{|A|}A^*\beta=\dfrac{1}{|A|}\begin{bmatrix}y_1\\y_2\\\vdots\\y_n\end{bmatrix}\tag{22}\]
用公式(21)求逆计算量较大,现在用另一个方法来计算它。首先直接由逆的定义容易证明,初等矩阵都是可逆矩阵,而且它们的逆还是初等矩阵(公式(23))。试想对可逆矩阵\(A\)进行初等变换,最终一定可以变换成\(I\),将这些初等变换表示成矩阵\(P_1,\cdots,P_s\),则有\(P_s\cdots P_2P_1A=I\),所以\(A\)可以表示成初等矩阵的乘积(公式(24))。由于初等变换不改变矩阵的秩,所以与\(A\)相乘也不改变矩阵的秩(25),这是对公式(17)的一个补充。
\[P(i,j)^{-1}=P(i,j),\quad P(i(k))^{-1}=P(i(\dfrac{1}{k})),\quad P(j,i(k))^{-1}=P(j,i(-k))\tag{23}\]
\[P_s\cdots P_2P_1A=I\quad\Rightarrow\quad A=P_1^{-1}P_2^{-1}\cdots P_s^{-1}\tag{24}\]
\[\text{rank}\,AB=\text{rank}\,B,\quad(|A|\ne 0)\tag{25}\]
公式(24)的左式说明\(P_s\cdots P_2P_1\)正好就是\(A^{-1}\),所以我们可以对矩阵\([A\:I]\)的行做初等变换,直至将\(A\)变成\(I\),这时原来的\(I\)自然已经变成了\(A^{-1}\)。这样求矩阵逆的方法也叫初等变换法。根据行列式的初等变换可知,初等矩阵对行列式的影响如公式(26),结合公式(24)知可逆矩阵的行列式仅由其初等矩阵决定,从而有可逆矩阵乘积的行列式等同于行列式的乘积(公式(27))。\(A,B\)若有非满秩矩阵,公式(27)显然也成立(两边为\(0\)),故公式(27)对任意方阵恒成立,它就是比奈-柯西定理(Binet-Cauchy)。
\[|P(i,j)A|=-|A|,\quad |P(i(k))A|=k|A|,\quad |P(j,i(k))A|=|A|\tag{26}\]
\[|AB|=|A||B|\tag{27}\]
对于很多特殊形式的矩阵,有时候直接用逆的定义反而更容易,这当然还需要一些技巧。比如对于常用的矩阵\(J+\lambda I\),由于\(J^2=nJ\),可以猜想它的逆有形式\(xJ+yI\),解方程\((J+\lambda I)(xJ+yI)=I\)便可得到结果。
• 已知\(A^k=0\),求\((I-A)^{-1}\);
• 若\(I_n-AB\)可逆,求证:\(I_m-BA\)也可逆。(提示:构造)
2.4 矩阵的分块
把矩阵的\(n\)行、\(m\)列连续地分割成\(n_1,\cdots,n_s\)行、\(m_1,\cdots,m_t\)列,形成一个\(s\times t\)的分块矩阵,之前将矩阵作为行列向量看待其实就是一种分块方法。分块矩阵其实是扩展了矩阵的元素,但矩阵的很多性质在分块矩阵上同样成立,由此它还成为了矩阵研究的一个有力工具(将矩阵嵌入到分块矩阵中)。
这里先罗列一些分块矩阵的常规性质,首先比较容易得到分块矩阵的转置、乘法的形式结果,也容易定义分块对角矩阵、分块上(下)三角矩阵,这里就不赘述了。同样可以对分块矩阵进行初等变换,行变换对应的初等矩阵如公式(28)所示(交换较复杂),初等变换都是满秩的(\(|P_{n_i}|\ne 0\)),它们不改变分块矩阵的秩。
\[P(i(K))=\begin{bmatrix}\ddots&&\\&K_{n_i}&\\&&\ddots\end{bmatrix},\quad P(j,i(K))=\begin{bmatrix}I_{n_i}&&\\\vdots&\ddots&\\K_{n_j\times n_i}&\cdots&I_{n_j}\end{bmatrix}\tag{28}\]
分块矩阵的初等变换能方便地找到矩阵间的关系,当要讨论矩阵性质时,可以先把它们嵌入到分块矩阵中,通过初等变换得到一些表达式。比如刚才的习题中,要研究\(I_n-AB\)和\(I_m-BA\),可以先把对应矩阵放到公式(29)左边的分块矩阵的行列式中,分别作\(P(2,1(-A))\)和\(P(1,2(-B))\)两种行变换,由行列式不变得到右边的结论。
\[\begin{vmatrix}I_m&B\\A&I_n\end{vmatrix}=\begin{vmatrix}I_m&B\\0&I_n-AB\end{vmatrix}=\begin{vmatrix}I_m-BA&0\\A&I_n\end{vmatrix}\:\Rightarrow\:|I_n-AB|=|I_m-BA|\tag{29}\]
再比如考察\(A_{l\times n}B_{n\times m}\),将它嵌入到公式(30)左边的分块矩阵,依次使用行变换\(P(2,1(A))\)、列变换\(P(1,2(-B)),P(2(-1))\),得到右边的分块矩阵。这样就有\(n+\text{rank}\,AB\geqslant\text{rank}\,A+\text{rank}\,B\),故得到公式(31),这个结论叫Sylvester秩不等式,它和公式(17)一起组成了\(AB\)秩的估算式。
\[\begin{bmatrix}I_n&0\\0&AB\end{bmatrix}\Rightarrow\begin{bmatrix}I_n&0\\A&AB\end{bmatrix}\Rightarrow\begin{bmatrix}I_n&-B\\A&0\end{bmatrix}\Rightarrow\begin{bmatrix}I_n&B\\A&0\end{bmatrix}\tag{30}\]
\[\text{rank}\,AB\geqslant\text{rank}\,A+\text{rank}\,B-n\tag{31}\]
• 求证:\(A^2=A\)的充要条件是:\(\text{rank}\,A+\text{rank}\,(I-A)=n\);
• 使用分块矩阵证明公式(27);
• \(A,D\)都是方阵,\(A\)可逆,求证:\(\begin{vmatrix}A&B\\C&D\end{vmatrix}=|A|·|D-CA^{-1}B|\)。
最后,我们使用分块矩阵讨论一下矩阵\(A_{n\times m}\)的“逆矩阵”。我们知道,若方程组\(AX=\beta\)有解,解的表达式为\(X=B_{m\times n}\beta\)(注意\(B\)可能不唯一)。这个\(B\)是\(A\)的“逆矩阵”的理想定义,记之为\(A^-\),但我们需要用单纯的矩阵语言描述它。首先有\(AA^-\beta=\beta\),另外\(A,A^-\)固定时,这个式子成立的充要条件是:\(\beta\)为\(A\)的列向量的线性组合。所以该等式等价于等式(32),我们也就把所有满足式子(32)的\(A^-\)称为\(A\)的广义逆矩阵。
\[AA^-A=A\tag{32}\]
剩下的问题是如何表达广义逆,首先容易知道,秩为\(r\)矩阵\(A\)在经过一系列行和列的初等变换后,总能得到形式\(L=\begin{bmatrix}I_r&0\\0&0\end{bmatrix}\),故存在可逆矩阵\(P,Q\)使得公式(33)左成立。带入公式(32)有\(PLQA^-PLQ=PLQ\),即\(LQA^-PL=L\),所以\(QA^-P=\begin{bmatrix}I_r&X\\Y&Z\end{bmatrix}\),其中\(X,Y,Z\)任意,这样就得到了广义逆的表达式(33)右。
\[A=P\begin{bmatrix}I_r&0\\0&0\end{bmatrix}Q\quad\Rightarrow\quad A^-=Q^{-1}\begin{bmatrix}I_r&X\\Y&Z\end{bmatrix}P^{-1}\tag{33}\]