有限实矩阵乘法法则的证明
设 m , n , p , q m,n,p,q m , n , p , q 为正整数,A ∈ R m × n A\in\mathbb R^{m\times n} A ∈ R m × n 、B ∈ R n × p B\in\mathbb R^{n\times p} B ∈ R n × p 、C ∈ R p × q C\in\mathbb R^{p\times q} C ∈ R p × q 。以下只用行乘列定义与实数的有限求和。对任意输出位置 ( i , ℓ ) (i,\ell) ( i , ℓ ) ,
( ( A B ) C ) i ℓ = ∑ k = 1 p ( ∑ j = 1 n a i j b j k ) c k ℓ = ∑ j = 1 n a i j ( ∑ k = 1 p b j k c k ℓ ) = ( A ( B C ) ) i ℓ . \begin{aligned}
((AB)C)_{i\ell}
&=\sum_{k=1}^{p}\left(\sum_{j=1}^{n}a_{ij}b_{jk}\right)c_{k\ell}\\
&=\sum_{j=1}^{n}a_{ij}\left(\sum_{k=1}^{p}b_{jk}c_{k\ell}\right)
=(A(BC))_{i\ell}.
\end{aligned} (( A B ) C ) i ℓ = k = 1 ∑ p ( j = 1 ∑ n a ij b jk ) c k ℓ = j = 1 ∑ n a ij ( k = 1 ∑ p b jk c k ℓ ) = ( A ( BC ) ) i ℓ .
中间等号只交换两个有限和的求和次序,并使用实数分配律。两边同为 m × q m\times q m × q 矩阵,每个位置相等,便证明结合律;没有调换矩阵因子的次序。
对 D ∈ R n × p D\in\mathbb R^{n\times p} D ∈ R n × p ,同一定义给出
[ A ( B + D ) ] i k = ∑ j = 1 n a i j ( b j k + d j k ) = ( A B ) i k + ( A D ) i k . [A(B+D)]_{ik}=\sum_{j=1}^{n}a_{ij}(b_{jk}+d_{jk})
=(AB)_{ik}+(AD)_{ik}. [ A ( B + D ) ] ik = j = 1 ∑ n a ij ( b jk + d jk ) = ( A B ) ik + ( A D ) ik .
对 E ∈ R m × n E\in\mathbb R^{m\times n} E ∈ R m × n ,则有
[ ( A + E ) B ] i k = ∑ j = 1 n ( a i j + e i j ) b j k = ( A B ) i k + ( E B ) i k . [(A+E)B]_{ik}=\sum_{j=1}^{n}(a_{ij}+e_{ij})b_{jk}
=(AB)_{ik}+(EB)_{ik}. [( A + E ) B ] ik = j = 1 ∑ n ( a ij + e ij ) b jk = ( A B ) ik + ( EB ) ik .
所以在所写的相容大小下,两条分配律均成立。对任意实标量 c c c ,
[ ( c A ) B ] i k = ∑ j ( c a i j ) b j k = c ∑ j a i j b j k = ∑ j a i j ( c b j k ) = [ A ( c B ) ] i k , [(cA)B]_{ik}=\sum_j(ca_{ij})b_{jk}
=c\sum_j a_{ij}b_{jk}
=\sum_j a_{ij}(cb_{jk})=[A(cB)]_{ik}, [( c A ) B ] ik = j ∑ ( c a ij ) b jk = c j ∑ a ij b jk = j ∑ a ij ( c b jk ) = [ A ( c B ) ] ik ,
逐项相等便证明 ( c A ) B = c ( A B ) = A ( c B ) (cA)B=c(AB)=A(cB) ( c A ) B = c ( A B ) = A ( c B ) 。特别地,对 x , y ∈ R n x,y\in\mathbb R^n x , y ∈ R n 与实数 s , t s,t s , t ,
[ A ( s x + t y ) ] i = ∑ j a i j ( s x j + t y j ) = s ( A x ) i + t ( A y ) i . [A(sx+ty)]_i=\sum_j a_{ij}(sx_j+ty_j)
=s(Ax)_i+t(Ay)_i. [ A ( s x + t y ) ] i = j ∑ a ij ( s x j + t y j ) = s ( A x ) i + t ( A y ) i .
这证明了比较同一线性系统的解时所用的矩阵乘向量线性性质。所有恒等式都只针对大小相容的有限实矩阵,不声称任意矩阵因子可交换或可消去。
从单位矩阵建立初等矩阵
假设一个初等 行变换 ρ \rho ρ 作用于有 p p p 行的矩阵。先从单位矩阵 I p I_p I p
开始,对 I p I_p I p 做同一个初等行变换,所得矩阵记作 E ρ E_\rho E ρ 。
所有标量都属于矩阵所采用的底域;特别地,每个非零倍数 c c c 在该域中都有倒数
1 / c 1/c 1/ c 。
定义
初等行变换矩阵 与 p p p 行矩阵上的初等行变换 ρ \rho ρ 对应的初等行变换矩阵 ,就是把
ρ \rho ρ 作用在 I p I_p I p 上所得的 p × p p \times p p × p 矩阵。
这种矩阵也简称初等矩阵 ;较长的名称可以明确指出它与指定行变换的关系。
换句话说,
E ρ = ρ ( I p ) . E_\rho = \rho(I_p). E ρ = ρ ( I p ) .
这个定义有用,是因为以下定理。
定理
初等行变换等同于左乘矩阵 设 A A A 是任何有 p p p 行的矩阵,ρ \rho ρ 是一个初等行变换,并以
ρ ( A ) \rho(A) ρ ( A ) 表示把它作用于 A A A 后得到的矩阵。则
ρ ( A ) = E ρ A . \rho(A) = E_\rho A. ρ ( A ) = E ρ A . 所以,对 A A A 做这个初等行变换,等同于用同一个操作在 I p I_p I p 上得到的
初等行变换矩阵左乘 A A A 。
这里必须是左乘。初等行变换改变的是行,会把新行写成旧行的线性组合;左乘正是把
A A A 的新行写成旧行的线性组合。右乘则会混合列,不是同一件事。
维数也说明了同一点。若 A A A 是 p × n p \times n p × n 矩阵,则 E ρ E_\rho E ρ 是
p × p p \times p p × p 矩阵,所以 E ρ A E_\rho A E ρ A 有定义,而且仍是 p × n p \times n p × n 。
这里完全不要求 A A A 是方阵。相反,对这 n n n 列进行列变换的矩阵大小为 n × n n \times n n × n ,并从右边相乘。
为什么左乘会执行指定行变换
证明
对三类初等行变换逐行验证 把任意 p × n p \times n p × n 矩阵 A A A 的各行记作
a 1 , a 2 , … , a p a_1,a_2,\ldots,a_p a 1 , a 2 , … , a p ,并以 e k T e_k^{\mathsf T} e k T 表示 I p I_p I p 的第 k k k 行。
基本等式
e k T A = a k e_k^{\mathsf T}A=a_k e k T A = a k 表示左乘矩阵的一行会选取 A A A 的相应行。现在逐类检查。
对 R i ↔ R j R_i\leftrightarrow R_j R i ↔ R j ,E ρ E_\rho E ρ 的第 i i i 行是
e j T e_j^{\mathsf T} e j T ,第 j j j 行是 e i T e_i^{\mathsf T} e i T ,其余第 k k k 行仍是
e k T e_k^{\mathsf T} e k T 。因此 E ρ A E_\rho A E ρ A 恰好交换 A A A 的第 i , j i,j i , j 行。
对 R i ← c R i R_i\leftarrow cR_i R i ← c R i (c ≠ 0 c\ne0 c = 0 ),E ρ E_\rho E ρ 的第 i i i 行是
c e i T c e_i^{\mathsf T} c e i T ,其余行不变。因此乘积的第 i i i 行为
( c e i T ) A = c a i , (c e_i^{\mathsf T})A=c a_i, ( c e i T ) A = c a i ,
而每个 k ≠ i k\ne i k = i 的第 k k k 行仍为 a k a_k a k 。
对 R j ← R j + c R i R_j\leftarrow R_j+cR_i R j ← R j + c R i (i ≠ j i\ne j i = j ),E ρ E_\rho E ρ 的第 j j j 行是
e j T + c e i T e_j^{\mathsf T}+c e_i^{\mathsf T} e j T + c e i T ,其余行不变,所以新的第 j j j 行为
( e j T + c e i T ) A = a j + c a i , (e_j^{\mathsf T}+c e_i^{\mathsf T})A=a_j+c a_i, ( e j T + c e i T ) A = a j + c a i ,
正是指定的行加法。
三类情形穷尽了初等行变换,因此对每个相容矩阵 A A A 都有
E ρ A = ρ ( A ) E_\rho A=\rho(A) E ρ A = ρ ( A ) 。这个证明没有声称任意改动行的方式都对应一个初等矩阵;
ρ \rho ρ 必须是刚才检查的三类操作之一。
作用于增广矩阵
假设 A x = b Ax=b A x = b 由增广矩阵 [ A ∣ b ] [A\mid b] [ A ∣ b ] 表示。初等行变换必须作用于整个增广
矩阵,不能只改其中一边。相应的乘法等式是
E ρ [ A ∣ b ] = [ E ρ A ∣ E ρ b ] . E_\rho[A\mid b]=[E_\rho A\mid E_\rho b]. E ρ [ A ∣ b ] = [ E ρ A ∣ E ρ b ] .
因此,系数和右端常数会接受完全相同的行组合。向量 x x x 满足 A x = b Ax=b A x = b ,当且仅当
它满足 E ρ A x = E ρ b E_\rho Ax=E_\rho b E ρ A x = E ρ b :正向可把原等式左乘 E ρ E_\rho E ρ ,反向则施加逆向
初等行变换。这才是解集保持不变的严格理由。
若只改 A A A 而固定 b b b ,或只改 b b b ,一般会得到另一个方程组。增广线只是视觉
上的分隔,不是行变换可以中途停止的边界。
一串初等行变换就是一个矩阵乘积
真正的用途不只是表示一个初等步骤,而是把整串初等行变换写成一个矩阵乘积。
定理
一串初等行变换的乘积表示 假设
A 1 → ρ 1 A 2 → ρ 2 A 3 → ρ 3 ⋯ → ρ k A k + 1 . A_1 \xrightarrow{\rho_1} A_2 \xrightarrow{\rho_2} A_3
\xrightarrow{\rho_3} \cdots \xrightarrow{\rho_k} A_{k+1}. A 1 ρ 1 A 2 ρ 2 A 3 ρ 3 ⋯ ρ k A k + 1 . 则
A k + 1 = E ρ k E ρ k − 1 ⋯ E ρ 2 E ρ 1 A 1 . A_{k+1}
= E_{\rho_k}E_{\rho_{k-1}}\cdots E_{\rho_2}E_{\rho_1}A_1. A k + 1 = E ρ k E ρ k − 1 ⋯ E ρ 2 E ρ 1 A 1 . 这里每个 ρ j \rho_j ρ j 都必须是作用于同样行数矩阵的初等行变换。这个乘积表示整串
操作,但乘积本身未必仍是单一个初等行变换矩阵。
这个公式中的顺序很重要。第一个行变换最靠近 A 1 A_1 A 1 ,因为它最先作用:
A 2 = E ρ 1 A 1 , A 3 = E ρ 2 A 2 = E ρ 2 E ρ 1 A 1 . A_2 = E_{\rho_1}A_1,
\qquad
A_3 = E_{\rho_2}A_2 = E_{\rho_2}E_{\rho_1}A_1. A 2 = E ρ 1 A 1 , A 3 = E ρ 2 A 2 = E ρ 2 E ρ 1 A 1 .
例题
合并两个行变换 令
A = [ 1 0 1 0 2 1 1 0 0 ] . A =
\begin{bmatrix}
1 & 0 & 1\\
0 & 2 & 1\\
1 & 0 & 0
\end{bmatrix}. A = 1 0 1 0 2 0 1 1 0 . 依次做
ρ 1 : R 2 ← R 2 + R 1 , ρ 2 : R 1 ← R 1 + 2 R 2 . \rho_1:\ R_2 \leftarrow R_2 + R_1,
\qquad
\rho_2:\ R_1 \leftarrow R_1 + 2R_2. ρ 1 : R 2 ← R 2 + R 1 , ρ 2 : R 1 ← R 1 + 2 R 2 . 对应的行变换矩阵是
E ρ 1 = [ 1 0 0 1 1 0 0 0 1 ] , E ρ 2 = [ 1 2 0 0 1 0 0 0 1 ] . E_{\rho_1} =
\begin{bmatrix}
1 & 0 & 0\\
1 & 1 & 0\\
0 & 0 & 1
\end{bmatrix},
\qquad
E_{\rho_2} =
\begin{bmatrix}
1 & 2 & 0\\
0 & 1 & 0\\
0 & 0 & 1
\end{bmatrix}. E ρ 1 = 1 1 0 0 1 0 0 0 1 , E ρ 2 = 1 0 0 2 1 0 0 0 1 . 两个操作完成后,结果就是
E ρ 2 E ρ 1 A = [ 3 2 0 1 1 0 0 0 1 ] [ 1 0 1 0 2 1 1 0 0 ] = [ 3 4 5 1 2 2 1 0 0 ] . E_{\rho_2}E_{\rho_1}A
=
\begin{bmatrix}
3&2&0\\
1&1&0\\
0&0&1
\end{bmatrix}
\begin{bmatrix}
1&0&1\\
0&2&1\\
1&0&0
\end{bmatrix}
=
\begin{bmatrix}
3&4&5\\
1&2&2\\
1&0&0
\end{bmatrix}. E ρ 2 E ρ 1 A = 3 1 0 2 1 0 0 0 1 1 0 1 0 2 0 1 1 0 = 3 1 1 4 2 0 5 2 0 . 若不想直接相乘 E ρ 2 E ρ 1 E_{\rho_2}E_{\rho_1} E ρ 2 E ρ 1 ,也可以把同一串行变换按同一顺序作用在
I 3 I_3 I 3 上,所得矩阵就是合并后的左乘矩阵。最后的数值结果也确认:第二步使用的
是已经更新后的第 2 2 2 行。
反向行变换与逆矩阵
每个初等行变换都有反向操作:
R j ← R j + c R i R_j \leftarrow R_j + cR_i R j ← R j + c R i 的反向操作是
R j ← R j − c R i R_j \leftarrow R_j - cR_i R j ← R j − c R i ;
R i ← c R i R_i \leftarrow cR_i R i ← c R i (其中 c ≠ 0 c \ne 0 c = 0 )的反向操作是
R i ← ( 1 / c ) R i R_i \leftarrow (1/c)R_i R i ← ( 1/ c ) R i ;
交换两行的反向操作仍然是同一次交换。
这给出一个精确的矩阵表述。
定理
初等行变换矩阵都是可逆矩阵 每个初等行变换矩阵都是可逆的。它的逆矩阵,就是反向初等行变换所对应的
初等行变换矩阵。
证明
为什么反向矩阵是双侧逆矩阵 设 E ρ E_\rho E ρ 表示初等行变换 ρ \rho ρ ,而 E ρ − 1 E_{\rho^{-1}} E ρ − 1 表示它的反向初等
操作。对每个有 p p p 行的矩阵 X X X ,先做 ρ \rho ρ 再撤销,都会恢复 X X X 。由左乘
定理,
E ρ − 1 E ρ X = X . E_{\rho^{-1}}E_\rho X=X. E ρ − 1 E ρ X = X . 这个等式对每个这样的 X X X 都成立;特别取 X = I p X=I_p X = I p ,得到
E ρ − 1 E ρ = I p E_{\rho^{-1}}E_\rho=I_p E ρ − 1 E ρ = I p 。先做反向操作再做 ρ \rho ρ ,同理得到
E ρ E ρ − 1 = I p E_\rho E_{\rho^{-1}}=I_p E ρ E ρ − 1 = I p 。因此
E ρ − 1 = E ρ − 1 . E_\rho^{-1}=E_{\rho^{-1}}. E ρ − 1 = E ρ − 1 . 具体来说,交换两行的逆仍是同一次交换;乘以 c ≠ 0 c\ne0 c = 0 的逆是乘以 1 / c 1/c 1/ c ;
把第 i i i 行的 c c c 倍加到第 j j j 行,则由加上 − c -c − c 倍第 i i i 行来撤销。
例如,若
E = [ 1 0 0 3 1 0 0 0 1 ] E =
\begin{bmatrix}
1 & 0 & 0\\
3 & 1 & 0\\
0 & 0 & 1
\end{bmatrix} E = 1 3 0 0 1 0 0 0 1
表示 R 2 ← R 2 + 3 R 1 R_2 \leftarrow R_2 + 3R_1 R 2 ← R 2 + 3 R 1 ,则
E − 1 = [ 1 0 0 − 3 1 0 0 0 1 ] E^{-1} =
\begin{bmatrix}
1 & 0 & 0\\
-3 & 1 & 0\\
0 & 0 & 1
\end{bmatrix} E − 1 = 1 − 3 0 0 1 0 0 0 1
表示 R 2 ← R 2 − 3 R 1 R_2 \leftarrow R_2 - 3R_1 R 2 ← R 2 − 3 R 1 。
这就是初等行变换可逆的代数原因,也解释了为什么行化简和可逆矩阵有密切关系。
证明
先撤销最后一步操作 设 E 1 , … , E k E_1,\ldots,E_k E 1 , … , E k 按时间顺序编码同一组 p p p 行矩阵上的操作,合并左乘矩阵就是 J = E k ⋯ E 1 J=E_k\cdots E_1 J = E k ⋯ E 1 。每个 E j − 1 E_j^{-1} E j − 1 表示对应初等行变换的反向操作。要恢复输入,首先必须撤销 E k E_k E k ,因为它是最后一次对行所作的改变;然后依次撤销 E k − 1 , … , E 1 E_{k-1},\ldots,E_1 E k − 1 , … , E 1 。因此,反向链的合并矩阵为
K = E 1 − 1 E 2 − 1 ⋯ E k − 1 . K=E_1^{-1}E_2^{-1}\cdots E_k^{-1}. K = E 1 − 1 E 2 − 1 ⋯ E k − 1 . 这里必须区分两种次序:反向操作的时间顺序从 E k − 1 E_k^{-1} E k − 1 开始;写成乘积时,最先作用的因子却放在最靠近待恢复矩阵的位置。以三步为例,由结合律可得
K J = E 1 − 1 E 2 − 1 ( E 3 − 1 E 3 ) E 2 E 1 = E 1 − 1 ( E 2 − 1 E 2 ) E 1 = I p . KJ=E_1^{-1}E_2^{-1}(E_3^{-1}E_3)E_2E_1
=E_1^{-1}(E_2^{-1}E_2)E_1=I_p. K J = E 1 − 1 E 2 − 1 ( E 3 − 1 E 3 ) E 2 E 1 = E 1 − 1 ( E 2 − 1 E 2 ) E 1 = I p . 另一个乘积 J K JK J K 则从相邻的 E 1 E 1 − 1 E_1E_1^{-1} E 1 E 1 − 1 开始消去,最后同样得到 I p I_p I p 。任意有限链都可这样逐对消去。整个论证没有交换因子,也不要求被变换的矩阵本身是方阵。
把这个读法用于前面的两步例子:合并矩阵是 E ρ 2 E ρ 1 E_{\rho_2}E_{\rho_1} E ρ 2 E ρ 1 ,所以逆矩阵是 E ρ 1 − 1 E ρ 2 − 1 E_{\rho_1}^{-1}E_{\rho_2}^{-1} E ρ 1 − 1 E ρ 2 − 1 。从最终矩阵开始,先从第一行减去当前第二行的两倍,第一行便恢复为 [ 1 0 1 ] [1\ 0\ 1] [ 1 0 1 ] ;再从第二行减去刚恢复的第一行,第二行便恢复为 [ 0 2 1 ] [0\ 2\ 1] [ 0 2 1 ] 。撤销操作是在逐个恢复中间状态,乘积次序也就随之确定,无须另背一个口诀。
有限消元必停止,并保持解集
设 A ∈ R m × n A\in\mathbb R^{m\times n} A ∈ R m × n 、b ∈ R m b\in\mathbb R^m b ∈ R m ,其中 m , n m,n m , n 是有限正整数。允许的行变换为交换不同的两行、以非零标量乘一行,以及把一行的标量倍加到另一行。逆变换分别为同一交换、乘以倒数,以及减去该倍数。因此对整个增广阵施行变换恰好保持 A x = b Ax=b A x = b 的解集:新方程由旧方程推出,逆变换给出反向蕴含。每个行变换也等于左乘把同一变换施于单位矩阵所得的可逆初等矩阵。
从左到右扫描系数列,并记录下一未使用行。若当前列在未使用行中有非零元素,就将其所在行交换到下一位置,除以非零主元,再从其余各行减去适当倍数,清空该列其他元素,然后推进未使用行指标。若该列所有未使用位置都是零,就跳过该列。先前主元列始终是单位列:当前未使用行在这些列均为零,所以新主元行以及后续减法保留这些零与原主元。总共只有 n n n 次列扫描及至多 min ( m , n ) \min(m,n) min ( m , n ) 个主元,每次只作有限个行变换,故算法必停止。最后非零系数行的主元列依次递增,各主元上下均为零,其余系数行全零。这证明下面使用的简化阶梯形确实能得到,而非假设它最终出现。
解的分类与齐次自由度
令 r r r 为系数部分的主元数。若某个零系数行对应非零变换后右端,就出现不可能的方程 0 = c 0=c 0 = c ,因此无解。否则任意指定 n − r n-r n − r 个非主元变量的实数值。每个主元行都把其主元变量写成变换后右端减去自由变量的已知线性组合,其中没有其他主元变量。这些公式既构造解,也恢复每一个解。若 r = n r=n r = n ,解唯一;若 r < n r<n r < n ,改变自由变量就改变解向量,故有无穷多解。
对 A z = 0 Az=0 A z = 0 ,全部自由变量取零给出零解。若 r < n r<n r < n ,将一个自由变量设为一,其余设为零,再按主元公式求解,就构造出非零齐次解;若 r = n r=n r = n ,公式迫使所有齐次变量为零。对相容系统固定一个解 x p x_p x p ,两解相减表明每个解均为 x p + z x_p+z x p + z ,其中 A z = 0 Az=0 A z = 0 ;代入又证明反向包含。
当 A A A 为方阵且每列都有主元时,系数阶梯形为 I I I 。有限个初等矩阵之积 E E E 满足 E A = I EA=I E A = I 。因为 E E E 可逆,A = E − 1 A=E^{-1} A = E − 1 ,故也有 A E = I AE=I A E = I ,所以 E E E 是双侧逆。若缺少主元,上面构造的非零齐次解排除可逆性。这也证明可逆时,对 [ A ∣ I ] [A\mid I] [ A ∣ I ] 作相同行变换会得到 [ I ∣ A − 1 ] [I\mid A^{-1}] [ I ∣ A − 1 ] 。
从较小矩阵构造行列式
定义
子矩阵、子式与余因子 设 A = [ a i j ] A=[a_{ij}] A = [ a ij ] 是一个 n × n n\times n n × n 矩阵,其中 n ≥ 2 n\ge2 n ≥ 2 。给定
1 ≤ i , j ≤ n 1\le i,j\le n 1 ≤ i , j ≤ n ,同时删去第 i i i 行与第 j j j 列,所得的
( n − 1 ) × ( n − 1 ) (n-1)\times(n-1) ( n − 1 ) × ( n − 1 ) 矩阵记为子矩阵 A ( i ∣ j ) A(i\mid j) A ( i ∣ j ) 。
属于项 a i j a_{ij} a ij 的子式 是标量
M i j = det ( A ( i ∣ j ) ) M_{ij}=\det\bigl(A(i\mid j)\bigr) M ij = det ( A ( i ∣ j ) ) 属于项 a i j a_{ij} a ij 的余因子 是带符号标量
C i j = ( − 1 ) i + j M i j C_{ij}=(-1)^{i+j}M_{ij} C ij = ( − 1 ) i + j M ij 符号形成左上角为正的棋盘:
[ + − + ⋯ − + − ⋯ + − + ⋯ ⋮ ⋮ ⋮ ⋱ ] \begin{bmatrix}
+&-&+&\cdots\\
-&+&-&\cdots\\
+&-&+&\cdots\\
\vdots&\vdots&\vdots&\ddots
\end{bmatrix} + − + ⋮ − + − ⋮ + − + ⋮ ⋯ ⋯ ⋯ ⋱ A ( i ∣ j ) A(i\mid j) A ( i ∣ j ) 表示一个矩阵,M i j M_{ij} M ij 是该矩阵的行列式,
C i j = ( − 1 ) i + j M i j C_{ij}=(-1)^{i+j}M_{ij} C ij = ( − 1 ) i + j M ij 则是加上符号后的标量。明确区分这三个对象,
就不会把符号错误地乘两次。
定义
行列式的递归定义 对于 1 × 1 1\times1 1 × 1 矩阵 [ a 11 ] [a_{11}] [ a 11 ] ,定义
det ( [ a 11 ] ) = a 11 \det([a_{11}])=a_{11} det ([ a 11 ]) = a 11 对于 n > 1 n>1 n > 1 的 n × n n\times n n × n 矩阵,沿第一行定义
det ( A ) = ∑ j = 1 n a 1 j C 1 j = ∑ j = 1 n ( − 1 ) 1 + j a 1 j M 1 j \det(A)=\sum_{j=1}^{n}a_{1j}C_{1j}
=\sum_{j=1}^{n}(-1)^{1+j}a_{1j}M_{1j} det ( A ) = j = 1 ∑ n a 1 j C 1 j = j = 1 ∑ n ( − 1 ) 1 + j a 1 j M 1 j 这是定义,还不是关于其他行或列的定理。每个子式的阶数都是 n − 1 n-1 n − 1 ,
所以反复使用定义最终会到达 1 × 1 1\times1 1 × 1 基本情形。不需要约定
0 × 0 0\times0 0 × 0 行列式:子矩阵和子式的定义只用于 n ≥ 2 n\ge2 n ≥ 2 。
从递归行列式证明任意余因子展开
设 A A A 为实 n × n n\times n n × n 矩阵,n ≥ 1 n\ge1 n ≥ 1 ,行列式由一阶基例和第一行递归定义。令 S n S_n S n 为 1 , … , n 1,\ldots,n 1 , … , n 的排列集合;定义逆序数 inv ( σ ) \operatorname{inv}(\sigma) inv ( σ ) 为满足 r < s r<s r < s 且 σ ( r ) > σ ( s ) \sigma(r)>\sigma(s) σ ( r ) > σ ( s ) 的数对个数,并令 sgn ( σ ) = ( − 1 ) inv ( σ ) \operatorname{sgn}(\sigma)=(-1)^{\operatorname{inv}(\sigma)} sgn ( σ ) = ( − 1 ) inv ( σ ) 。
若 σ ( i ) = j \sigma(i)=j σ ( i ) = j ,删去位置 i i i 与值 j j j ,保持其余位置及值的相对次序,得到排列 τ ∈ S n − 1 \tau\in S_{n-1} τ ∈ S n − 1 。设位置 i i i 之前有 u u u 个值小于 j j j ;被删去的逆序共有 ( i − 1 − u ) + ( j − 1 − u ) = i + j − 2 − 2 u (i-1-u)+(j-1-u)=i+j-2-2u ( i − 1 − u ) + ( j − 1 − u ) = i + j − 2 − 2 u 个,故
sgn ( σ ) = ( − 1 ) i + j sgn ( τ ) . \operatorname{sgn}(\sigma)=(-1)^{i+j}\operatorname{sgn}(\tau). sgn ( σ ) = ( − 1 ) i + j sgn ( τ ) .
定义 P n ( A ) = ∑ σ ∈ S n sgn ( σ ) ∏ r = 1 n a r , σ ( r ) P_n(A)=\sum_{\sigma\in S_n}\operatorname{sgn}(\sigma)\prod_{r=1}^n a_{r,\sigma(r)} P n ( A ) = ∑ σ ∈ S n sgn ( σ ) ∏ r = 1 n a r , σ ( r ) 。n = 1 n=1 n = 1 时它就是递归行列式。n > 1 n>1 n > 1 时,按 σ ( 1 ) = j \sigma(1)=j σ ( 1 ) = j 分组并用符号恒等式,得 P n ( A ) = ∑ j ( − 1 ) 1 + j a 1 j P n − 1 ( A ( 1 ∣ j ) ) P_n(A)=\sum_j(-1)^{1+j}a_{1j}P_{n-1}(A(1\mid j)) P n ( A ) = ∑ j ( − 1 ) 1 + j a 1 j P n − 1 ( A ( 1 ∣ j )) 。归纳法因而证明 P n ( A ) = det A P_n(A)=\det A P n ( A ) = det A 。
现在固定任意行 i i i ,将同一有限排列和按 σ ( i ) = j \sigma(i)=j σ ( i ) = j 分组。删除操作与对应子矩阵的全部排列一一对应,因此
det A = ∑ j = 1 n ( − 1 ) i + j a i j det ( A ( i ∣ j ) ) . \det A=\sum_{j=1}^n(-1)^{i+j}a_{ij}\det(A(i\mid j)). det A = j = 1 ∑ n ( − 1 ) i + j a ij det ( A ( i ∣ j )) .
固定任意列 j j j 时,每个排列恰有一个位置 i i i 满足 σ ( i ) = j \sigma(i)=j σ ( i ) = j ;按该位置分组即得
det A = ∑ i = 1 n ( − 1 ) i + j a i j det ( A ( i ∣ j ) ) . \det A=\sum_{i=1}^n(-1)^{i+j}a_{ij}\det(A(i\mid j)). det A = i = 1 ∑ n ( − 1 ) i + j a ij det ( A ( i ∣ j )) .
两个展开公式均用于 n ≥ 2 n\ge2 n ≥ 2 ,没有引入空行列式约定。此证明不预设换行交错规则或行列式乘积定理。
结构规则为何成立
零行、零列与唯一支撑项
定理
有零行或零列时行列式为零 如果方阵的一整行或一整列的每个项都是零,则它的行列式为零。
定理
某行或某列至多有一个非零项 设 C C C 是 n ≥ 2 n\ge2 n ≥ 2 阶方阵。若第 k k k 行除 c k ℓ c_{k\ell} c k ℓ 外都为零,则
det ( C ) = c k ℓ ( − 1 ) k + ℓ det ( C ( k ∣ ℓ ) ) \det(C)=c_{k\ell}(-1)^{k+\ell}\det\bigl(C(k\mid\ell)\bigr) det ( C ) = c k ℓ ( − 1 ) k + ℓ det ( C ( k ∣ ℓ ) ) 若第 ℓ \ell ℓ 列除 c k ℓ c_{k\ell} c k ℓ 外都为零,也有同一公式。即使
c k ℓ = 0 c_{k\ell}=0 c k ℓ = 0 ,这个表述仍然成立。
当 n = 1 n=1 n = 1 时,含有零行的矩阵就是 [ 0 ] [0] [ 0 ] ,按基本定义其行列式为零。当
n ≥ 2 n\ge2 n ≥ 2 时,使用任意行展开定理沿该行展开。每一项都含有一个零项作为
因子,所以每一项都为零,因而 det ( A ) = 0 \det(A)=0 det ( A ) = 0 。
零列可以用归纳法直接证明,这样能看清零列如何传递。n = 1 n=1 n = 1 时,唯一
具有零列的 1 × 1 1\times1 1 × 1 矩阵是 [ 0 ] [0] [ 0 ] ,其行列式为零。假设结论对
n = k n=k n = k 成立。设 ( k + 1 ) × ( k + 1 ) (k+1)\times(k+1) ( k + 1 ) × ( k + 1 ) 矩阵 C C C 的第 ℓ \ell ℓ 列全为零,
沿第一行展开。第 ℓ \ell ℓ 项的因子已经是零。对其余每一项,删去第一
行和某个 j ≠ ℓ j\ne\ell j = ℓ 的列;原来的零列仍在所得 k × k k\times k k × k 子矩阵中,
只是在 j < ℓ j\lt\ell j < ℓ 时列指标向左移动。由归纳假设,每个这样的子矩阵的行列式
都是零,所以整行展开的每一项都为零,得到 det ( C ) = 0 \det(C)=0 det ( C ) = 0 。
若某行除一个项外全为零,沿该行展开即可;若某列除一个项外全为零,
沿第 k k k 行展开。ℓ \ell ℓ 项保留下来,而对每个 j ≠ ℓ j\ne\ell j = ℓ ,子矩阵
C ( k ∣ j ) C(k\mid j) C ( k ∣ j ) 都继承了原第 ℓ \ell ℓ 列的零列,因此其行列式为零。最后只
剩下 c k ℓ ( − 1 ) k + ℓ det ( C ( k ∣ ℓ ) ) c_{k\ell}(-1)^{k+\ell}\det(C(k\mid\ell)) c k ℓ ( − 1 ) k + ℓ det ( C ( k ∣ ℓ )) 。这正是稀疏行或
列能把计算缩成一个子式的原因。
三角矩阵
定理
三角矩阵定理 若 T T T 是上三角或下三角矩阵,则
det ( T ) = t 11 t 22 ⋯ t n n \det(T)=t_{11}t_{22}\cdots t_{nn} det ( T ) = t 11 t 22 ⋯ t nn
用 n n n 作归纳证明上三角情形。n = 1 n=1 n = 1 时结论就是行列式的定义。假设
结论对上三角 k × k k\times k k × k 矩阵成立,令 T T T 为 k + 1 k+1 k + 1 阶上三角矩阵。最
后一行除最后一项 t k + 1 , k + 1 t_{k+1,k+1} t k + 1 , k + 1 外都是零。沿最后一行展开,只有这一项
保留,而且符号 ( − 1 ) 2 k + 2 = 1 (-1)^{2k+2}=1 ( − 1 ) 2 k + 2 = 1 :
det ( T ) = t k + 1 , k + 1 det ( T ( k + 1 ∣ k + 1 ) ) \det(T)=t_{k+1,k+1}\det\bigl(T(k+1\mid k+1)\bigr) det ( T ) = t k + 1 , k + 1 det ( T ( k + 1 ∣ k + 1 ) )
保留下来的子矩阵仍是上三角矩阵,对角线为
t 11 , … , t k k t_{11},\ldots,t_{kk} t 11 , … , t kk 。由归纳假设,它的行列式是
t 11 ⋯ t k k t_{11}\cdots t_{kk} t 11 ⋯ t kk ,于是得到完整的对角线乘积。下三角情形类似但可
沿第一行展开:第一行只可能留下 t 11 t_{11} t 11 ,删去第一行第一列后的子矩阵
仍是下三角矩阵,对角线从 t 22 t_{22} t 22 到 t n n t_{nn} t nn 。
固定一行时的多重线性
定理
固定一行时的多重线性 固定除第 p p p 行外的每一行。若新第 p p p 行是 α u + β v \alpha u+\beta v αu + β v ,则
det ( 相同其他各行,但第 p 行为 α u + β v ) = α det ( 相同其他各行,但第 p 行为 u ) + β det ( 相同其他各行,但第 p 行为 v ) \det(\text{相同其他各行,但第 }p\text{ 行为 }\alpha u+\beta v)
=\alpha\det(\text{相同其他各行,但第 }p\text{ 行为 }u)
+\beta\det(\text{相同其他各行,但第 }p\text{ 行为 }v) det ( 相同其他各行 , 但第 p 行为 αu + β v ) = α det ( 相同其他各行 , 但第 p 行为 u ) + β det ( 相同其他各行 , 但第 p 行为 v )
当 n = 1 n=1 n = 1 时,基本定义直接给出
det ( [ α a + β b ] ) = α a + β b = α det ( [ a ] ) + β det ( [ b ] ) \det([\alpha a+\beta b])=\alpha a+\beta b
=\alpha\det([a])+\beta\det([b]) det ([ α a + β b ]) = α a + β b = α det ([ a ]) + β det ([ b ])
这就证明了 1 × 1 1\times1 1 × 1 情形。
当 n ≥ 2 n\ge2 n ≥ 2 时,固定除第 p p p 行外的每一行。设矩阵 A , B , C A,B,C A , B , C 在这些固定行上完全相同,
而第 p p p 行满足 c p = α a p + β b p c_p=\alpha a_p+\beta b_p c p = α a p + β b p 。对每个列指标 j j j ,删
去第 p p p 行后得到相同的矩阵:
A ( p ∣ j ) = B ( p ∣ j ) = C ( p ∣ j ) A(p\mid j)=B(p\mid j)=C(p\mid j) A ( p ∣ j ) = B ( p ∣ j ) = C ( p ∣ j )
沿第 p p p 行展开 det ( C ) \det(C) det ( C ) ,再用每个项的关系
c p j = α a p j + β b p j c_{pj}=\alpha a_{pj}+\beta b_{pj} c p j = α a p j + β b p j 和分配律,得到
det ( C ) = ∑ j = 1 n ( α a p j + β b p j ) ( − 1 ) p + j det ( C ( p ∣ j ) ) = α det ( A ) + β det ( B ) \begin{aligned}
\det(C)
&=\sum_{j=1}^{n}(\alpha a_{pj}+\beta b_{pj})(-1)^{p+j}\det(C(p\mid j))\\
&=\alpha\det(A)+\beta\det(B)
\end{aligned} det ( C ) = j = 1 ∑ n ( α a p j + β b p j ) ( − 1 ) p + j det ( C ( p ∣ j )) = α det ( A ) + β det ( B )
关键正是其他每一行都固定;同时改变两行是另一条命题。
相邻换行与相同行
定理
若有两行相同,行列式必为零 若一个方阵有两行完全相同,则它的行列式等于 0 0 0 。
设 A A A 的相邻两行是 r q , r q + 1 r_q,r_{q+1} r q , r q + 1 ,交换这两行得到 B B B 。沿
A A A 的第 q q q 行展开,沿 B B B 中已经移动到第 q + 1 q+1 q + 1 行的同一行
r q r_q r q 展开。对每个列指标 j j j ,两次删去该行后留下的子矩阵次序相同,
但符号相反,因为
( − 1 ) q + 1 + j = − ( − 1 ) q + j (-1)^{q+1+j}=-(-1)^{q+j} ( − 1 ) q + 1 + j = − ( − 1 ) q + j
逐项比较便得 det ( B ) = − det ( A ) \det(B)=-\det(A) det ( B ) = − det ( A ) 。位置 p < q p\lt q p < q 的两行交换可以由
2 ( q − p ) − 1 2(q-p)-1 2 ( q − p ) − 1 次相邻交换组成,这是奇数次,所以同样会使行列式变号。
若 A A A 的第 p p p 行与第 q q q 行相同,交换它们后矩阵仍是 A A A 本身。换行
结论于是给出 det ( A ) = − det ( A ) \det(A)=-\det(A) det ( A ) = − det ( A ) 。由于这里的项是实数,
2 det ( A ) = 0 2\det(A)=0 2 det ( A ) = 0 ,所以 det ( A ) = 0 \det(A)=0 det ( A ) = 0 。这个证明没有调用下一节才会出现的行
替换规则。
指标与计算策略
每一项都要同时保留三个对象:所选项、删去一行一列后得到的子矩阵,以及取该子矩阵行列式所得的子式。先按原矩阵中的行列位置写出棋盘符号,再计算子式。若继续展开子式,应使用子式自己的局部指标;局部指标不会取代外层余因子的符号。
任意行、任意列展开定理使展开线可以有策略地选择。优先选择零多或剩余子式较简单的行或列,并在计算前说明理由。零项会立即删去分支;零子式则必须由它自己的计算证明。第一行递归式定义行列式,任意行列展开则是允许这种计算选择的定理。
转置把关于行的行列式恒等式转为关于列的恒等式。利用对一列的线性性,可以分离线性组合中的一个系数:替换一列后,其余各项都因出现重复列而消失。这个消去关系给出克拉默法则,并把它与伴随矩阵恒等式联系起来。
本节的矩阵与标量均取实数;凡写出行列式,所涉及的矩阵均为方阵。
转置不会改变行列式
定理
转置矩阵的行列式 对每个方阵 A A A ,
det ( A T ) = det ( A ) . \det(A^T)=\det(A). det ( A T ) = det ( A ) .
虽然递归定义采用第一行展开,转置仍然保持行列式的值不变。
证明
用基本矩阵分解证明转置不改变行列式 若 A A A 奇异,则 A T A^T A T 也奇异:把任一个逆矩阵等式转置,就会把 A T A^T A T
的逆矩阵变成 A A A 的逆矩阵。因此两边的行列式都为零。若 A A A 可逆,写成
A = E 1 E 2 ⋯ E k A=E_1E_2\cdots E_k A = E 1 E 2 ⋯ E k 交换行或把一行乘以非零标量的基本矩阵转置后不变;加法基本矩阵
I + c E i j I+cE_{ij} I + c E ij 转置为 I + c E j i I+cE_{ji} I + c E ji ,仍是加法基本矩阵,行列式为一。因此
det ( E r T ) = det ( E r ) \det(E_r^T)=\det(E_r) det ( E r T ) = det ( E r ) ,而
A T = E k T ⋯ E 2 T E 1 T A^T=E_k^T\cdots E_2^TE_1^T A T = E k T ⋯ E 2 T E 1 T 使用行列式乘积公式就得到 det ( A T ) = det ( A ) \det(A^T)=\det(A) det ( A T ) = det ( A ) 。矩阵因子顺序虽然反转,
但行列式值是可以交换顺序相乘的标量。这个证明使用 7.2 的分解与行变换结果,为 7.1 已陈述的列展开提供推导,而没有在证明中使用列展开。
定理
可沿任意一列作余因子展开 设 A = [ a i j ] A=[a_{ij}] A = [ a ij ] 是 n ≥ 2 n\ge2 n ≥ 2 阶方阵,固定列指标 j j j 。记 M i j M_{ij} M ij 为子式,C i j = ( − 1 ) i + j M i j C_{ij}=(-1)^{i+j}M_{ij} C ij = ( − 1 ) i + j M ij 为余因子,则
det ( A ) = a 1 j C 1 j + a 2 j C 2 j + ⋯ + a n j C n j . \det(A)=a_{1j}C_{1j}+a_{2j}C_{2j}+\cdots+a_{nj}C_{nj}. det ( A ) = a 1 j C 1 j + a 2 j C 2 j + ⋯ + a nj C nj . 等价地,
det ( A ) = ∑ i = 1 n ( − 1 ) i + j a i j M i j . \det(A)=\sum_{i=1}^n (-1)^{i+j}a_{ij}M_{ij}. det ( A ) = i = 1 ∑ n ( − 1 ) i + j a ij M ij .
因此,你可以沿行展开,也可以沿列展开。真正重要的不是方向,而是你
选中的那条行或列是否能令子式最容易算。
为了看清列公式从何而来,固定第 j j j 列。记 A ( i ∣ j ) A(i|j) A ( i ∣ j ) 为删去第 i i i 行与第 j j j 列后得到的矩阵。元素 a i j a_{ij} a ij 在 A T A^T A T 中位于第 j j j 行;删去该行与第 i i i 列后得到
( A T ) ( j ∣ i ) = ( A ( i ∣ j ) ) T (A^T)(j\mid i)=(A(i\mid j))^T ( A T ) ( j ∣ i ) = ( A ( i ∣ j ) ) T
根据转置不变性,这两个子矩阵的行列式相同。因此沿 A T A^T A T 的第 j j j 行展开,就是
det ( A T ) = ∑ i = 1 n ( − 1 ) j + i a i j det ( ( A T ) ( j ∣ i ) ) = ∑ i = 1 n ( − 1 ) i + j a i j det ( A ( i ∣ j ) ) \det(A^T)=\sum_{i=1}^n(-1)^{j+i}a_{ij}\det((A^T)(j\mid i))
=\sum_{i=1}^n(-1)^{i+j}a_{ij}\det(A(i\mid j)) det ( A T ) = i = 1 ∑ n ( − 1 ) j + i a ij det (( A T ) ( j ∣ i )) = i = 1 ∑ n ( − 1 ) i + j a ij det ( A ( i ∣ j ))
而这等于 det ( A ) \det(A) det ( A ) ,正是 A A A 沿第 j j j 列的展开。
例题
沿着零较多的列去展开 令
A = [ 1 7 0 6 9 8 0 1 5 ] . A=
\begin{bmatrix}
1&7&0\\
6&9&8\\
0&1&5
\end{bmatrix}. A = 1 6 0 7 9 1 0 8 5 . 第三列有一个零,所以沿第三列展开:
det ( A ) = 0 ⋅ C 13 + 8 C 23 + 5 C 33 . \det(A)=
0\cdot C_{13}
+8C_{23}
+5C_{33}. det ( A ) = 0 ⋅ C 13 + 8 C 23 + 5 C 33 . 因此
det ( A ) = − 8 ∣ 1 7 0 1 ∣ + 5 ∣ 1 7 6 9 ∣ = − 8 ( 1 ) + 5 ( 9 − 42 ) = − 173. \det(A)
=-8
\begin{vmatrix}
1&7\\
0&1
\end{vmatrix}
+5
\begin{vmatrix}
1&7\\
6&9
\end{vmatrix}
=-8(1)+5(9-42)=-173. det ( A ) = − 8 1 0 7 1 + 5 1 6 7 9 = − 8 ( 1 ) + 5 ( 9 − 42 ) = − 173. 同一个答案当然也可以用行展开得到,但挑对列会令算式短很多。
列变换遵守同一套模式
由于转置不改变行列式,每一条关于行变换的规则,都有一条完全对应的
列变换版本。
定理
列变换对行列式的影响 设 B B B 是由方阵 A A A 做一次基本列变换得到。
交换两个不同的列 p p p 与 q q q ,行列式乘上 − 1 -1 − 1 。
把第 p p p 列乘上 β \beta β ,行列式也乘上 β \beta β ;若变换要可逆,要求
β ≠ 0 \beta\ne0 β = 0 。
若 p ≠ q p\ne q p = q ,把第 q q q 列改成 C q + c C p C_q+cC_p C q + c C p ,行列式不变。
这些规则就是把行规则应用到 A T A^T A T ,再使用转置不变性。第三条必须区分来源
列与目标列。固定其他列时,行列式对一列是线性的;有两列相同的矩阵行列
式为零。这两点正是克拉默替换中多余项消失的原因。
常见错误
不要把一列加到自己身上 只有 p ≠ q p\ne q p = q 时,C q ← C q + c C p C_q\leftarrow C_q+cC_p C q ← C q + c C p 才是保持行列式的列加法。如果
p = q p=q p = q ,新列是 ( 1 + c ) C q (1+c)C_q ( 1 + c ) C q ,行列式会乘以 1 + c 1+c 1 + c ,不会自动保持不变。
例题
用列变换制造零 考虑
C = [ 3 2 − 1 4 1 6 − 3 − 1 2 ] . C=
\begin{bmatrix}
3&2&-1\\
4&1&6\\
-3&-1&2
\end{bmatrix}. C = 3 4 − 3 2 1 − 1 − 1 6 2 . 按时间顺序做列变换 C 1 ← C 1 − C 2 C_1\leftarrow C_1-C_2 C 1 ← C 1 − C 2 ,再做
C 1 ← C 1 + C 3 C_1\leftarrow C_1+C_3 C 1 ← C 1 + C 3 ;每一步都使用更新后的第一列:
[ 3 2 − 1 4 1 6 − 3 − 1 2 ] ⟶ [ 1 2 − 1 3 1 6 − 2 − 1 2 ] . \begin{bmatrix}
3&2&-1\\
4&1&6\\
-3&-1&2
\end{bmatrix}
\longrightarrow
\begin{bmatrix}
1&2&-1\\
3&1&6\\
-2&-1&2
\end{bmatrix}. 3 4 − 3 2 1 − 1 − 1 6 2 ⟶ 1 3 − 2 2 1 − 1 − 1 6 2 . 第一步之后,第二步给出
[ 1 2 − 1 3 1 6 − 2 − 1 2 ] ⟶ [ 0 2 − 1 9 1 6 0 − 1 2 ] \begin{bmatrix}
1&2&-1\\
3&1&6\\
-2&-1&2
\end{bmatrix}
\longrightarrow
\begin{bmatrix}
0&2&-1\\
9&1&6\\
0&-1&2
\end{bmatrix} 1 3 − 2 2 1 − 1 − 1 6 2 ⟶ 0 9 0 2 1 − 1 − 1 6 2 这两步都只是“某列加上另一列倍数”,所以行列式没有改变。现在沿第一
列展开:
det ( C ) = 9 ( − 1 ) 2 + 1 ∣ 2 − 1 − 1 2 ∣ = − 9 ( 4 − 1 ) = − 27. \det(C)=
9(-1)^{2+1}
\begin{vmatrix}
2&-1\\
-1&2
\end{vmatrix}
=-9(4-1)=-27. det ( C ) = 9 ( − 1 ) 2 + 1 2 − 1 − 1 2 = − 9 ( 4 − 1 ) = − 27. 位置 ( 2 , 1 ) (2,1) ( 2 , 1 ) 的负号不能遗漏。根据哪些操作能够产生有用的零,选择行变换或列变换,并在每一步使用更新后的矩阵。
伴随矩阵把所有余因子一次性收集起来
单个余因子可以处理一次展开;伴随矩阵则把所有余因子集中到同一个矩
阵中。
定义
伴随矩阵 对 n × n n\times n n × n 且 n ≥ 2 n\ge2 n ≥ 2 的矩阵 A = [ a i j ] A=[a_{ij}] A = [ a ij ] ,用 C i j C_{ij} C ij 表示 a i j a_{ij} a ij 的余因子,
先写出余因子矩阵:
[ C 11 C 12 ⋯ C 1 n C 21 C 22 ⋯ C 2 n ⋮ ⋮ ⋱ ⋮ C n 1 C n 2 ⋯ C n n ] . \begin{bmatrix}
C_{11}&C_{12}&\cdots&C_{1n}\\
C_{21}&C_{22}&\cdots&C_{2n}\\
\vdots&\vdots&\ddots&\vdots\\
C_{n1}&C_{n2}&\cdots&C_{nn}
\end{bmatrix}. C 11 C 21 ⋮ C n 1 C 12 C 22 ⋮ C n 2 ⋯ ⋯ ⋱ ⋯ C 1 n C 2 n ⋮ C nn . 把这个余因子矩阵转置,便得到 伴随矩阵
adj ( A ) = [ C 11 C 21 ⋯ C n 1 C 12 C 22 ⋯ C n 2 ⋮ ⋮ ⋱ ⋮ C 1 n C 2 n ⋯ C n n ] . \operatorname{adj}(A)=
\begin{bmatrix}
C_{11}&C_{21}&\cdots&C_{n1}\\
C_{12}&C_{22}&\cdots&C_{n2}\\
\vdots&\vdots&\ddots&\vdots\\
C_{1n}&C_{2n}&\cdots&C_{nn}
\end{bmatrix}. adj ( A ) = C 11 C 12 ⋮ C 1 n C 21 C 22 ⋮ C 2 n ⋯ ⋯ ⋱ ⋯ C n 1 C n 2 ⋮ C nn . 对于 1 × 1 1\times1 1 × 1 的基例,定义 det ( [ a ] ) = a \det([a])=a det ([ a ]) = a 与 adj ( [ a ] ) = [ 1 ] \operatorname{adj}([a])=[1] adj ([ a ]) = [ 1 ] 。于是 [ a ] [ 1 ] = [ a ] = det ( [ a ] ) I 1 [a][1]=[a]=\det([a])I_1 [ a ] [ 1 ] = [ a ] = det ([ a ]) I 1 。下面的余因子恒等式证明处理 n ≥ 2 n\ge2 n ≥ 2 。
定理
伴随矩阵恒等式与逆矩阵公式 对每个方阵 A A A ,包括奇异矩阵,
A adj ( A ) = det ( A ) I . A\,\operatorname{adj}(A)=\det(A)I. A adj ( A ) = det ( A ) I . 若 det ( A ) ≠ 0 \det(A)\neq0 det ( A ) = 0 ,则 A A A 可逆,而且
A − 1 = 1 det ( A ) adj ( A ) . A^{-1}=\frac{1}{\det(A)}\operatorname{adj}(A). A − 1 = det ( A ) 1 adj ( A ) .
证明
伴随矩阵恒等式的对角与非对角情形 下面的证明假设 n ≥ 2 n\ge2 n ≥ 2 ;1 × 1 1\times1 1 × 1 基例已在上面定义。
乘积 A adj ( A ) A \operatorname{adj}(A) A adj ( A ) 的 ( i , j ) (i,j) ( i , j ) 元素是
( A adj ( A ) ) i j = ∑ k = 1 n a i k C j k \bigl(A\operatorname{adj}(A)\bigr)_{ij}=\sum_{k=1}^n a_{ik}C_{jk} ( A adj ( A ) ) ij = k = 1 ∑ n a ik C jk 当 i = j i=j i = j 时,这是沿第 i i i 行的余因子展开,所以等于 det ( A ) \det(A) det ( A ) 。当
i ≠ j i\ne j i = j 时,用第 i i i 行替换 A A A 的第 j j j 行,得到 B B B 。B B B 有两行
相同,所以 det ( B ) = 0 \det(B)=0 det ( B ) = 0 。沿被替换的第 j j j 行展开时,删去第 j j j 行也
删去了替换内容;因此使用的余因子正好是 A A A 中的 C j k C_{jk} C jk 。于是
0 = det ( B ) = ∑ k = 1 n a i k C j k 0=\det(B)=\sum_{k=1}^n a_{ik}C_{jk} 0 = det ( B ) = k = 1 ∑ n a ik C jk 所以对角元是 det ( A ) \det(A) det ( A ) ,非对角元是零。只有在 det ( A ) ≠ 0 \det(A)\ne0 det ( A ) = 0 时才可以
除以这个标量并得到逆矩阵;奇异时恒等式仍然成立,但不能除以行列式。
例题
由伴随矩阵重建 2×2 逆矩阵公式 令
A = [ a b c d ] , det ( A ) = a d − b c ≠ 0. A=
\begin{bmatrix}
a&b\\
c&d
\end{bmatrix},
\qquad
\det(A)=ad-bc\neq0. A = [ a c b d ] , det ( A ) = a d − b c = 0. 其余因子矩阵是
[ d − c − b a ] , \begin{bmatrix}
d&-c\\
-b&a
\end{bmatrix}, [ d − b − c a ] , 所以
adj ( A ) = [ d − b − c a ] . \operatorname{adj}(A)=
\begin{bmatrix}
d&-b\\
-c&a
\end{bmatrix}. adj ( A ) = [ d − c − b a ] . 因此
A − 1 = 1 a d − b c [ d − b − c a ] . A^{-1}=
\frac{1}{ad-bc}
\begin{bmatrix}
d&-b\\
-c&a
\end{bmatrix}. A − 1 = a d − b c 1 [ d − c − b a ] . 熟悉的 2 × 2 2\times2 2 × 2 逆矩阵公式,就是伴随矩阵恒等式在二阶情形下的写法。直接相乘可见:
A adj ( A ) = [ a d − b c 0 0 a d − b c ] = ( a d − b c ) I 2 A\operatorname{adj}(A)=\begin{bmatrix}ad-bc&0\\0&ad-bc\end{bmatrix}=(ad-bc)I_2 A adj ( A ) = [ a d − b c 0 0 a d − b c ] = ( a d − b c ) I 2 伴随矩阵必须取余因子矩阵的转置。若直接使用未转置的余因子矩阵
[ d − c − b a ] \begin{bmatrix}d&-c\\-b&a\end{bmatrix} [ d − b − c a ] ,乘积一般会出现 a d − b 2 ad-b^2 a d − b 2 、a b − a c ab-ac ab − a c 、c d − b d cd-bd c d − b d 与
a d − c 2 ad-c^2 a d − c 2 ,既不是对角线上同一个标量,也不会让非对角元为零。
克拉默法则是逐个坐标求解
定理
克拉默法则 令 A ∈ M n ( R ) A\in M_n(\mathbb{R}) A ∈ M n ( R ) 满足 det ( A ) ≠ 0 \det(A)\ne0 det ( A ) = 0 ,并令
b ∈ R n b\in\mathbb{R}^n b ∈ R n 。对每个 j j j ,只把 A A A 的第 j j j 列改成 b b b ,得到
矩阵 M j M_j M j 。
若 x x x 是系统
A x = b Ax=b A x = b 的唯一解,则
x j = det ( M j ) det ( A ) . x_j=\frac{\det(M_j)}{\det(A)}. x j = det ( A ) det ( M j ) .
每个坐标都由一个行列式比值表示,明确显示它对系数矩阵与右端向量的依赖。
证明
固定一列的线性性隔离出 x_j 把 A A A 的列写成 a 1 , … , a n a_1,\ldots,a_n a 1 , … , a n 。因为 det ( A ) ≠ 0 \det(A)\ne0 det ( A ) = 0 ,系统有唯一解,且
b = x 1 a 1 + ⋯ + x n a n b=x_1a_1+\cdots+x_na_n b = x 1 a 1 + ⋯ + x n a n 在 M j M_j M j 中固定第 j j j 列以外的所有列,只在第 j j j 列代入这个和。由列的
线性性,
det ( M j ) = ∑ k = 1 n x k det ( a 1 , … , a j − 1 , a k , a j + 1 , … , a n ) \det(M_j)=\sum_{k=1}^n x_k\det(a_1,\ldots,a_{j-1},a_k,a_{j+1},\ldots,a_n) det ( M j ) = k = 1 ∑ n x k det ( a 1 , … , a j − 1 , a k , a j + 1 , … , a n ) 当 k ≠ j k\ne j k = j 时,行列式中有两列相同,所以该项为零;剩下的 k = j k=j k = j 项是
x j det ( A ) x_j \det(A) x j det ( A ) 。因此
det ( M j ) = x j det ( A ) , x j = det ( M j ) det ( A ) \det(M_j)=x_j\det(A),
\qquad x_j=\frac{\det(M_j)}{\det(A)} det ( M j ) = x j det ( A ) , x j = det ( A ) det ( M j ) 替换过程中列的顺序从未改变,所以没有额外的符号。
替换一列为何能隔离一个未知量
下面的视觉说明会追踪克拉默法则背后的行列式逻辑:把其中一列换成右侧
向量,使用列线性,再看重复列如何令多余项消失。
对于 n ≥ 2 n\ge2 n ≥ 2 ,已建立的逆矩阵公式给出了同一个坐标公式的另一种读法。因为 det ( A ) ≠ 0 \det(A)\ne0 det ( A ) = 0 ,有 adj ( A ) = det ( A ) A − 1 \operatorname{adj}(A)=\det(A)A^{-1} adj ( A ) = det ( A ) A − 1 。先用 A − 1 A^{-1} A − 1 左乘 A x = b Ax=b A x = b ,再代入这个恒等式,得到
det ( A ) x = adj ( A ) b x j = ∑ i = 1 n C i j b i det ( A ) \det(A)x=\operatorname{adj}(A)b
\qquad x_j=\frac{\sum_{i=1}^n C_{ij}b_i}{\det(A)} det ( A ) x = adj ( A ) b x j = det ( A ) ∑ i = 1 n C ij b i
这个分子正好是 det ( M j ) \det(M_j) det ( M j ) :沿替换后的第 j j j 列展开 M j M_j M j 。删去该列后,向量 b b b 被删去,留下的子式与 A A A 中相同,因此附在 b i b_i b i 上的余因子就是 C i j C_{ij} C ij 。所以伴随矩阵路线与固定一列的线性性路线最终给出相同的带符号和。对于 n = 1 n=1 n = 1 ,写 A = [ a ] A=[a] A = [ a ] 、b = [ b 1 ] b=[b_1] b = [ b 1 ] 且 a ≠ 0 a\ne0 a = 0 ;此时直接得到 x 1 = b 1 / a x_1=b_1/a x 1 = b 1 / a 。
例题
3×3 伴随矩阵与三个替换行列式 令
A = [ 1 2 3 1 0 1 1 1 − 1 ] , b = [ 2 3 1 ] A=\begin{bmatrix}1&2&3\\1&0&1\\1&1&-1\end{bmatrix},
\qquad b=\begin{bmatrix}2\\3\\1\end{bmatrix} A = 1 1 1 2 0 1 3 1 − 1 , b = 2 3 1 沿第一行展开:
det ( A ) = 1 ( − 1 ) − 2 ( − 2 ) + 3 ( 1 ) = 6 \det(A)=1(-1)-2(-2)+3(1)=6 det ( A ) = 1 ( − 1 ) − 2 ( − 2 ) + 3 ( 1 ) = 6 余因子矩阵为
[ − 1 2 1 5 − 4 1 2 2 − 2 ] \begin{bmatrix}-1&2&1\\5&-4&1\\2&2&-2\end{bmatrix} − 1 5 2 2 − 4 2 1 1 − 2 所以
adj ( A ) = [ − 1 5 2 2 − 4 2 1 1 − 2 ] \operatorname{adj}(A)=\begin{bmatrix}-1&5&2\\2&-4&2\\1&1&-2\end{bmatrix} adj ( A ) = − 1 2 1 5 − 4 1 2 2 − 2 把第一、第二、第三列分别替换成 b b b :
M 1 = [ 2 2 3 3 0 1 1 1 − 1 ] , M 2 = [ 1 2 3 1 3 1 1 1 − 1 ] , M 3 = [ 1 2 2 1 0 3 1 1 1 ] M_1=\begin{bmatrix}2&2&3\\3&0&1\\1&1&-1\end{bmatrix},\quad
M_2=\begin{bmatrix}1&2&3\\1&3&1\\1&1&-1\end{bmatrix},\quad
M_3=\begin{bmatrix}1&2&2\\1&0&3\\1&1&1\end{bmatrix} M 1 = 2 3 1 2 0 1 3 1 − 1 , M 2 = 1 1 1 2 3 1 3 1 − 1 , M 3 = 1 1 1 2 0 1 2 3 1 沿第一行计算得到
det ( M 1 ) = − 2 + 8 + 9 = 15 det ( M 2 ) = − 4 + 4 − 6 = − 6 det ( M 3 ) = − 3 + 4 + 2 = 3 \det(M_1)=-2+8+9=15\qquad
\det(M_2)=-4+4-6=-6\qquad
\det(M_3)=-3+4+2=3 det ( M 1 ) = − 2 + 8 + 9 = 15 det ( M 2 ) = − 4 + 4 − 6 = − 6 det ( M 3 ) = − 3 + 4 + 2 = 3 因此
( x 1 , x 2 , x 3 ) = ( 15 6 , − 6 6 , 3 6 ) = ( 5 2 , − 1 , 1 2 ) (x_1,x_2,x_3)=\left(\frac{15}{6},\frac{-6}{6},\frac36\right)
=\left(\frac52,-1,\frac12\right) ( x 1 , x 2 , x 3 ) = ( 6 15 , 6 − 6 , 6 3 ) = ( 2 5 , − 1 , 2 1 ) 代回三行分别得到 5 / 2 − 2 + 3 / 2 = 2 5/2-2+3/2=2 5/2 − 2 + 3/2 = 2 、5 / 2 + 1 / 2 = 3 5/2+1/2=3 5/2 + 1/2 = 3 、
5 / 2 − 1 − 1 / 2 = 1 5/2-1-1/2=1 5/2 − 1 − 1/2 = 1 ,与 b b b 一致。
这些数值还提供了对符号与伴随矩阵路线的独立检查。把上面列出的伴随矩阵乘以 b b b ,得到
adj ( A ) b = [ 15 − 6 3 ] \operatorname{adj}(A)b=\begin{bmatrix}15\\-6\\3\end{bmatrix} adj ( A ) b = 15 − 6 3
因此伴随矩阵恒等式给出 x = adj ( A ) b / det ( A ) x=\operatorname{adj}(A)b/\det(A) x = adj ( A ) b / det ( A ) ,恰好是三个替换行列式所得的向量。例如第一个分量是 − 1 ( 2 ) + 5 ( 3 ) + 2 ( 1 ) = 15 -1(2)+5(3)+2(1)=15 − 1 ( 2 ) + 5 ( 3 ) + 2 ( 1 ) = 15 ;余因子矩阵中的符号在相乘前已经包含。
例题
用克拉默法则解一个 2×2 系统 求解
{ 2 x 1 + x 2 = 5 , x 1 + 3 x 2 = 7. \begin{cases}
2x_1+x_2=5,\\
x_1+3x_2=7.
\end{cases} { 2 x 1 + x 2 = 5 , x 1 + 3 x 2 = 7. 写成
A = [ 2 1 1 3 ] , b = [ 5 7 ] . A=
\begin{bmatrix}
2&1\\
1&3
\end{bmatrix},
\qquad
b=
\begin{bmatrix}
5\\
7
\end{bmatrix}. A = [ 2 1 1 3 ] , b = [ 5 7 ] . 先算
det ( A ) = 2 ⋅ 3 − 1 ⋅ 1 = 5. \det(A)=2\cdot3-1\cdot1=5. det ( A ) = 2 ⋅ 3 − 1 ⋅ 1 = 5. 把第一列换成 b b b :
M 1 = [ 5 1 7 3 ] , det ( M 1 ) = 15 − 7 = 8. M_1=
\begin{bmatrix}
5&1\\
7&3
\end{bmatrix},
\qquad
\det(M_1)=15-7=8. M 1 = [ 5 7 1 3 ] , det ( M 1 ) = 15 − 7 = 8. 把第二列换成 b b b :
M 2 = [ 2 5 1 7 ] , det ( M 2 ) = 14 − 5 = 9. M_2=
\begin{bmatrix}
2&5\\
1&7
\end{bmatrix},
\qquad
\det(M_2)=14-5=9. M 2 = [ 2 1 5 7 ] , det ( M 2 ) = 14 − 5 = 9. 因此
x 1 = 8 5 , x 2 = 9 5 . x_1=\frac{8}{5},
\qquad
x_2=\frac{9}{5}. x 1 = 5 8 , x 2 = 5 9 . 代回可检查结果:2 ( 8 / 5 ) + 9 / 5 = 5 2(8/5)+9/5=5 2 ( 8/5 ) + 9/5 = 5 ,以及 8 / 5 + 3 ( 9 / 5 ) = 7 8/5+3(9/5)=7 8/5 + 3 ( 9/5 ) = 7 。
常见错误
常见错误
克拉默法则不是所有线性系统都可用 克拉默法则要求系数矩阵必须是方阵,而且其行列式非零。若系数矩阵不是方阵,或者系数矩阵本身奇异,克拉默法则便不能使用。即使条件满足,
对大系统来说,它通常也比高斯消元慢。
反例模式
替换行列式全为零不能判定奇异系统 令 A = diag ( 1 , 0 , 0 ) A=\operatorname{diag}(1,0,0) A = diag ( 1 , 0 , 0 ) ,这是一个非零奇异矩阵。若
b = e 1 = ( 1 , 0 , 0 ) T b=e_1=(1,0,0)^T b = e 1 = ( 1 , 0 , 0 ) T ,方程为 x 1 = 1 x_1=1 x 1 = 1 、0 = 0 0=0 0 = 0 、0 = 0 0=0 0 = 0 ,解为 ( 1 , s , t ) (1,s,t) ( 1 , s , t ) 。若
b = e 2 = ( 0 , 1 , 0 ) T b=e_2=(0,1,0)^T b = e 2 = ( 0 , 1 , 0 ) T ,第二个方程为 0 = 1 0=1 0 = 1 ,因此系统无解。
明确写出替换后的列三元组。对 b = e 1 b=e_1 b = e 1 ,( M 1 ) = ( e 1 , 0 , 0 ) (M_1)=(e_1,0,0) ( M 1 ) = ( e 1 , 0 , 0 ) 、
( M 2 ) = ( e 1 , e 1 , 0 ) (M_2)=(e_1,e_1,0) ( M 2 ) = ( e 1 , e 1 , 0 ) 、( M 3 ) = ( e 1 , 0 , e 1 ) (M_3)=(e_1,0,e_1) ( M 3 ) = ( e 1 , 0 , e 1 ) ;每个行列式都因含零列或
重复列而为零。对 b = e 2 b=e_2 b = e 2 ,( M 1 ) = ( e 2 , 0 , 0 ) (M_1)=(e_2,0,0) ( M 1 ) = ( e 2 , 0 , 0 ) 、( M 2 ) = ( e 1 , e 2 , 0 ) (M_2)=(e_1,e_2,0) ( M 2 ) = ( e 1 , e 2 , 0 ) 、
( M 3 ) = ( e 1 , 0 , e 2 ) (M_3)=(e_1,0,e_2) ( M 3 ) = ( e 1 , 0 , e 2 ) ;每个三元组都含零列而使行列式为零,其中 M 1 M_1 M 1
含有两列零向量。因此六个形式比值全都是未定义的 0 / 0 0/0 0/0 。使用克拉默法则
前必须要求 det ( A ) ≠ 0 \det(A)\ne0 det ( A ) = 0 。奇异系统应对增广矩阵行化简,检查相容性与自由
变量。
快速检查
解答 · 答案 不会。det ( A T ) = det ( A ) \det(A^T)=\det(A) det ( A T ) = det ( A ) 。
解答 · 答案 把某一列改成“原本那一列加上另一条不同列的倍数”,会保留行列式。
解答 · 答案 当系数矩阵是方阵而且可逆,也就是说它的行列式非零时,才可使用克拉
默法则。
练习
思考检查
用列展开计算 det [ 1 0 2 3 4 5 0 0 6 ] \det\begin{bmatrix}1&0&2\\3&4&5\\0&0&6\end{bmatrix} det 1 3 0 0 4 0 2 5 6 。
解答 · 引导解答 沿第二列展开:
det = 4 ( − 1 ) 2 + 2 ∣ 1 2 0 6 ∣ = 4 ( 6 ) = 24. \det=
4(-1)^{2+2}
\begin{vmatrix}
1&2\\
0&6
\end{vmatrix}
=4(6)=24. det = 4 ( − 1 ) 2 + 2 1 0 2 6 = 4 ( 6 ) = 24.
思考检查
对 A = [ 1 2 3 4 ] A=\begin{bmatrix}1&2\\3&4\end{bmatrix} A = [ 1 3 2 4 ] ,写出 adj ( A ) \operatorname{adj}(A) adj ( A ) 。
解答 · 引导解答 余因子是 C 11 = 4 C_{11}=4 C 11 = 4 、C 12 = − 3 C_{12}=-3 C 12 = − 3 、C 21 = − 2 C_{21}=-2 C 21 = − 2 、C 22 = 1 C_{22}=1 C 22 = 1 ,因此
adj ( A ) = [ 4 − 2 − 3 1 ] . \operatorname{adj}(A)=
\begin{bmatrix}
4&-2\\
-3&1
\end{bmatrix}. adj ( A ) = [ 4 − 3 − 2 1 ] .
思考检查
用克拉默法则求系统 x 1 + x 2 = 3 x_1+x_2=3 x 1 + x 2 = 3 、2 x 1 − x 2 = 0 2x_1-x_2=0 2 x 1 − x 2 = 0 的 x 1 x_1 x 1 。 只需要 det ( A ) \det(A) det ( A ) 与 det ( M 1 ) \det(M_1) det ( M 1 ) 。
解答 · 引导解答 此时
A = [ 1 1 2 − 1 ] , b = [ 3 0 ] . A=
\begin{bmatrix}
1&1\\
2&-1
\end{bmatrix},
\qquad
b=
\begin{bmatrix}
3\\
0
\end{bmatrix}. A = [ 1 2 1 − 1 ] , b = [ 3 0 ] . 所以
det ( A ) = − 1 − 2 = − 3 , M 1 = [ 3 1 0 − 1 ] , det ( M 1 ) = − 3. \det(A)=-1-2=-3,
\qquad
M_1=
\begin{bmatrix}
3&1\\
0&-1
\end{bmatrix},
\qquad
\det(M_1)=-3. det ( A ) = − 1 − 2 = − 3 , M 1 = [ 3 0 1 − 1 ] , det ( M 1 ) = − 3. 因此
x 1 = det ( M 1 ) det ( A ) = 1. x_1=\frac{\det(M_1)}{\det(A)}=1. x 1 = det ( A ) det ( M 1 ) = 1.
相关笔记
若你对行变换的记账仍未稳固,可先回看
7.2 行变换、乘积与可逆性 。
同时也应保留
3.3 转置、对称矩阵与反对称矩阵
在旁,因为本节把那一章的转置观点推到行列式。
若要回到线性系统语言,可连回
1.1 方程与解集
与 2.3 高斯消元与 RREF 。