L19-行列式公式和代数余子式

linear-algebra

L19-行列式公式和代数余子式

参考

这一节课主要讨论三个主题:

  • 行列式的通用求解公式 "big" formula
  • 代数余子式 cofactors formula
  • 三对角矩阵 Tridiagonal Matrix 行列式的规律

行列式求解公式

可以基于行列式的一系列特性得到**「展开」行列式**的通用方法,即把复杂的矩阵的行列式,展开为一系列简单矩阵的行列式

例如对于 2×22 \times 2 矩阵

根据行列式的 特性三之二 可以将矩阵的第一行进行线性组合式的「拆解」(保持第二行不变)

abcd=a+00+bcd=a0cd+0bcd\begin{vmatrix} a & b \\ c & d \end{vmatrix}= \begin{vmatrix} a+0 & 0+b \\ c & d \end{vmatrix}= \begin{vmatrix} a & 0 \\ c & d \end{vmatrix}+ \begin{vmatrix} 0 & b \\ c & d \end{vmatrix}

同理可以继续对这些矩阵进一步「拆解」,得到多个包含大量以零作为元素的矩阵

abcd=a0cd+0bcd=a0c0+a00d+0bc0+0b0d\begin{aligned} \begin{vmatrix} a & b \\ c & d \end{vmatrix} &= \begin{vmatrix} a & 0 \\ c & d \end{vmatrix}+ \begin{vmatrix} 0 & b \\ c & d \end{vmatrix} \\ &= \begin{vmatrix} a & {\color{Red}0 } \\ c & {\color{Red}0 } \end{vmatrix}+ \begin{vmatrix} a & 0 \\ 0 & d \end{vmatrix}+ \begin{vmatrix} 0 & b \\ c & 0 \end{vmatrix}+ \begin{vmatrix} {\color{Red}0 } & b \\ {\color{Red}0 } & d \end{vmatrix} \\ \end{aligned}

通过观察可以知道「拆解」得到的一些矩阵(带有红色标记)是奇异的/不可逆的,或根据行列式的 特性六 可知它们的行列式为 00

所以可以进一步化简

abcd=a00d+0bc0\begin{vmatrix} a & b \\ c & d \end{vmatrix}= \begin{vmatrix} a & 0 \\ 0 & d \end{vmatrix}+ \begin{vmatrix} 0 & b \\ c & 0 \end{vmatrix}

对于 3×33 \times 3 矩阵可以使用同样的算法进行拆分,简略步骤如下

a11a12a13a21a22a23a31a32a33=a11000a22000a33+a110000a230a320+0a12000a23a3100+0a120a210000a33+00a13a21000a320+00a130a220a3100\begin{aligned} \begin{vmatrix} a_{11} & a_{12} & a_{13} \\ a_{21} & a_{22} & a_{23} \\ a_{31} & a_{32} & a_{33} \end{vmatrix}=& \begin{vmatrix} a_{1{\color{red} 1}} & 0 & 0 \\ 0 & a_{2{\color{red} 2}} & 0 \\ 0 & 0 & a_{3{\color{red} 3}} \end{vmatrix}+ \begin{vmatrix} a_{1{\color{red} 1}} & 0 & 0 \\ 0 & 0 & a_{2{\color{red} 3}} \\ 0 & a_{3{\color{red} 2}} & 0 \end{vmatrix} \\ +& \begin{vmatrix} 0 & a_{1{\color{red} 2}} & 0 \\ 0 & 0 & a_{2{\color{red} 3}} \\ a_{3{\color{red} 1}} & 0 & 0 \end{vmatrix}+ \begin{vmatrix} 0 & a_{1{\color{red} 2}} & 0 \\ a_{2{\color{red} 1}} & 0 & 0 \\ 0 & 0 & a_{3{\color{red} 3}} \end{vmatrix} \\ +& \begin{vmatrix} 0 & 0 & a_{1{\color{red} 3}} \\ a_{2{\color{red} 1}} & 0 & 0 \\ 0 & a_{3{\color{red} 2}} & 0 \end{vmatrix}+ \begin{vmatrix} 0 & 0 & a_{1{\color{red} 3}} \\ 0 & a_{2{\color{red} 2}} & 0 \\ a_{3{\color{red} 1}} & 0 & 0 \end{vmatrix} \end{aligned}

可以发现在最终的表达式中「幸存」矩阵(它们的行列式为非零),每一行的非零元素的列标都不同,而且为完成的 1,2,31, 2, 3 组合,只是顺序不同

