• 线性代数学习笔记6-3:行列式的计算、代数余子式


    下面介绍两种行列式的计算方法

    根据基本性质计算行列式

    之前说过三个基本性质:

    1. 单位阵的 d e t ( I ) = 1 det(\mathbf I)=1 det(I)=1
    2. 交换行列式的两行,行列式正负反号
    3. 关于“线性性质”
      ①矩阵某一行元素乘以k,行列式变为k倍: ∣ t a t b c d ∣ = t ∣ a b c d ∣ \left|
      tatbcd" role="presentation" style="position: relative;">tatbcd
      \right|=t\left|
      abcd" role="presentation" style="position: relative;">abcd
      \right|
      tactbd =t acbd

      ②行列式的“行”有线性性(强调一行,而非整个行列式有线性性): ∣ a + a ′ b + b ′ c d ∣ = ∣ a b c d ∣ + ∣ a ′ b ′ c d ∣ \left|
      a+ab+bcd" role="presentation" style="position: relative;">a+ab+bcd
      \right|=\left|
      abcd" role="presentation" style="position: relative;">abcd
      \right|+\left|
      abcd" role="presentation" style="position: relative;">abcd
      \right|
      a+acb+bd = acbd + acbd

    由此,一般 n × n n\times n n×n行列式的计算,可以拆分为 n n n^n nn个[含有 n n n个非零元素]的行列式(这些行列式通过行交换,可以轻易计算出其值,就是所有对角线元素相乘,最多需要前面添一个负号)

    具体而言,由性质3②,先是拆分第一行(得到 n n n个行列式),在拆分第二行(之前的每个行列式又拆分出 n n n个行列式)

    例如:
    ∣ a b c d ∣ = ∣ a 0 c d ∣ + ∣ 0 b c d ∣ = ∣ a 0 c 0 ∣ + ∣ a 0 0 d ∣ + ∣ 0 b c 0 ∣ + ∣ 0 b 0 d ∣ = 0 + a d − b c + 0 = a d − b c

    |abcd|=|a0cd|+|0bcd|=|a0c0|+|a00d|+|0bc0|+|0b0d|=0+adbc+0=adbc" role="presentation" style="position: relative;">|abcd|=|a0cd|+|0bcd|=|a0c0|+|a00d|+|0bc0|+|0b0d|=0+adbc+0=adbc
    acbd = ac0d + 0cbd = ac00 + a00d + 0cb0 + 00bd =0+adbc+0=adbc

    提炼一般规律:最终分解后,有全零行/全零列的行列式都必然为0,故拆分时只需要关注「每行/每列都有非零元素」的“有用”行列式

    提炼行列式的计算公式

    根据上面的讨论, n × n n\times n n×n行列式的计算,最终可以拆分为 n ! n! n!个[含有 n n n个非零元素]的行列式
    (通过拆分本来可以得到 n n n^n nn个行列式,但其中有很多必然为0只有 n ! n! n!行列式是「每行/每列都有非零元素」的“有用”行列式,也就是说其值不是一定为0)

    具体而言,选取其中某个行列式时,先从第一行确定一个非零元素(第一行拆分出 n n n个行列式),然后从第二行确定一个非零元素不能与之前非零元素处于同一列,从而每个行列式又拆分出 n − 1 n-1 n1个行列式),以此类推

    行列式的公式表示为 det ⁡ ( A ) = ∑ n ! ± a 1 α a 2 β a 3 γ ⋯ a n ω \det (\boldsymbol{A}) = \sum\limits_{n!} { \pm {a_{1\alpha }}} {a_{2\beta }}{a_{3\gamma }} \cdots {a_{n\omega }} det(A)=n!±a1αa2βa3γa
    其中 ( α , β , γ , . . . , ω ) (\alpha,\beta,\gamma,...,\omega) (α,β,γ,...,ω)为列号 ( 1 , 2 , 3 , . . . , n ) (1,2,3,...,n) (1,2,3,...,n)的一个排列,每一项 ± \pm ±取正号/负号 取决于 通过偶数次/奇数次行交换能够得到对角阵

    例如下面的行列式,只可能拆分出两个“有用”行列式,第一个需要一次行交换得到对角阵,第二个需要两次行交换得到对角阵:
    ∣ 0 0 1 1 0 1 1 0 1 1 0 0 1 0 0 1 ∣ = ∣ 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 ∣ + ∣ 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 ∣ = − 1 + 1 = 0 \left|

    0011011011001001" role="presentation" style="position: relative;">0011011011001001
    \right|= \left|
    0010010010000001" role="presentation" style="position: relative;">0010010010000001
    \right| +\left|
    0001001001001000" role="presentation" style="position: relative;">0001001001001000
    \right|=-1+1=0 0011011011001001 = 0010010010000001 + 0001001001001000 =1+1=0

    代数余子式Cofactor formula

    代数余子式将 n n n列行列式的计算转化为多个 n − 1 n-1 n1阶行列式的计算,同时也从另一角度表述了上面进行的拆分

    本质上还是利用上面的思想,若从第一行开始拆分,一旦选定第一行的某个元素 a 1 α a_{1\alpha } a1α,(将要与 a 1 α a_{1\alpha } a1α相乘的)剩余因子只能从剩下的 n − 1 n-1 n1行和 n − 1 n-1 n1列中选出,按照之前的做法实施进一步拆分后得到若干行列式,即 ∑ ( n − 1 ) ! ± a 1 α a 2 β a 3 γ ⋯ a n ω \sum\limits_{(n-1)!}{ \pm {a_{1\alpha }}} {a_{2\beta }}{a_{3\gamma }} \cdots {a_{n\omega }} (n1)!±a1αa2βa3γa,提取公因子 a 1 α a_{1\alpha } a1α,另一部分称为代数余子式Cofactor,其值具体是什么呢?

    这里直接给出结论:
    剩余的 n − 1 n-1 n1行和 n − 1 n-1 n1列的行列式 a i j a_{ij} aij余子式minor
    将要与 a i j a_{ij} aij相乘的另一部分因子就是 [余子式+正负号] 称为 a i j a_{ij} aij代数余子式 C i j C_{ij} Cij C i j C_{ij} Cij i + j i+j i+j为偶数/奇数时取正/负

    行列式的代数余子式表示为 det ⁡ ( A ) = a 11 C 11 + a 12 C 12 + ⋯ + a 1 n C 1 n \operatorname{det}(\boldsymbol{A})=a_{11} \mathrm{C}_{11}+a_{12} \mathrm{C}_{12}+\cdots+a_{1 \mathrm{n}} \mathrm{C}_{1 \mathrm{n}} det(A)=a11C11+a12C12++a1nC1n
    上式是沿第一行展开的结果,实际上可以沿任意一行/一列展开

    计算行列式的方法小结

    之前说过,最简单的方法是主元表达式

    • 主元表达式:通过4-2中介绍的性质,将行列式化为上三角阵,此时行列式=所有主元乘积
      (有主元为0说明不可逆,则行列式为0)
    • 分解 n ! n! n!个含有大量零元素的行列式: det ⁡ ( A ) = ∑ n ! ± a 1 α a 2 β a 3 γ ⋯ a n ω \det (\boldsymbol{A}) = \sum\limits_{n!} { \pm {a_{1\alpha }}} {a_{2\beta }}{a_{3\gamma }} \cdots {a_{n\omega }} det(A)=n!±a1αa2βa3γa
    • 代数余子式表示 det ⁡ ( A ) = a 11 C 11 + a 12 C 12 + ⋯ + a 1 n C 1 n \operatorname{det}(\boldsymbol{A})=a_{11} \mathrm{C}_{11}+a_{12} \mathrm{C}_{12}+\cdots+a_{1 \mathrm{n}} \mathrm{C}_{1 \mathrm{n}} det(A)=a11C11+a12C12++a1nC1n
      原理源于上一个公式,但难度降低
  • 相关阅读:
    go工具-显示磁盘使用情况的工具diskusage
    学习笔记-FRIDA脚本系列(二)
    ansible
    工程伦理与学术道德
    零基础Linux_20(进程信号)内核态和用户态+处理信号+不可重入函数+volatile
    vue 请求代理 proxy
    ubuntu 安装 zsh、ohmyzsh并配置必要插件
    基于免费敏捷工具Leangoo领歌的Scrum敏捷管理实践
    ctfshow unserialize
    汽车纵染压制专用液压机比例阀放大器
  • 原文地址:https://blog.csdn.net/Insomnia_X/article/details/126144279