线性代数:行列式和矩阵

开个头

我打算将线性代数的重要内容过一遍,根据自己的理解将核心内容(简单的内容就不多费笔墨了)描述出来,尽量少摆公式。主要参考资料是复旦大学的高等代数教材,可以搭配谢启鸿的视频学习。

行列式

网上似乎有个定论,第一章讲行列式的线性代数教材都不是好教材,但复旦大学这本是例外。它从求解二元一次方程组出发,引入二阶行列式,总结出二阶行列式的性质,然后根据这些性质,用二阶行列式来定义三阶行列式,最后将定义和性质推广到一般的\(n\)阶行列式。\(n\)阶行列式可以用\(n-1\)阶行列式定义,最终可以将高阶行列式的计算归结到二阶行列式的计算,这种递归定义比逆序数那种变态的定义更容易接受,不至于让初来乍到人生地不熟的大一新生绝望。

恩,还是堆几个公式吧。二元一次方程组 \[ \left\{ \begin{array}{} a_{11}x_1 + a_{12}x_2 = b_1\\ a_{21}x_1 + a_{22}x_2 = b_2\\ \end{array} \right. \]

的解可以用二阶行列式表示(你一定会想起Cramer法则) \[ 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} },\, 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} } \]

其中,二阶行列式定义为一个数 \[ \begin{vmatrix} a & b\\ c & d \end{vmatrix} =ad-bc \]

三阶行列式用二阶行列式定义为 \[ \begin{vmatrix} a_{11} & a_{12} & a_{13}\\ a_{21} & a_{22} & a_{23}\\ a_{31} & a_{32} & a_{33}\\ \end{vmatrix} = a_{11} \begin{vmatrix} a_{22} & a_{23}\\ a_{32} & a_{33}\\ \end{vmatrix} - a_{21} \begin{vmatrix} a_{12} & a_{13}\\ a_{32} & a_{33}\\ \end{vmatrix} + a_{31} \begin{vmatrix} a_{12} & a_{13}\\ a_{22} & a_{23}\\ \end{vmatrix} \]

在上述过程中,很自然地看出行列式按一行或一列展开的展开式,后面的低阶行列式是代数余子式。另外,\(n\)元线性方程组的解可以用非常整齐的行列式表示,这就是在理论上非常重要的Cramer法则。从定义式计算行列式很复杂,要反复利用性质,尽可能多地使行列式的元素变为零,从而简化计算。

矩阵

矩阵的所有运算中,乘法是重点。利用矩阵乘法法则,线性方程组可以表示成非常简洁的形式。方阵逆矩阵的计算与伴随矩阵和行列式有关,矩阵行列式不等于零时逆矩阵才存在。

Gauss消元法解线性方程组的三种基本操作对应矩阵的三种变换,称为初等变换,通过初等行变换和初等列变换可以将矩阵化为阶梯形矩阵。初等变换对应着初等矩阵,将矩阵左乘初等矩阵相当与对它做初等行变换,将矩阵右乘初等矩阵相当与对它做初等列变换。经有限次初等变换得到的矩阵与原矩阵等价,或称两个矩阵相抵。根据初等变换法可以得到求逆矩阵的高效算法。

将矩阵分块可以简化矩阵运算。分块矩阵的乘法与普通矩阵的乘法在形式上类似,只是在处理块与块之间的乘法时必须保证符合矩阵相乘的条件。看一个例子就能明白,下面这两个矩阵,左边分成\(2 \times 3\)个块,右边分成\(3 \times 2\)块,所以分块符合乘法规则,得到的结果是\(2 \times 2\)块,每一块为对应位置的分块相乘的结果,各个相乘的小块也符合乘法规则。 \[ \left(\begin{array}{cc|c|cc} 1 & 0 & 2 & -1 & 0\\ 0 & 1 & 1 & -2 & 1\\ \hline 0 & 0 & 3 & 1 & 0\\ 1 & 0 & -2 & 0 & 1\\ \end{array}\right) \left(\begin{array}{cc|c} 1 & 0 & 2\\ 0 & 1 & 0\\ \hline -1 & 1 & 3\\ \hline 0 & 1 & -1\\ 2 & 0 & 1\\ \end{array}\right) \]

线性代数中很多地方不经意间用到了分块矩阵相乘的结果,例如很常见的 \[ \left(\begin{array}{ccc} a_{11} & a_{12} & a_{13}\\ a_{21} & a_{22} & a_{23}\\ a_{31} & a_{32} & a_{33}\\ \end{array}\right) \left(\begin{array}{c} x_1\\ x_2\\ x_3\\ \end{array}\right) = x_1 \left(\begin{array}{c} a_{11}\\ a_{21}\\ a_{31}\\ \end{array}\right) + x_2 \left(\begin{array}{c} a_{12}\\ a_{22}\\ a_{32}\\ \end{array}\right) + x_3 \left(\begin{array}{c} a_{13}\\ a_{23}\\ a_{33}\\ \end{array}\right) \]

即,矩阵和列向量相乘等价于矩阵各个列向量的线性组合。