学习机器学习, 基础的线性代数知识是必备的基础功, 对于线性代数的探索, 我将从行列式开始. 行列式是线性代数的一个基本概念, 其理论起源于解线性方程组. 这篇文章我将分享行列式的基础知识以及关于用于解线性方程组的克拉默(Cramer)法则的学习成果.
章节目录
本文是一篇包含大量枯燥数学知识的文章, 作者能力有限, 如果您在阅读过程中发现任何错误, 还请您务必联系本人,指出错误, 避免后来读者再学习错误的知识.谢谢!
本文同时也发表于我的个人博客, 欢饮访问
二阶行列式 ##
我们先看一个最简单的线性方程组:
{ a 11 x 1 + a 12 x 2 = b 1 a 21 x 1 + a 22 x 2 = b 2 \begin{cases} a_{11}x_1+a_{12}x_2=b_1\\ a_{21}x_1+a_{22}x_2=b_2\\ \end{cases} { a11x1+a12x2=b1a21x1+a22x2=b2
对于这个方程组, 我们使用基本的消元法, 当( a 11 a 22 − a 12 a 2 ≠ 0 a_{11}a_{22}-a_{12}a_{2}\neq0 a11a22−a12a2̸=0)时,该方程有唯一解:
x 1 = b 1 a 22 − b 2 a 12 a 11 a 22 − a 12 a 2 , x 2 = a 11 b 2 − a 22 b 1 a 11 a 22 − a 12 a 2 x_1=\frac{b_1a_{22}-b_2a_{12}}{a_{11}a_{22}-a_{12}a_{2}}, \quad x_2=\frac{a_{11}b_2-a_{22}b_1}{a_{11}a_{22}-a_{12}a_{2}} x1=a11a22−a12a2b1a22−b2a12,x2=a11a22−a12a2a11b2−a22b1
为了便于记忆, 所以数学上引入记号
∣ a 11 a 12 a 21 a 22 ∣ \begin{vmatrix} {a_{11}}&{a_{12}}\\ {a_{21}}&{a_{22}}\\ \end{vmatrix} ∣∣∣∣a11a21a12a22∣∣∣∣
我们称之为 二阶行列式. 它表示 a 11 a 22 − a 12 a 2 a_{11}a_{22}-a_{12}a_{2} a11a22−a12a2.
我们把 a 11 a_{11} a11, a 22 a_{22} a22 的连线称为二阶行列式的主对角线, 把 a 12 a_{12} a12, a 21 a_{21} a21 的连线称为次对角线, 则二阶行列式的值等于主对角线的乘机减去次对角线上元素的乘积. 这个算法称为二阶行列式的对角线法则. 按此法则, 二元一次方程组的解可用二阶行列式表示成:
x 1 = ∣ b 1 a 12 b 2 a 22 ∣ ∣ a 11 a 12 a 21 a 22 ∣ , x 2 = ∣ a 11 b 1 a 21 b 2 ∣ ∣ a 11 a 12 a 21 a 22 ∣ x_1=\frac{\begin{vmatrix}{b_1}&{a_{12}}\\{b_2}&{a_{22}}\\ \end{vmatrix}}{\begin{vmatrix}{a_{11}}&{a_{12}}\\{a_{21}}&{a_{22}}\\ \end{vmatrix}}, \quad x_2=\frac{\begin{vmatrix}{a_{11}}&{b_1}\\{a_{21}}&{b_2}\\ \end{vmatrix}}{\begin{vmatrix}{a_{11}}&{a_{12}}\\{a_{21}}&{a_{22}}\\ \end{vmatrix}} x1=∣∣∣∣a11a21a12a22∣∣∣∣∣∣∣∣b1b2a12a22∣∣∣∣,x2=∣∣∣∣a11a21a12a22∣∣∣∣∣∣∣∣a11a21b1b2∣∣∣∣
上面的表达式称为二元一次方程组的行列式解法.
至此, 我们已经可以使用行列式知识解二元一次方程组了. 但是, 对于n个未知数n个一次方程的方程组, 又该如何解呢? 显然, 当未知数和方程的个数增多之后,使用消元法已经无能为力了.
解决的思路是: 先研究排列及其性质, 再观察二,三阶行列式的表达式, 寻找新的规律, 然后按照这些规律来定义n阶行列式.
排列和逆序数
排列: 把n个不同的元素排成一列, 叫做这n个元素的全排列. 简称排列.
自然排列(标准排列): n个不同的自然数的排列, 且这n个数按照从小到大的顺序.
逆序数: 在n个不同的自然数组成的排列 p 1 p 2 . . . p n p_1p_2...p_n p1p2...pn中,如果某两个数不是自然顺序,也就是说前面的数大于紧随其后的数,则称这两个数构成一个逆序, 该排列中的逆序数总个数称为这个排列的逆序数, 记作 τ ( p 1 p 2 . . . p n ) \tau(p_1p_2...p_n) τ(p1p2...pn).
τ ( p 1 p 2 . . . p n ) = τ 2 + τ 3 + . . . + τ n \tau(p_1p_2...p_n) = \tau_2+\tau_3+...+\tau_n τ(p1p2...pn)=τ2+τ3+...+τn.
其中 τ i \tau_i τi 表示排列中前i个数中大于 p i p_i pi的数的个数.
逆序数为奇数的排列称为奇排列, 逆序数为偶数的排列称为偶排列.
在一个排列中 将某两个数的位置对调, 而其余数不变, 即可得到一个新的排列, 这一过程称为对换.
定理: 排列经一次对换, 其奇偶性改变
证明:
(1) 相邻对换: 假设对换元素 a i a_i ai, a j a_j aj (j=i+1). 原排列为 a 1 a 2 a 3 . . . a i a j . . . a n a_1a_2a_3...a_ia_j...a_n a1a2a3...aiaj...an. 原逆序数为 t 1 t_1 t1, 记对换后逆序数为 t 2 t_2 t2. 于是, 当 a i > a j a_i > a_j ai>aj 时, 对换后 τ a i \tau_{ai} τai 的逆序数不变, τ a j \tau_{aj} τaj 的逆序数减少 1, 因为我们将大于 a j a_j aj 的 a i a_i ai 换到了它的后边. 因此, t 2 = t 1 − 1 t_2=t_1-1 t2=t1−1. 当 a i < a j a_i < a_j ai<aj, 对换后 τ a i \tau_{ai} τai 的逆序数增加 1, 因为我们将大于它的 a j a_j aj 换到了它的前面. τ a j \tau_{aj} τaj 的逆序数不变. 因此, t 2 = t 1 + 1 t_2=t_1+1 t2=t1+1. 因此,经过一次相邻对换之后,排列奇偶性改变.
(2) 一般情况: 假设原排列为 a 1 a 2 a 3 . . . a i a i + 1 . . . a j − 1 a j . . . a n a_1a_2a_3...a_ia_{i+1}...a_{j-1}a_j...a_n a1a2a3...aiai+1...aj−1aj...an. 对换之后的排列可以看做先把 a i a_i ai依次与其后的元素一一对换, 转换为 a 1 a 2 a 3 . . . a i a j . . . a n a_1a_2a_3...a_ia_j...a_n a1a2a3...aiaj...an(注意,此时 a i a j a_ia_j aiaj相邻). 这个操作需要 j-i-1 次对换. 然后再将这个排列经过 j-i 次对换, 得到排列 a 1 a 2 a 3 . . . a j a i + 1 . . . a j − 1 a i . . . a n a_1a_2a_3...a_ja_{i+1}...a_{j-1}a_i...a_n a1a2a3...ajai+1...aj−1ai...an. 总结上述两步操作, 我们一共进行了 2*(j-i)-1 次对换. 2*(j-i)-1 为奇数, 因此经过 2*(j-i)-1 次对换之后, 排列的奇偶性改变.
综上, 排列经一次对换, 其奇偶性改变.
这是非常重要的一个定理, 本文后续后续我们将不断的使用它.
n阶行列式
在进入n阶行列式的学习之前, 很有必要研究一下三阶行列式的表达式:
∣ a 11 a 12 a 13 a 21 a 22 a 23 a 31 a 32 a 33 ∣ = a 11 a 22 a 33 + a 12 a 23 a 31 + a 13 a 21 a 32 − a 13 a 22 a 31 − a 12 a 21 a 33 − a 11 a 23 a 32 \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_{12}a_{23}a_{31}+a_{13}a_{21}a_{32} -a_{13}a_{22}a_{31}-a_{12}a_{21}a_{33}-a_{11}a_{23}a_{32} ∣∣∣∣∣∣a11a21a