矩阵的初等变化

初等变换

不仅限于方阵,对于一般的矩阵 A,可以进行初等行变换和初等列变换,统称为初等变换。

初等行变换与初等列变换一样,都有 3 种:倍乘(multiplication)、对换(switching)、倍加(addition)。

这里先介绍初等行变换:

\(i\) 行乘非零数 k:\(B\mapsto D_i(k)B\)
\(i\)\(j\) 行互换:\(B\mapsto P_{i,j}B\)
\(j\) 行乘 \(k\) 加到第 \(i\) 行:\(B\mapsto T_{i,j}(k)B\)

将上述操作的改为,即得到初等列变换。

在初等变换中,对换可以通过倍乘和倍加实现。显然,倍加不能通过倍乘和对换实现。借助行列式的知识,以及下文的初等变换与矩阵乘法的等价性,也能说明倍乘不能通过倍加和对换实现。

因此,相较对换而言,倍乘和倍加是更为本质的操作。对换操作是为了在消元法中,保证消元的有序,而引入的辅助操作。

初等变换与矩阵乘法

可以发现,三类初等矩阵都是在单位阵 \(I\) 上进行一次相应的变换得到的结果。在后文的线性变换中指出,线性变换与矩阵之间有对应关系,与这里的关系类似。

无论矩阵 \(A\) 是否方阵,对矩阵 \(A\) 进行初等行变换,等价于对矩阵 \(A\)左乘初等矩阵。对矩阵 \(A\) 进行初等列变换,等价于对矩阵 \(A\) 右乘初等矩阵。

倍乘操作

左乘一个倍乘矩阵 \(D_i(k)\),等价于将第 \(i\) 行变为 \(k\) 倍。右乘一个倍乘矩阵 \(D_i(k)\),等价于将第 \(i\) 列变为 \(k\) 倍。

对角阵乘对角阵还是对角阵,对于对角阵的乘法,将主对角线上对应的元素相乘。由于单位阵是特殊的倍乘阵,而倍乘阵要求 k 不为 0,可以看出,只要对角阵主对角线上的元素均非 0,就可以拆分为倍乘阵的乘积。

对于一般的对角阵,无论元素是否为 0,也有相应的结论。左乘对角阵,等价于将对应的行变为原来的若干倍,倍数恰为对角阵主对角线上的相应元素。右乘对角阵,是对相应的列进行同样操作。

由于倍乘矩阵 \(D_i(k)\) 的行列式为 k,对于方阵的行或列进行倍乘操作之后,方阵对应的行列式变为原来的 k 倍。对角阵的行列式为主对角线元素的乘积。

倍乘矩阵的乘法可以交换,对角阵的乘法也可以交换,在乘法只有对角阵时,顺序可以任意排列。

单位阵对应的倍乘操作为保持矩阵 A 不变,在实际应用中不进行这样的操作。

对换操作

左乘一个对换矩阵 P_{ij},等价于将第 i 行与第 j 行交换。右乘一个对换矩阵 P_{ij},等价于将第 i 列与第 j 列交换。

与倍乘阵和对角阵的关系类似,这里引入置换矩阵的概念。置换矩阵是一个方阵,每行每列均恰有一个 1,其余位置均为 0。单位阵 I 也是特殊的置换矩阵。

置换阵和对于单位阵 I 的行进行置换操作一致,也和对于单位阵 I 的列进行置换操作一致。单位阵 I 本身对应于恒等变换。

左乘一个置换矩阵等价于对原矩阵的行进行置换,右乘一个置换矩阵等价于对原矩阵的列进行置换,相应置换的方法和对于单位阵 I 的行或列进行置换操作一致。

置换矩阵与置换完全对应,置换矩阵构成的乘法群与置换群同构。由于有定理,在恒等变换视为零个对换的乘积的情形下,任何置换都可以拆为对换的乘积,因此任何置换矩阵也可以拆分为对换矩阵的乘积。

由于对换矩阵的行列式为 -1,对于方阵的行或列进行对换操作之后,方阵对应的行列式变为原来的 -1 倍。

对换阵的乘法不可交换,置换阵的乘法也不可交换。

