计算机通过主元来计算行列式,但还有另外两种方法,一种是大公式,由 n ! n! n! 项置换矩阵组成;另一种是代数余子式公式。

  • 主元的乘积为 2 3 2 4 3 5 4 = 5 2 * \frac{3}{2}* \frac{4}{3}* \frac{5}{4} = 5 2233445=5

  • 大公式有 4 ! = 24 4!=24 4!=24 项,但只有 5 个非零项。

d e t A = 16 4 4 4 + 1 = 5 det A = 16-4-4-4+1 = 5 detA=16444+1=5

16 来自于对角线上 4 个 2 的乘积,其余的通过公式我们也都可以找到。

  • 代数余子式公式用第一行的数字 2,-1,0, 0分别乘以它们的代数余子式 4, 3, 2, 1,得到 8-3 = 5。

1. 主元公式

消元过程会让主元 d 1 ,   , d n d_1,\cdots,d_n d1,,dn 最后出现在矩阵 U U U 的对角线上,如果没有行交换,那么有:

d e t A = ( d e t L ) ( d e t U ) = ( 1 ) ( d 1 d 2 d n ) det A = (det L)(det U) = (1)(d_1d_2\cdots d_n) detA=(detL)(detU)=(1)(d1d2dn)

如果有行交换,那么有 P A = L U PA=LU PA=LU 而且有 P = ± 1 |P| = \pm1 P=±1,所以

d e t A = ± ( d 1 d 2 d n ) det A = \pm(d_1d_2\cdots d_n) detA=±(d1d2dn)

如果主元的个数少于 n n n,那么 d e t A = 0 det A=0 detA=0,矩阵是不可逆的。

  • 例 1

  • 例 2

d e t A = 2 3 2 4 3 5 4 n + 1 n = n + 1 det A = 2 * \frac{3}{2}* \frac{4}{3}* \frac{5}{4} \cdots *\frac{n+1}{n} = n+1 detA=2233445nn+1=n+1

而且,我们可以看到,前 k k k 个主元来自于矩阵 A A A 左上角大小为 k × k k×k k×k 的矩阵 A k A_k Ak

d e t A k = d 1 d 2 d k det A_k = d_1d_2\cdots d_k detAk=d1d2dk

假设没有行交换,那在我们消元的过程中,有 A k = L k U k A_k = L_kU_k Ak=LkUk,因此

d e t <mtext>   </mtext> A k d e t <mtext>   </mtext> A k 1 = d e t <mtext>   </mtext> U k d e t <mtext>   </mtext> U k 1 d k = d 1 d 2 d k 1 d k d 1 d 2 d k 1 \frac{det\space A_k}{det \space A_{k-1}}=\frac{det\space U_k}{det \space U_{k-1}} \to d_k=\frac{d_1d_2\cdots d_{k-1}d_k}{d_1d_2\cdots d_{k-1}} det Ak1det Ak=det Uk1det Ukdk=d1d2dk1d1d2dk1dk

2. 大公式

大公式直接利用矩阵中的每一个元素来计算行列式,一个 3 × 3 3×3 3×3 矩阵的计算公式如下所示。

注意到,每一项乘积的三个元素都分别来自于矩阵中的三行和三列,而其前面的符号其实是由置换矩阵来决定的。

由行列式的线性性质我们可以将一个 2 × 2 2×2 2×2 矩阵的行列式分成四项:

其中,第一个和第四个行列式为 0,因为它们有全零列。因此,只余下 2 ! = 2 2!=2 2!=2 项需要计算。

对于一个 3 × 3 3×3 3×3 的矩阵,其行列式可以分成 27 项,但只有 6 个非零项。

前面三个置换矩阵有偶数次行交换,因此其行列式为 1;而后面三个置换矩阵有奇数次行交换,因此其行列式为 -1。

因此,矩阵 A A A 的行列式是 n ! n! n! 项简单行列式的和,每一项的系数是 1 或者 -1,其中简单的行列式是从每一行每一列中选取一个元素组成。

3. 代数余子式公式

利用行列式的线性性质,我们将第一行的三个元素分别提取出来,可以得到。

其中,括号里面的项称为代数余子式(cofactor),它们是 2 × 2 2×2 2×2 矩阵的行列式。第一行贡献出因子 a 11 a 12 a 13 a_{11},a_{12},a_{13} a11a12a13,余下的行贡献出代数余子式 C 11 C 12 C 13 C_{11},C_{12},C_{13} C11C12C13,然后行列式的值就是 a 11 C 11 + a 12 C 12 + a 13 C 13 a_{11}C_{11}+a_{12}C_{12}+a_{13}C_{13} a11C11+a12C12+a13C13

接下来,我们需要注意符号。要计算 C 1 j C_{1j} C1j,我们划掉第 1 1 1 行第 j j j 列来产生一个大小为 n 1 n-1 n1 的子矩阵 M 1 j M_{1j} M1j,然后

C 1 j = ( 1 ) 1 + j d e t <mtext>   </mtext> M 1 j C_{1j} = (-1)^{1+j} det \space M_{1j} C1j=(1)1+jdet M1j

d e t <mtext>   </mtext> A = a 11 C 11 + a 12 C 12 + + a 1 n C 1 n det \space A = a_{11}C_{11}+a_{12}C_{12}+\cdots +a_{1n}C_{1n} det A=a11C11+a12C12++a1nC1n

注意,对其它行来说,也有同样的情况。对 C i j C_{ij} Cij 来说,我们划掉第 i i i 行第 j j j 列来产生一个大小为 n 1 n-1 n1 的子矩阵 M i j M_{ij} Mij

C i j = ( 1 ) i + j d e t <mtext>   </mtext> M i j C_{ij} = (-1)^{i+j} det \space M_{ij} Cij=(1)i+jdet Mij

d e t <mtext>   </mtext> A = a i 1 C i 1 + a i 2 C i 2 + + a i n C i n det \space A = a_{i1}C_{i1}+a_{i2}C_{i2}+\cdots +a_{in}C_{in} det A=ai1Ci1+ai2Ci2++ainCin

同时,行列式也可以沿着某一列进行计算。

d e t <mtext>   </mtext> A = a 1 j C 1 j + a 2 j C 2 j + + a n j C n j det \space A = a_{1j}C_{1j}+a_{2j}C_{2j}+\cdots +a_{nj}C_{nj} det A=a1jC1j+a2jC2j++anjCnj

代数余子式公式在矩阵中有许多零时是非常有用的。

获取更多精彩,请关注「seniusen」!