提示

结合 2×22 \times 2 矩阵和 3×33 \times 3 矩阵的例子,可以知道这些行列式为非零的「展开」矩阵/「幸存」矩阵有一个特点:矩阵的每一行、每一列都有一个元素,即不存在全为零的行或列(否则这样的矩阵的行列式就是零),就像置换矩阵的构造一样

然后对于这些「幸存」矩阵,可以再通过行交换(留意交换的次数,决定行列式的符号正负值)得到三角矩阵,再利用 特性七 求出行列式的最终值

例如对于以上 3×33 \times 3 矩阵,可以求出最终的行列式表达式

a11a12a13a21a22a23a31a32a33=a11a22a33a11a23a32a12a21a33+a12a21a33+a13a21a32a13a22a31\begin{aligned} &\begin{vmatrix} a_{11} & a_{12} & a_{13} \\ a_{21} & a_{22} & a_{23} \\ a_{31} & a_{32} & a_{33} \end{vmatrix} \\ =&a_{11}a_{22}a_{33}-a_{11}a_{23}a_{32} \\ &-a_{12}a_{21}a_{33}+a_{12}a_{21}a_{33} \\ &+a_{13}a_{21}a_{32}-a_{13}a_{22}a_{31} \end{aligned}

根据前面的两个示例的求解算法,可以推导出 An×nA_{n \times n} 矩阵行列式的通用公式

detA=n!±a1αa2βa3γanωdetA=\sum_{n!}\pm a_{1\alpha }a_{2\beta }a_{3\gamma }\dots a_{n\omega }

其中 α\alphaβ\betaγ\gamma\dotsω\omega 互不相同,而且它们是 1,2,3,,n1, 2, 3, \dots, n 的某种排列(因为它们分别表示在从每一行取一个元素的列下标,需要保证对应的列并不重复)

这些求和的式子中,其正负值各占一半,具体哪一项是正,哪一项是负,可以直接观察如果将该项的元素的列标变成 1,2,3,,n1, 2, 3, \dots, n 的顺序,需要调换元素多少次(即将矩阵变成对角矩阵),如果是奇数次则该项为负,否则为正

说明

通用公式里共有 n!n! 项相加,可以根据前面两个示例的具体求解步骤来理解

这个等式里面的每个相加项,其实都是从每一行中挑选出一个元素作为因子而构成的,而且要保证它们的列下标不能相同

那么从排列组合的角度来考虑:

  1. 首先从第一行开始挑选一个元素,那么就有 nn 种挑选的方法
  2. 当第一行所挑选的一个元素位于第 α\alpha 列,那么在挑选第二行的一个元素时,就不能挑选该列的元素,所以对于第二行而言,共有 n1n-1 种方法挑选出一个元素
  3. 依次类推,对于第三行而言,共有 n2n-2 种方法挑选出一个元素
  4. 直至最后一行,仅有 11 种可选的方法

所以综合可得,从每一个行选区一个元素相乘,共有 n×(n1)×(n2)×1=n!n \times (n-1) \times (n-2) \times \dots 1 = n! 种组合方式,所以共有 n!n! 个式子相加求和

另外根据上述的求和各项前面的正负号判定规则,可以与 置换矩阵 PP 相关联

所以就矩阵的行列式的通用公式也可以表示为

detA=n!(detPα,β,γ,,ω)a1αa2βa3γanωdetA=\sum_{n!}(detP_{\alpha, \beta, \gamma, \dots, \omega}) a_{1\alpha }a_{2\beta }a_{3\gamma }\dots a_{n\omega }

应用行列式的通用公式求解以下矩阵

0011011011001001\begin{vmatrix} 0 & 0 & 1 & 1 \\ 0 & 1 & 1 & 0 \\ 1 & 1 & 0 & 0 \\ 1 & 0 & 0 & 1 \end{vmatrix} \\

行列式的通用公式是从每一行挑选一个元素相乘(这些元素的列下标不能重复),并将它们相加

由于以上示例中的矩阵有大量的 00,挑选这些元素得到的相乘结果也为 00,所以可以进一步简化求解的规则,即从每一行挑选一个非零元素相乘(且列下标不能重复)