倍加操作

左乘倍加矩阵 \(T_{ij}(k)\) 等价于把第 j 行的 k 倍加到第 i 行上。右乘倍加矩阵 \(T_{ij}(k)\) 等价于把第 i 列的 k 倍加到第 j 列上。

如果难以记忆,可以观察倍加阵 \(T_{ij}(k)\) 是对单位阵 \(I\) 进行了怎样的操作,两者是对应的,左乘是对行的操作,右乘是对列的操作,符合口诀左行右列。

由于倍加矩阵的行列式为 1,对于方阵进行倍加操作之后,方阵对应的行列式不变

倍加矩阵的乘法不可交换。

单位阵对应的倍加操作为保持矩阵 A 不变,在实际应用中不进行这样的操作。

初等矩阵的逆

初等矩阵均可逆,并且逆为同类的初等矩阵:

\[{D_i(k)}^{-1}=D_i\left(\frac{1}{k}\right) \]

\[P_{ij}^{-1}=P_{ij} \]

\[T_{ij}(k)^{-1}=T_{ij}(-k) \]

显然单位阵 \(I\) 可逆,逆矩阵仍为 \(I\)

初等变换保持矩阵的可逆性,变换前后矩阵要么同时可逆,要么同时不可逆。

矩阵 A 可逆,当且仅当矩阵 A 可以写成初等矩阵的乘积,即可以通过初等变换变为单位阵 I。

等到引入行列式之后可以知道:

矩阵 A 可逆,当且仅当矩阵 A 的秩为 n,当且仅当矩阵 A 的行列式非 0。

一种简单的记法为:记 \(E_{ij}\) 为第 i 行第 j 列的元素为 1、其余为零的 \(n\times n\) 矩阵,那么

\[D_i(k)=I_n+(k-1)E_{ii} \]

\[P_{ij}=I_n-E_{ii}-E_{jj}+E_{ij}+E_{ji} \]

\[T_{ij}(k)=I_n+kE_{ij} \]

这种记法也可以应用于它们的逆矩阵。

行列式计算

由于方阵乘积的行列式等于方阵行列式的乘积,初等矩阵的行列式便于计算。以及初等变换等价于初等矩阵的乘法,在行列式计算中也会使用初等变换。

由于按照一定的顺序进行初等变换更加便于程序书写,行列式计算也可以使用 Gauss–Jordan 消元算法。

定理1:\(n\) 阶行列式的第 \(i_1,i_2,\cdots,i_n\) 行和第 \(j_1,j_2,\cdots,j_n\) 列取出元素做乘积。

\[a_{i_1j_1}a_{i_2j_2}\cdots a_{i_nj_n} \]

这里 \(i_1,i_2,\cdots,i_n\)\(j_1,j_2,\cdots,j_n\) 都是 \(1,2,\cdots,n\)\(n\) 个数的排列。那么这一项在行列式中的符号是 \({(-1)}^{s+t}\),其中

\[\begin{aligned} & s=\pi(i_1i_2\cdots i_n) \\ & t=\pi(j_1j_2\cdots j_n) \end{aligned} \]

定理2:行列式和它的转置行列式相等。

定理3:设行列式 \(\det A\) 的第 \(i\) 行的所有元素都可以表示成两项的和:

