线性代数1-1
一元二次方程组
\[ \left \{ \begin{aligned} a_{11}x_1 + a_{12}x_2 &= b_1 \\ a_{21}x_1 + a_{22}x_2 &= b_2 \\ \end{aligned}\right. \]
消元后得到:
\[ \left \{ \begin{aligned} (a_{11}a_{22}-a_{12}a_{21})x_1 &= b_1a_{22} - b_2a_{12} \\ (a_{11}a_{22}-a_{12}a_{21})x_2 &= a_{11}b_2 - a_{21}b_1 \\ \end{aligned}\right. \]
容易发现 \(x_1, x_2\) 前的系数一致。定义二元一次方程组的行列式如下:
\[ \left | \begin{matrix} a_{11} & a_{12} \\ a_{21} & a_{22} \end{matrix} \right |\equiv a_{11}a_{22} - a_{12}a_{21} \]
有趣的是,等号右边也是行列式的形式,所以有:
\[ \left \{ \begin{aligned} x_1 &= \frac{\left | \begin{matrix} b_1 & a_{12} \\ b_2 & a_{22} \end{matrix} \right |}{\left | \begin{matrix} a_{11} & a_{12} \\ a_{21} & a_{22} \end{matrix} \right |} \\ x_2 &= \frac{\left | \begin{matrix} a_{11} & b_1 \\ a_{21} & b_2 \end{matrix} \right |}{\left | \begin{matrix} a_{11} & a_{12} \\ a_{21} & a_{22} \end{matrix} \right |} \\ \end{aligned}\right. \]
更高阶的行列式
下面定义:\(M_{ij}\) 为去掉第 \(i\) 行和第 \(j\) 列后的行列式。称为 \(a_{ij}\) 的余子式。\(A_{ij}=(-1)^{i+j}M_{ij}\) 称为 \(a_{ij}\) 的代数余子式。
我们有:
\[ \left | \begin{matrix} a_{11} & a_{12} & ... & a_{1n} \\ a_{21} & a_{22} & ... & a_{2n} \\ ... & ... & ... & ... \\ a_{n1} & a_{n2} & ... & a_{nn} \\ \end{matrix} \right | \equiv \sum_{k=1}^{n}a_{1k}A_{1k} = \sum_{k=1}^{n}a_{1k}(-1)^{k+1}M_{1k} \]
这种定义称为行列式按第一行展开,或称按第一行 Laplace 展开。
特殊的行列式
对于主对角线上方为空的矩阵,其行列式为主对角线元素乘积。
证明:可用归纳法。按照第一行展开,只有一项,即 \(D = a_{11}(-1)^{1+1}M_{11}\),就递归到了更小的矩阵。边界略过不谈。
同理可证:主对角线下方为空行列式也为主对角线元素乘积(按照最后一行展开);副对角线一侧为空的行列式为 \((-1)^{\frac{n(n-1)}{2}}\) 倍的副对角线元素乘积。
行列式的性质
- 转置行列式与原行列式相等。也即对行成立的性质对列成立(如展开)
- 互换相邻两行的位置,行列式的值会改变正负号。 这个证明非常简单,按照这两行展开时,余子式没有任何变化,但是这两行的位置变了,所以代数余子式的系数要乘 -1。
- 行列式可以按照任意一行展开
- 交换 \(i,j\) 两行,行列式乘以 \((-1)^{i-j}\)。 这可以连续使用 2. 中的交换得到。
- 将行列式看作 \(n\) 个向量的函数 \(f(v_1,v_2,...,v_n)\),行列式对于向量是线性的。 即:\(f(kv_1 + u,v_2,...,v_n) = kf(v_1,v_2,...,v_n) + f(u,v_2,...,v_n)\)。
- 如果有某个向量可以被其他向量线性表出,则行列式为 0。 证明不难,先由 2. 得到相邻的相等向量带来 0 行列式;再从 4. 知道任意两个相等也带来 0 行列式。最后再由 5. 得到向量之间的线性加减不会改变行列式。
- 由 5. 和 6. 直接有:向量之间线性改变不会改变行列式(即加减其他向量的倍数,但不可加减自己的倍数)。
- 错误展开:如果将某一行的元素与另一行的代数余子式对应相乘相加,结果一定是 0。 这个证明也不难想:假设我们用 \(a_{i\cdot}\) 和 \(A_{j\cdot}\) 展开,其实是相当于把第 \(j\) 行变成与第 \(i\) 行相同,再按第 \(j\) 行展开。这样由 6. 立马得到行列式为 0。
POV
上面讲的东西都是 shit。
快速回顾一些基本知识:矩阵(左乘)表示了线性空间内的线性变换。对于方阵来说,考察线性变换的最好办法是考察它的基在变换前后的变化。矩阵的第 \(i\) 个列向量表示了第 \(i\) 个基在变换后会去哪里。
线性变换实质上将空间进行旋转、压缩和拉伸,一个迷人的问题就是,它是否改变了空间的“密度”?或者说,原来空间中的一块区域在变换后是多大?
行列式解决了这个问题。对于 \(n\) 个 \(\mathbb R^n\) 内的向量,它们组成的矩阵的行列式标记了它们构成的“平行超体”的体积(如二维的平行四边形,三位的平行六面体)。
你想,在原来的空间中,基对应的平行超体体积是单位 1。而变换后的新基的体积(在原空间中)是行列式,那么行列式显然代表了体积的变化率。也即空间被伸缩了多少。
另一方面,行列式实际是带符号的。这代表了基向量的空间位置是否发生了变换(参考三维中的手性)。高维不止两个手性,就设偶数次变化为正,奇数次变化为负。
这样,\(|A||B|=|AB|\) 就不证自明。
如果行列式为 0,说明什么?说明空间被压缩到了一个更低维的空间,也即:
- 存在一个基可被其它基线性表示
- 零空间维度不为 0
- 无法把低维的内容重新反推到高维(不可逆)
而线性方程组其实就是对变换后空间的向量找一个变换前的向量。所以行列式不为 0 是方程组有解的充要条件。
为什么行列式会是消元后的系数?
这被称为 Cramer 规则。有一个简短的证明如下:
设 $ A x= b$,其中 $ A = [{v_1,v_2,...,v_n}]$。记 \(A_i\) 为用 \(b\) 代替 \(v_i\) 的结果。
以 \(x_1\) 为例:
\[ x_1 = \left | \begin{matrix} x_1\\ x_2 & 1\\ x_3 & & 1\\ ...& & & ...\\ x_n & & & & 1 \end{matrix}\right | = \left|A^{-1}A_1\right| = \frac{|A_1|}{|A|} \]