0011011011001001=a14a23a32a41+a13a22a31a44\begin{vmatrix} 0 & 0 & 1 & 1 \\ 0 & 1 & 1 & 0 \\ 1 & 1 & 0 & 0 \\ 1 & 0 & 0 & 1 \end{vmatrix} \\ =a_{14}a_{23}a_{32}a_{41}+a_{13}a_{22}a_{31}a_{44}

再观察各因式的列标顺序,第一个因式各元素的列标为 (4,3,2,1)(4, 3, 2, 1),如果要将各元素进行调换使得列标顺序变成 (1234)(1, 2, 3, 4) 则需要 22 次(偶数次)调换,所以该因式是正;同理,对于第二个因式各元素的列标为 (3,2,1,4)(3, 2, 1, 4),只需要 11 次(奇数次)调换,所以该因式为负,所以上式为

0011011011001001=a14a23a32a41+a13a22a31a44=1+(1)=0\begin{aligned} &\begin{vmatrix} 0 & 0 & 1 & 1 \\ 0 & 1 & 1 & 0 \\ 1 & 1 & 0 & 0 \\ 1 & 0 & 0 & 1 \end{vmatrix} \\ =&a_{14}a_{23}a_{32}a_{41}+a_{13}a_{22}a_{31}a_{44} \\ =&1+({\color{Red} -}1) \\ =&0 \end{aligned}
验证

观察示例中的矩阵可知 row1row2+row3=row4row1-row2+row3=row4,即该矩阵各行向量并不是相互独立的

由于该矩阵是不可逆的,所以它的行列式就是 00,这与使用行列式通用公式求出的值一致

代数余子式

代数余子式 Cofactor 可以将复杂的矩阵行列式通用表达式进行「化简」,写成由更小的矩形的行列式构成的形式

例如对于前面的 3×33 \times 3 矩阵的例子,如果以位于第一行的元素为公因子,对求和式子进行合并,可以得到以下形式

a11a12a13a21a22a23a31a32a33=a11a22a33a11a23a32a12a21a33+a12a21a33+a13a21a32a13a22a31=a11(a22a33a23a32)+a12(a21a33+a23a31)+a13(a21a32a22a31)\begin{aligned} &\begin{vmatrix} a_{11} & a_{12} & a_{13} \\ a_{21} & a_{22} & a_{23} \\ a_{31} & a_{32} & a_{33} \end{vmatrix} \\ =&a_{11}a_{22}a_{33}-a_{11}a_{23}a_{32} \\ &-a_{12}a_{21}a_{33}+a_{12}a_{21}a_{33} \\ &+a_{13}a_{21}a_{32}-a_{13}a_{22}a_{31} \\ =&{\color{Blue}a_{11} }{\color{Green}(a_{22}a_{33}-a_{23}a_{32})} \\ &+{\color{Blue}a_{12} }{\color{Green}(-a_{21}a_{33}+a_{23}a_{31})} \\ &+{\color{Blue}a_{13} }{\color{Green}(-a_{21}a_{32}-a_{22}a_{31})} \end{aligned}

以上操作从运算转换的角度而言,就是执行了提取公因式操作;如果将这些元素与它们在矩阵的位置相对应,那么变换所得的式子可以理解为,每一个求和项的公因子 a1αa_{1\alpha}是从第一行选取了特定的一个元素后,而余下的式子是其他行的元素的所有可能的选取情况的合集(需要保证这些元素的列下标不相同),这个表达式(绿色标记)就是代数余子式

其实这个相乘的表达式/代数余子式 cofactor 是一个矩阵的行列式,而这个矩阵是从原矩阵剔除了公因子 a1αa_{1\alpha} 所在的行和列后,剩余的元素所构成的 (n1)×(n1)(n-1) \times (n-1) 矩阵

对于 a11(a22a33a23a32){\color{Blue}a_{11} }{\color{Green}(a_{22}a_{33}-a_{23}a_{32})} 这个式子,可以将原矩阵看作如下结构

a11a22a23a32a33\begin{vmatrix} {\color{Blue} a_{11}} & {\color{Red} \otimes } & {\color{Red} \otimes } \\ {\color{Red} \otimes } & {\color{Green} a_{22}} & {\color{Green} a_{23}} \\ {\color{Red} \otimes } & {\color{Green} a_{32}} & {\color{Green} a_{33}} \end{vmatrix}
解释

当选取了第一行的 a11{\color{Blue} a_{11}} 元素作为公因子时,则第一行和第一列的元素都被剔除了,剩下的元素构成矩阵,而该矩阵的行列式正好就是 (a22a33a23a32){\color{Green}(a_{22}a_{33}-a_{23}a_{32})} 作为余下相乘的表达式