\[\begin{vmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ \vdots & \vdots & & \vdots \\ b_{i1}+c_{i1} & b_{i2}+c_{i2} & \cdots & b_{in}+c_{in} \\ \vdots & \vdots & & \vdots \\ a_{n1} & a_{n2} & \cdots & a_{nn} \end{vmatrix} \]

那么该行列式等于两个行列式 \(\det A_1\)\(\det A_2\) 的和。其中 \(A_1\) 的第 \(i\) 行是 \(b_{i1},b_{i2},\cdots,b_{in}\)\(A_2\) 的第 \(i\) 行是 \(c_{i1},c_{i2},\cdots,c_{in}\)\(A_1\)\(A_2\) 的其余各行都和 \(A\) 相同。同样的性质对于列来说也成立。

定理4:若在一个 \(n\) 阶行列式 \(\det A\) 中,第 \(i\) 行或第 \(j\) 列的元素除了 \(a_{ij}\) 都是 0,那么这个行列式等于 \(a_{ij}\) 和它的代数余子式 \(A_{ij}\) 的乘积。

行列式展开

由于方阵转置,行列式不变,只需介绍按行展开或按列展开之一即可。

行列式 \(\det A\) 定义为它任意一行(或一列)的所有元素与它们的对应代数余子式乘积的和。

换句话说,行列式可以使用按行(或按列)的展开式递归定义:

\[\begin{aligned} \det A &= a_{i1}A_{i1}+a_{i2}A_{i2}+\cdots+a_{in}A_{in} \\ &= \sum_{j = 1}^{n} a_{ij}A_{ij} \\ &= \sum_{j = 1}^{n} (-1)^{i + j} a_{ij} \det M_{ij} \end{aligned} \]

\[\begin{aligned} \det A &= a_{1j}A_{1j}+a_{2j}A_{2j}+\cdots+a_{nj}A_{nj} \\ &= \sum_{i = 1}^{n} a_{ij}A_{ij} \\ &= \sum_{i = 1}^{n} (-1)^{i + j} a_{ij} \det M_{ij} \end{aligned} \]

递归终点为一阶矩阵的行列式,其即为该矩阵包含的唯一一个元素。

于是有结论:

定理:行列式 \(\det A\) 的某一行(或某一列)的元素与另外一行(或另外一列)对应元素的代数余子式的乘积之和等于 0

换句话说,当 \(i\neq j\) 时:

\[a_{i1}A_{j1}+a_{i2}A_{j2}+\cdots+a_{in}A_{jn}=0 \]

\[a_{1i}A_{1j}+a_{2i}A_{2j}+\cdots+a_{ni}A_{nj}=0 \]

公理化定义

公理化定义是说,满足了某些性质的运算只能是行列式。

对于一个 \(n\) 阶矩阵 \(A\) 的运算 \(\det\),如果满足以下四个性质,称为行列式:

把一个行列式的某一行或某一列的所有元素同时乘以一个数 \(k\),等于用 \(k\) 乘这个行列式。

\[\det(D_i(k)A) = \det(AD_i(k)) = k \det A \]

交换一个行列式的两行或两列,行列式改变符号。

\[\det(P_{ij}A) = \det(AP_{ij}) = -\det A \]

把行列式的某一行或某一列的元素乘以同一数后加到另一行或另一列的对应元素上,行列式不变。

\[\det(T_{ij}(k)A) = \det(AT_{ij}(k))= \det A \]

单位矩阵的行列式为 1。

\[\det I = 1 \]

利用行列式有关初等变换的性质,可以方便手动计算更高阶的行列式。「高斯消元」法计算行列式,也用到了这个性质,时间复杂度为 \(O(n^3)\)

通过体积概念理解行列式不变性是一个非常简单的办法:

「高斯消元」法计算行列式

矩阵转置,行列式不变;

矩阵行(列)交换,行列式取反;

矩阵行(列)相加或相减,行列式不变;

矩阵行(列)所有元素同时乘以数 k,行列式等比例变大。

由此,对矩阵应用高斯消元之后,我们可以得到一个对角线矩阵,此矩阵的行列式由对角线元素之积所决定。其符号可由交换行的数量来确定(如果为奇数,则行列式的符号应颠倒)。因此,我们可以在 O(n^3) 的复杂度下使用高斯算法计算矩阵。
注意,如果在某个时候,我们在当前列中找不到非零单元,则算法应停止并返回 0。

注意,若 mod 不是质数,则需要用辗转相除法。

上述性质也有若干推论:

  • 一个行列式中某一行或某一列的公因子可以提到行列式符号的外边。
  • 如果一个行列式的某一行或某一列的元素全部是 0,那么这个行列式等于 0。
  • 如果一个行列式有两行或两列的对应元素成比例,那么这个行列式等于 0。
  • 如果一个行列式有两行或两列完全相同,那么这个行列式等于 0。

这些推论在手算行列式的时候非常常用。

posted @ 2025-03-28 15:38  ylzqwq  阅读(399)  评论(0)    收藏  举报