机器学习数学基础:17.矩阵初等变换
矩阵初等变换
一、矩阵初等变换基础
基本概念
- 初等矩阵:由单位矩阵经过一次初等变换得到的矩阵。初等变换有三种类型,分别是交换两行(列)、某一行(列)乘以非零常数、某一行(列)乘以一个数加到另一行(列)上,所以对应的初等矩阵也分这三类。
- 矩阵乘法与变换关系:“左行右列”揭示的是矩阵乘法和初等变换之间的内在联系。矩阵AAA左乘或右乘初等矩阵,会引发AAA相应的行或列的变化。
具体例子
左行情况
设矩阵A =[a11a12a13a21a22a23a31a32a33]A \ = \begin{bmatrix}a_{11}&a_{12}&a_{13}\\a_{21}&a_{22}&a_{23}\\a_{31}&a_{32}&a_{33}\end{bmatrix}A = a11a21a31a12a22a32a13a23a33 。
- 交换两行的初等矩阵作用:若单位矩阵E =[100010001]E\ =\begin{bmatrix}1&0&0\\0&1&0\\0&0&1\end{bmatrix}E = 100010001 交换第111行和第222行得到初等矩阵P1 =[010100001]P_1\ =\begin{bmatrix}0&1&0\\1&0&0\\0&0&1\end{bmatrix}P1 = 010100001 ,P1A =[010100001][a11a12a13a21a22a23a31a32a33] =[a21a22a23a11a12a13a31a32a33]P_1A\ =\begin{bmatrix}0&1&0\\1&0&0\\0&0&1\end{bmatrix}\begin{bmatrix}a_{11}&a_{12}&a_{13}\\a_{21}&a_{22}&a_{23}\\a_{31}&a_{32}&a_{33}\end{bmatrix}\ =\begin{bmatrix}a_{21}&a_{22}&a_{23}\\a_{11}&a_{12}&a_{13}\\a_{31}&a_{32}&a_{33}\end{bmatrix}P1A = 010100001 a11a21a31a12a22a32a13a23a33 = a21a11a31a22a12a32a23a13a33 ,AAA的第111行和第222行交换了。
- 某行乘以非零常数的初等矩阵作用:单位矩阵EEE的第222行乘以非零常数kkk得到初等矩阵P2 =[1000k0001]P_2\ =\begin{bmatrix}1&0&0\\0&k&0\\0&0&1\end{bmatrix}P2 = 1000k0001 ,P2A =[1000k0001][a11a12a13a21a22a23a31a32a33] =[a11a12a13ka21ka22ka23a31a32a33]P_2A\ =\begin{bmatrix}1&0&0\\0&k&0\\0&0&1\end{bmatrix}\begin{bmatrix}a_{11}&a_{12}&a_{13}\\a_{21}&a_{22}&a_{23}\\a_{31}&a_{32}&a_{33}\end{bmatrix}\ =\begin{bmatrix}a_{11}&a_{12}&a_{13}\\ka_{21}&ka_{22}&ka_{23}\\a_{31}&a_{32}&a_{33}\end{bmatrix}P2A = 1000k0001 a11a21a31a12a22a32a13a23a33 = a11ka21a31a12ka22a32a13ka23a33 ,AAA的第222行乘以了kkk。
- 某行乘以数加到另一行的初等矩阵作用:单位矩阵EEE的第111行乘以mmm加到第333行得到初等矩阵P3 =[100010m01]P_3\ =\begin{bmatrix}1&0&0\\0&1&0\\m&0&1\end{bmatrix}P3 = 10m010001 ,P3A =[100010m01][a11a12a13a21a22a23a31a32a33] =[a11a12a13a21a22a23ma11+a31ma12+a32ma13+a33]P_3A\ =\begin{bmatrix}1&0&0\\0&1&0\\m&0&1\end{bmatrix}\begin{bmatrix}a_{11}&a_{12}&a_{13}\\a_{21}&a_{22}&a_{23}\\a_{31}&a_{32}&a_{33}\end{bmatrix}\ =\begin{bmatrix}a_{11}&a_{12}&a_{13}\\a_{21}&a_{22}&a_{23}\\ma_{11}+a_{31}&ma_{12}+a_{32}&ma_{13}+a_{33}\end{bmatrix}P3A = 10m010001 a11a21a31a12a22a32a13a23a33 = a11a21ma11+a31a12a22ma12+a32a13a23ma13+a33 ,AAA的第111行乘以mmm加到了第333行。
右列情况
同样设矩阵A =[a11a12a13a21a22a23a31a32a33]A \ = \begin{bmatrix}a_{11}&a_{12}&a_{13}\\a_{21}&a_{22}&a_{23}\\a_{31}&a_{32}&a_{33}\end{bmatrix}A = a11a21a31a12a22a32a13a23a33 。
- 交换两列的初等矩阵作用:单位矩阵EEE交换第111列和第333列得到初等矩阵Q1 =[001010100]Q_1\ =\begin{bmatrix}0&0&1\\0&1&0\\1&0&0\end{bmatrix}Q1 = 001010100 ,AQ1 =[a11a12a13a21a22a23a31a32a33][001010100] =[a13a12a11a23a22a21a33a32a31]AQ_1\ =\begin{bmatrix}a_{11}&a_{12}&a_{13}\\a_{21}&a_{22}&a_{23}\\a_{31}&a_{32}&a_{33}\end{bmatrix}\begin{bmatrix}0&0&1\\0&1&0\\1&0&0\end{bmatrix}\ =\begin{bmatrix}a_{13}&a_{12}&a_{11}\\a_{23}&a_{22}&a_{21}\\a_{33}&a_{32}&a_{31}\end{bmatrix}AQ1 = a11a21a31a12a22a32a13a23a33 001010100 = a13a23a33a12a22a32a11a21a31 ,AAA的第111列和第333列交换了。
- 某列乘以非零常数的初等矩阵作用:单位矩阵EEE的第222列乘以非零常数nnn得到初等矩阵Q2 =[1000n0001]Q_2\ =\begin{bmatrix}1&0&0\\0&n&0\\0&0&1\end{bmatrix}Q2 = 1000n0001 ,AQ2 =[a11a12a13a21a22a23a31a32a33][1000n0001] =[a11na12a13a21na22a23a31na32a33]AQ_2\ =\begin{bmatrix}a_{11}&a_{12}&a_{13}\\a_{21}&a_{22}&a_{23}\\a_{31}&a_{32}&a_{33}\end{bmatrix}\begin{bmatrix}1&0&0\\0&n&0\\0&0&1\end{bmatrix}\ =\begin{bmatrix}a_{11}&na_{12}&a_{13}\\a_{21}&na_{22}&a_{23}\\a_{31}&na_{32}&a_{33}\end{bmatrix}AQ2 = a11a21a31a12a22a32a13a23a33 1000n0001 = a11a21a31na12na22na32a13a23a33 ,AAA的第222列乘以了nnn。
- 某列乘以数加到另一列的初等矩阵作用:单位矩阵EEE的第333列乘以sss加到第111列得到初等矩阵Q3 =[10s010001]Q_3\ =\begin{bmatrix}1&0&s\\0&1&0\\0&0&1\end{bmatrix}Q3 = 100010s01 ,AQ3 =[a11a12a13a21a22a23a31a32a33][10s010001] =[a11+sa13a12a13a21+sa23a22a23a31+sa33a32a33]AQ_3\ =\begin{bmatrix}a_{11}&a_{12}&a_{13}\\a_{21}&a_{22}&a_{23}\\a_{31}&a_{32}&a_{33}\end{bmatrix}\begin{bmatrix}1&0&s\\0&1&0\\0&0&1\end{bmatrix}\ =\begin{bmatrix}a_{11}+sa_{13}&a_{12}&a_{13}\\a_{21}+sa_{23}&a_{22}&a_{23}\\a_{31}+sa_{33}&a_{32}&a_{33}\end{bmatrix}AQ3 = a11a21a31a12a22a32a13a23a33 100010s01 = a11+sa13a21+sa23a31+sa33a12a22a32a13a23a33 ,AAA的第333列乘以sss加到了第111列。
背后原理
从矩阵乘法的定义来看,左乘时,初等矩阵的行与AAA的列进行运算,会改变AAA的行;右乘时,AAA的行与初等矩阵的列进行运算,会改变AAA的列。这一性质在矩阵求逆、解线性方程组、矩阵的等价变换等很多线性代数的问题中都有重要应用。
二、初等行变换求逆矩阵
(一)原理与方法
在矩阵家族中,可逆矩阵是一群特殊的成员。对于一个n×nn \times nn×n的矩阵AAA,如果它可逆,那就意味着存在另一个矩阵A−1A^{-1}A−1,使得AAA乘A−1A^{-1}A−1以及A−1A^{-1}A−1乘AAA都等于单位矩阵EEE(单位矩阵就是主对角线元素都是111,其他元素都是000的方阵,比如2×22 \times 22×2的单位矩阵是(1001)\begin{pmatrix}1&0\\0&1\end{pmatrix}(1001))。
可逆矩阵AAA还有两个重要特点:一是它必然是满秩的。秩可以简单理解为矩阵中“有效”的行或列的数量,满秩就是说矩阵的秩等于它的行数(也是列数,因为是方阵),即rank(A) =nrank(A)\ =nrank(A) =n。二是它必然与n×nn \times nn×n的单位矩阵EEE等价,也就是说可以通过一系列的初等变换把AAA变成EEE,反过来也可以把EEE变成AAA。
当矩阵AAA可逆时,数学上可以证明存在有限个初等矩阵P1,P2,⋯ ,PnP_1,P_2,\cdots,P_nP1,P2,⋯,Pn,使得Pn⋯P2P1A =EP_n \cdots P_2P_1A \ = EPn⋯P2P1A =E。这里的每个PiP_iPi都对应着一次初等行变换,就像一个个小魔法步骤。而且还有Pn⋯P2P1E =A−1P_n \cdots P_2P_1E \ = A^{-1}Pn⋯P2P1E =A−1,这就是用初等行变换求逆矩阵的核心原理。
在实际计算中,我们用一种巧妙的办法:把矩阵AAA和单位矩阵EEE写成一个“并排”的增广矩阵(A∣E)(A|E)(A∣E)。然后对这个增广矩阵进行初等行变换,在变换过程中,左边的AAA会慢慢发生变化。当我们通过一系列变换把左边的AAA变成单位矩阵EEE时,右边原来的单位矩阵EEE就会变成AAA的逆矩阵A−1A^{-1}A−1,也就是(A∣E)→初等行变换(E∣A−1)(A|E)\xrightarrow{初等行变换}(E|A^{-1})(A∣E)初等行变换(E∣A−1)。
(二)举例说明
我们来看一个具体例子,设矩阵A =(2111)A \ = \begin{pmatrix}2&1\\1&1\end{pmatrix}A =(2111),现在求它的逆矩阵。
首先构造增广矩阵(21101101)\begin{pmatrix}2&1&1&0\\1&1&0&1\end{pmatrix}(21111001),左边是AAA,右边是2×22 \times 22×2的单位矩阵。
然后开始进行初等行变换:
- 我们想把第一行的第一个元素变成111,同时让第二行的第一个元素变成000。所以先把第一行减去第二行的222倍,计算过程是:第一行的第一个元素2−2×1 =02 - 2 \times 1 \ = 02−2×1 =0,第二个元素1−2×1 =−11 - 2 \times 1 \ = -11−2×1 =−1,第三个元素1−2×0 =11 - 2 \times 0 \ = 11−2×0 =1,第四个元素0−2×1 =−20 - 2 \times 1 \ = -20−2×1 =−2,这样矩阵就变成了(0−11−21101)\begin{pmatrix}0& - 1&1& - 2\\1&1&0&1\end{pmatrix}(01−1110−21)。
- 这时候第一行的第二个元素是−1-1−1,为了把它变成111,我们把第一行乘以−1-1−1,得到(0×(−1)−1×(−1)1×(−1)−2×(−1)1101) =(01−121101)\begin{pmatrix}0 \times (-1)& - 1 \times (-1)&1 \times (-1)& - 2 \times (-1)\\1&1&0&1\end{pmatrix}\ =\begin{pmatrix}0&1& - 1&2\\1&1&0&1\end{pmatrix}(0×(−1)1−1×(−1)11×(−1)0−2×(−1)1) =(0111−1021)。
- 接着,为了让第二行的第二个元素变成000,我们把第二行减去第一行,计算得:第二行的第一个元素1−0 =11 - 0 \ = 11−0 =1,第二个元素1−1 =01 - 1 \ = 01−1 =0,第三个元素0−(−1) =10 - (-1) \ = 10−(−1) =1,第四个元素1−2 =−11 - 2 \ = -11−2 =−1,矩阵就变成了(01−12101−1)\begin{pmatrix}0&1& - 1&2\\1&0&1& - 1\end{pmatrix}(0110−112−1)。
经过这些变换,左边的AAA变成了单位矩阵(1001)\begin{pmatrix}1&0\\0&1\end{pmatrix}(1001),右边的矩阵就是AAA的逆矩阵A−1 =(1−1−12)A^{-1} \ = \begin{pmatrix}1& - 1\\ - 1&2\end{pmatrix}A−1 =(1−1−12)。
三、矩阵的秩相关知识
(一)秩的求解与性质
矩阵的秩是描述矩阵“本质”的一个重要数字。我们可以通过初等行变换来找到它。具体做法是把矩阵通过初等行变换变成行阶梯型矩阵,行阶梯型矩阵中非零行的行数就是这个矩阵的秩。
矩阵的秩有一些很重要的性质:
- 转置不变性:矩阵转置后,它的秩不会改变。比如矩阵A =(1234)A \ = \begin{pmatrix}1&2\\3&4\end{pmatrix}A =(1324),它的转置AT =(1324)A^T \ = \begin{pmatrix}1&3\\2&4\end{pmatrix}AT =(1234),AAA和ATA^TAT的秩是一样的。
- 同型矩阵关系:如果两个矩阵的行数和列数都相同(叫同型矩阵),并且它们的秩也相等,那它们在很多方面有相似的性质。
- 可逆变换不变性:可逆变换不会改变矩阵的秩。因为可逆变换其实就是一系列初等变换的组合,而初等变换不会改变矩阵的秩。
矩阵的秩还可以从其他角度理解,比如从有效方程的个数或者非零子式的最高阶数来定义,但不管哪种方式,得到的秩都是一样的。
(二)秩的运算规律
在矩阵的运算中,秩有一些有趣的规律,我们可以用三句话来记住:“秩越乘越小,越拼越大,分开加最大”。
- 秩越乘越小:当两个矩阵AAA和BBB相乘得到新矩阵C =ABC \ = ABC =AB时,CCC的秩不会超过AAA和BBB中秩较小的那个。比如AAA的秩是333,BBB的秩是222,那么ABABAB的秩最大就是222。
- 越拼越大:要是把两个矩阵AAA和BBB拼接起来(可以横着拼或者竖着拼),得到的新矩阵的秩通常会比AAA和BBB各自的秩大。比如把AAA和BBB横着拼成[A∣B][A|B][A∣B],[A∣B][A|B][A∣B]的秩一般会大于AAA的秩和BBB的秩。
- 分开加最大:当把两个矩阵分开相加时,它们秩的和能达到一种相对最大的情况。
还有一种特殊情况,当AB =0AB \ = 0AB =0(两个矩阵相乘等于零矩阵)时,AAA的秩加上BBB的秩小于等于nnn(nnn和矩阵的维度有关,比如AAA是m×nm \times nm×n矩阵,BBB是n×pn \times pn×p矩阵,这里的nnn就是AAA的列数和BBB的行数)。
四、矩阵运算的简化技巧
(一)简化矩阵乘法
在计算A−1BA^{-1}BA−1B时,有个偷懒的好办法。我们把矩阵AAA和BBB横着拼在一起,形成一个新矩阵[A∣B][A|B][A∣B],然后对这个新矩阵进行初等行变换。在变换过程中,当把左边的AAA变成单位矩阵EEE时,右边原来的BBB就会变成A−1BA^{-1}BA−1B的结果。这样就不用先单独算出A−1A^{-1}A−1,再去乘BBB,能省不少计算量呢。
(二)求解XA =BXA \ = BXA =B形式
当遇到XA =BXA \ = BXA =B这样的矩阵方程时,我们可以用转置的方法来解决。先把等式两边都转置,得到ATXT =BTA^TX^T \ = B^TATXT =BT。这时候,我们把ATA^TAT和BTB^TBT看成新的矩阵,构造增广矩阵(AT∣BT)(A^T|B^T)(AT∣BT),然后对它进行初等行变换。当把左边的ATA^TAT变成单位矩阵时,右边就会得到XTX^TXT,最后再把XTX^TXT转置一下,就得到我们要的矩阵XXX啦。这就好像把一个复杂的问题转个身,变成我们熟悉的样子来解决。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)