对于 a12(a21a33+a23a31){\color{Blue}a_{12} }{\color{Green}(-a_{21}a_{33}+a_{23}a_{31})} 其示意图如下

a12a21a23a31a33\begin{vmatrix} {\color{Red} \otimes} & {\color{Blue} a_{12}} & {\color{Red} \otimes} \\ {\color{Green} a_{21}} & {\color{Red} \otimes } & {\color{Green} a_{23}} \\ {\color{Green} a_{31}} & {\color{Red} \otimes } & {\color{Green} a_{33}} \end{vmatrix}

对于 a13(a21a32a22a31){\color{Blue}a_{13} }{\color{Green}(-a_{21}a_{32}-a_{22}a_{31})} 其示意图如下

a13a21a22a31a32\begin{vmatrix} {\color{Red} \otimes} & {\color{Red} \otimes} & {\color{Blue} a_{13}} \\ {\color{Green} a_{21}} & {\color{Green} a_{22}} & {\color{Red} \otimes } \\ {\color{Green} a_{31}} & {\color{Green} a_{32}} & {\color{Red} \otimes } \end{vmatrix}

C1jC_{1j} 来表示代数余子式,则以上的式子可以表示为

a11a12a13a21a22a23a31a32a33=a11C11+a12C12+a13C13\begin{vmatrix} a_{11} & a_{12} & a_{13} \\ a_{21} & a_{22} & a_{23} \\ a_{31} & a_{32} & a_{33} \end{vmatrix}= a_{11}C_{11}+a_{12}C_{12}+a_{13}C_{13}

其实并不需要以第一行的元素作为公因子来合并式子,可以从任意一行的元素开始入手

例如针对第 ii 行的元素,如果选取了第 jj 列的元素 aija_{ij},那么代数余子式 CijC_{ij} 就是指从原矩阵剔除了 aija_{ij} 这个元素所在的行和列后,剩余的元素所构成的 (n1)×(n1)(n-1) \times (n-1) 矩阵的行列式

Cij=±detA(n1)×(n1)C_{ij}=\pm detA_{(n-1) \times (n-1)} 其中 A(n1)×(n1)A_{(n-1) \times (n-1)} 是原矩阵 AA 抹去第 ii 行和第 jj 列后剩余元素构成的矩阵。而这个式子的符号的正负由 i+ji+j 的奇偶性决定,当 i+ji+j 为奇数时取负;当 i+ji+j 为偶数时取正

虽然这个变换看似简单,但是从降低矩阵的维度复杂度而言代数余子式的十分有用,即可以将一个 nn 阶矩阵的行列式,展开为一系列 (n1)(n-1) 阶矩阵的行列式;而对于每一个 (n1)(n-1) 阶矩的行列式,则可以再进一步展开为一系列的 (n2)(n-2) 阶矩阵的行列式;依此类推可以继续展开(但是式子会越来越长)

使用代数余子式求解以下矩阵的行列式

A4×4=1100111001110011\begin{vmatrix}A_{4 \times 4}\end{vmatrix} =\begin{vmatrix} 1 & 1 & 0 & 0 \\ 1 & 1 & 1 & 0 \\ 0 & 1 & 1 & 1 \\ 0 & 0 & 1 & 1 \end{vmatrix}
三对角矩阵

以上矩阵称为三对角矩阵 tridiagonal matrix

这种矩阵具有特殊的形式,矩阵中非零的元素只位于对角线上或对角线相邻的位置上

首先求出低阶的三对角矩阵的行列式的值

A1×1=1=1\begin{vmatrix}A_{1 \times 1}\end{vmatrix}= \begin{vmatrix} 1 \end{vmatrix}=1A2×2=1111=0\begin{vmatrix}A_{2 \times 2}\end{vmatrix}= \begin{vmatrix} 1 & 1 \\ 1 & 1 \end{vmatrix}=0A3×3=110111011=a111111a121101=01=1\begin{aligned} \begin{vmatrix}A_{3 \times 3}\end{vmatrix}&= \begin{vmatrix} 1 & 1 & 0 \\ 1 & 1 & 1 \\ 0 & 1 & 1 \end{vmatrix} \\ &={\color{Blue} a_{11}} \begin{vmatrix} 1 & 1 \\ 1 & 1 \end{vmatrix} {\color{Red} -}{\color{Blue} a_{12}} \begin{vmatrix} 1 & 1 \\ 0 & 1 \end{vmatrix} \\ &=0{\color{Red} -}1=-1 \end{aligned}

