计算机通过主元来计算行列式,但还有另外两种方法,一种是大公式,由 n!n!n! 项置换矩阵组成;另一种是代数余子式公式。
-
主元的乘积为 2∗32∗43∗54=52 * \frac{3}{2}* \frac{4}{3}* \frac{5}{4} = 52∗23∗34∗45=5。
-
大公式有 4!=244!=244!=24 项,但只有 5 个非零项。
detA=16−4−4−4+1=5det A = 16-4-4-4+1 = 5detA=16−4−4−4+1=5
16 来自于对角线上 4 个 2 的乘积,其余的通过公式我们也都可以找到。
- 代数余子式公式用第一行的数字 2,-1,0, 0分别乘以它们的代数余子式 4, 3, 2, 1,得到 8-3 = 5。
1. 主元公式
消元过程会让主元 d1,⋯ ,dnd_1,\cdots,d_nd1,⋯,dn 最后出现在矩阵 UUU 的对角线上,如果没有行交换,那么有:
detA=(detL)(detU)=(1)(d1d2⋯dn)det A = (det L)(det U) = (1)(d_1d_2\cdots d_n)detA=(detL)(detU)=(1)(d1d2⋯dn)
如果有行交换,那么有 PA=LUPA=LUPA=LU 而且有 ∣P∣=±1|P| = \pm1∣P∣=±1,所以
detA=±(d1d2⋯dn)det A = \pm(d_1d_2\cdots d_n)detA=±(d1d2⋯dn)
如果主元的个数少于 nnn,那么 detA=0det A=0detA=0,矩阵是不可逆的。
- 例 1
- 例 2
detA=2∗32∗43∗54⋯∗n+1n=n+1det A = 2 * \frac{3}{2}* \frac{4}{3}* \frac{5}{4} \cdots *\frac{n+1}{n} = n+1detA=2∗23∗34∗45⋯∗nn+1=n+1
而且,我们可以看到,前 kkk 个主元来自于矩阵 AAA 左上角大小为 k×kk×kk×k 的矩阵 AkA_kAk。
detAk=d1d2⋯dkdet A_k = d_1d_2\cdots d_kdetAk=d1d2⋯dk
假设没有行交换,那在我们消元的过程中,有 Ak=LkUkA_k = L_kU_kAk=LkUk,因此
det Akdet Ak−1=det Ukdet Uk−1→dk=d1d2⋯dk−1dkd1d2⋯dk−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 Ak−1det Ak=det Uk−1det Uk→dk=d1d2⋯dk−1d1d2⋯dk−1dk
2. 大公式
大公式直接利用矩阵中的每一个元素来计算行列式,一个 3×33×33×3 矩阵的计算公式如下所示。
注意到,每一项乘积的三个元素都分别来自于矩阵中的三行和三列,而其前面的符号其实是由置换矩阵来决定的。
由行列式的线性性质我们可以将一个 2×22×22×2 矩阵的行列式分成四项:
其中,第一个和第四个行列式为 0,因为它们有全零列。因此,只余下 2!=22!=22!=2 项需要计算。
对于一个 3×33×33×3 的矩阵,其行列式可以分成 27 项,但只有 6 个非零项。
前面三个置换矩阵有偶数次行交换,因此其行列式为 1;而后面三个置换矩阵有奇数次行交换,因此其行列式为 -1。
因此,矩阵 AAA 的行列式是 n!n!n! 项简单行列式的和,每一项的系数是 1 或者 -1,其中简单的行列式是从每一行每一列中选取一个元素组成。
3. 代数余子式公式
利用行列式的线性性质,我们将第一行的三个元素分别提取出来,可以得到。
其中,括号里面的项称为代数余子式(cofactor),它们是 2×22×22×2 矩阵的行列式。第一行贡献出因子 a11,a12,a13a_{11},a_{12},a_{13}a11,a12,a13,余下的行贡献出代数余子式 C11,C12,C13C_{11},C_{12},C_{13}C11,C12,C13,然后行列式的值就是 a11C11+a12C12+a13C13a_{11}C_{11}+a_{12}C_{12}+a_{13}C_{13}a11C11+a12C12+a13C13。
接下来,我们需要注意符号。要计算 C1jC_{1j}C1j,我们划掉第 111 行第 jjj 列来产生一个大小为 n−1n-1n−1 的子矩阵 M1jM_{1j}M1j,然后
C1j=(−1)1+jdet M1jC_{1j} = (-1)^{1+j} det \space M_{1j}C1j=(−1)1+jdet M1j
det A=a11C11+a12C12+⋯+a1nC1ndet \space A = a_{11}C_{11}+a_{12}C_{12}+\cdots +a_{1n}C_{1n}det A=a11C11+a12C12+⋯+a1nC1n
注意,对其它行来说,也有同样的情况。对 CijC_{ij}Cij 来说,我们划掉第 iii 行第 jjj 列来产生一个大小为 n−1n-1n−1 的子矩阵 MijM_{ij}Mij。
Cij=(−1)i+jdet MijC_{ij} = (-1)^{i+j} det \space M_{ij}Cij=(−1)i+jdet Mij
det A=ai1Ci1+ai2Ci2+⋯+ainCindet \space A = a_{i1}C_{i1}+a_{i2}C_{i2}+\cdots +a_{in}C_{in}det A=ai1Ci1+ai2Ci2+⋯+ainCin
同时,行列式也可以沿着某一列进行计算。
det A=a1jC1j+a2jC2j+⋯+anjCnjdet \space A = a_{1j}C_{1j}+a_{2j}C_{2j}+\cdots +a_{nj}C_{nj}det A=a1jC1j+a2jC2j+⋯+anjCnj
代数余子式公式在矩阵中有许多零时是非常有用的。
获取更多精彩,请关注「seniusen」!