然后使用代数余子式,将 4×44 \times 4 矩阵的行列式展开为一系列低阶矩阵的行列式

A4×4=1100111001110011=a11110111011a12110011011=a11A3×3a12110011011\begin{aligned} \begin{vmatrix}A_{4 \times 4}\end{vmatrix}&= \begin{vmatrix} 1 & 1 & 0 & 0 \\ 1 & 1 & 1 & 0 \\ 0 & 1 & 1 & 1 \\ 0 & 0 & 1 & 1 \end{vmatrix}\\ &={\color{Blue} a_{11}} \begin{vmatrix} 1 & 1 & 0 \\ 1 & 1 & 1 \\ 0 & 1 & 1 \end{vmatrix} {\color{Red} -}{\color{Blue} a_{12}} \begin{vmatrix} 1 & 1 & 0 \\ 0 & 1 & 1 \\ 0 & 1 & 1 \end{vmatrix} \\ &={\color{Blue} a_{11}}\begin{vmatrix}A_{3 \times 3}\end{vmatrix}{\color{Red} -}{\color{Blue} a_{12}} \begin{vmatrix} 1 & 1 & 0 \\ 0 & 1 & 1 \\ 0 & 1 & 1 \end{vmatrix} \end{aligned}

对于上式的第二个求和项中的低阶矩阵,可以进一步使用代数余子式展开

A4×4=a11A3×3a12110011011=a11A3×3a12×1×A2×2=10=1\begin{aligned} \begin{vmatrix}A_{4 \times 4}\end{vmatrix}&= {\color{Blue} a_{11}}\begin{vmatrix}A_{3 \times 3}\end{vmatrix} -{\color{Blue} a_{12}} \begin{vmatrix} {\color{Red} 1} & 1 & 0 \\ 0 & 1 & 1 \\ 0 & 1 & 1 \end{vmatrix} \\ &={\color{Blue} a_{11}}\begin{vmatrix}A_{3 \times 3}\end{vmatrix} -{\color{Blue} a_{12}} \times {\color{Red} 1} \times \begin{vmatrix}A_{2 \times 2}\end{vmatrix} \\ &=-1-0=-1 \end{aligned}

其实对于各种维度的三对角矩阵 tridiagonal matrix 它们的行列式是具有规律的(递推公式)

An×n=An1×n1An2×n2\begin{vmatrix}A_{n \times n}\end{vmatrix}=\begin{vmatrix}A_{n-1 \times n-1}\end{vmatrix}-\begin{vmatrix}A_{n-2 \times n-2}\end{vmatrix}

可以通过以上例子验证这个公式

A4×4=1=A3×3A2×2=10=1\begin{vmatrix}A_{4 \times 4}\end{vmatrix}=-1=\begin{vmatrix}A_{3 \times 3}\end{vmatrix}-\begin{vmatrix}A_{2 \times 2}\end{vmatrix}=-1-0=-1A3×3=1=A2×2A1×1=01=1\begin{vmatrix}A_{3 \times 3}\end{vmatrix}=-1=\begin{vmatrix}A_{2 \times 2}\end{vmatrix}-\begin{vmatrix}A_{1 \times 1}\end{vmatrix}=0-1=-1

利用该递推公式和前面求出的一系列低阶的三对角矩阵的行列式,可以求出高阶的三对角矩阵的行列式

A5×5=A4×4A3×3=11=0\begin{vmatrix}A_{5 \times 5}\end{vmatrix}=\begin{vmatrix}A_{4 \times 4}\end{vmatrix}-\begin{vmatrix}A_{3 \times 3}\end{vmatrix}=-1-(-1)=0A6×6=A5×5A4×4=01=1\begin{vmatrix}A_{6 \times 6}\end{vmatrix}=\begin{vmatrix}A_{5 \times 5}\end{vmatrix}-\begin{vmatrix}A_{4 \times 4}\end{vmatrix}=0-(-1)=1

依次类推,可以发现三对角矩阵的行列式是具有周期性的,(矩阵从低维度到高维度的)行列式依次为 1,0,1,1,0,11, 0, -1, -1, 0, 1 周期为 66


Copyright © 2024 Ben

Theme BlogiNote

Icons from Icônes