ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

行列式怎么算?从几何意义到初等变换全解析

行列式怎么算?从几何意义到初等变换全解析 如果让我选线性代数里“最劝退”的一个考点我会把票投给行列式的计算。这一节在教材里的位置多半是第5章第2节前面刚讲完行列式的定义和性质后面就要开始连着一整章的习题。看起来内容不多可实际做题的时候同一个行列式有人三行就写完了有人写了半页纸还算错。差距不在手速而在于有没有在动笔之前先判断“这个行列式是什么结构”。这篇博文想把这节课彻底讲透。我会从行列式的几何含义讲起中间按场景拆解对角线法则、按行列展开、初等变换法和几个特殊结构行列式的处理套路最后聊聊计算机里到底是怎么算行列式的——这部分是很多教材不讲的但对理解数值计算非常重要。不管你是期末复习的大学生、想补数学基础的工程师还是备课的老师应该都能从中找到自己需要的段落。1. 行列式到底在算什么公式背了一堆却不知道它的几何身份1.1 行列式不是一串符号而是“有向体积”很多人第一次学行列式是直接背公式的二阶是主对角线相乘减副对角线三阶是画六条线。这样不是不行但很容易走到一个死胡同——题目稍微变形人就懵了。因为行列式本质上是一个函数输入一个方阵输出一个数这个数在n维空间中有一个非常清晰的身份n个列向量张成的平行多面体的“有向体积”。以二阶行列式为例[ \det\begin{pmatrix} a b \ c d \end{pmatrix}ad-bc ]几何上向量 ((a,c)) 和 ((b,d)) 张开一个平行四边形这个平行四边形的面积就是 (|ad-bc|)。这里的绝对值很好理解但“有向”两个字容易被忽略如果两个列向量的相对位置调换面积不变符号却会反过来。这正是行交换改变行列式符号的几何来源。到了三阶行列式就是平行六面体的有向体积。四个以上的维度没法直接画出来但可以按同样的逻辑推广n阶方阵的行列式就是n个列向量张成的n维平行多面体的有向体积。这个概念一旦建立起来很多性质就不再需要死记硬背了。比如为什么某一行乘以k行列式就乘以k因为一个维度的边长变成k倍体积自然变成k倍。1.2 行列式等于零到底意味着什么把“有向体积”这个视角再往前推一步当行列式为零时说明n个列向量张成的体积是零也就是这些向量被压缩在一个不到n维的子空间里换句话说它们线性相关。反过来行列式不为零意味着这n个向量能撑起整个n维空间矩阵可逆。这个联系在实际做题里非常有用。判断一个行列式是否为零不一定非得硬算——只要发现两行列成比例、某一行列全为零、或者某行是其他行的线性组合就能直接写答案为0。很多学生死算半天其实根本不值当。有个我反复跟学生强调的例子考试时遇到一个看起来很复杂的四阶行列式数字密密麻麻如果你能一眼看出第1行加第3行正好等于2倍的第4行那这道题就不是计算题而是判断题。行列式直接等于0连笔都不用动。1.3 行列式应用在哪才明白计算是为了什么行列式不是孤立考点它的应用贯穿线性代数解线性方程组克拉默法则把解写成 (\det(A_i)/\det(A))但注意这是理论工具实际求解没人这么干判断矩阵可逆性(\det(A) \neq 0) 与 (A) 可逆等价求特征值特征方程 (\det(A-\lambda I)0) 本身就是行列式多元积分换元雅可比行列式描述的是坐标变换的伸缩因子逆矩阵公式(A^{-1} \frac{\text{adj}(A)}{\det(A)})。理解这些应用对“行列式的计算”有什么帮助帮助很大。因为有了应用场景你就会发现很多时候我们算行列式不只是为了得到一个数更是为了判断它是零还是非零或者为了让公式里的某项为零。于是所有计算技巧的本质都可以归结为一句话在不改变或能追踪改变行列式值的前提下把它化简到最容易看穿结构的形式。2. 基础方法对角线法则与按行列展开的适用边界2.1 对角线法则为什么只能用到三阶二阶和三阶的行列式确实可以用对角线规则直接写答案。二阶很简单(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}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} ]这看起来就是6条斜线3条加、3条减。很多同学到了四阶还在想能不能用类似方法答案是不能。原因是n阶行列式按定义展开是n!项每一项是从矩阵中每行每列各取一个元素的乘积符号由排列的逆序数决定。三阶正好是(3!6)项所以能画出6条线四阶是24项已经不可能用几条对角线覆盖了。所以超过三阶必须另想办法。2.2 按行列展开降阶的基本功按行展开的核心是余子式和代数余子式。设 (M_{ij}) 是去掉第 (i) 行第 (j) 列后剩下的 (n-1) 阶行列式那么代数余子式定义为[ A_{ij}(-1)^{ij}M_{ij} ]行列式可以按任意一行或一列展开。比如按第 (i) 行展开[ \det(A)\sum_{j1}^{n}a_{ij}A_{ij} ]这里最容易出错的就是符号。((-1)^{ij}) 的分布是一个棋盘格从 ((1,1)) 开始是正号横向纵向交替位置第1列第2列第3列第4列第1行−−第2行−−第3行−−第4行−−考试时如果你不敢确定符号最快的方法是数一下 (ij) 的奇偶性。偶数就是正号奇数就是负号。2.3 展开定理不是万能的稠密矩阵按行展开的计算量有多大这里我要说一个容易被忽略的事实如果一个矩阵是稠密的按行展开并不会让你轻松多少。以四阶为例按第一行展开要做4个三阶行列式每个三阶行列式又要算6项共24项到了五阶按行展开要做5个四阶行列式每个四阶又递归做4个三阶……总工作量与 (n!) 同阶。手算到五阶以上基本就不现实了。所以我的建议是按行展开只适合两类情况一是行列式本身有很多零元展开一次就明显变简单二是需要用递推法的时候把一般情况写成n阶与n−1阶之间的关系。如果题目给的是一个数字密集的普通行列式更推荐下一节的初等变换法。3. 初等变换法把行列式化成上三角是手算和代码的共同根基3.1 三种初等变换对行列式值的影响和矩阵行变换完全不同这里必须专门说一下。很多人在矩阵里学初等行变换时习惯了“某行乘k不改变方程组的解”于是到了行列式里也默认“某行乘k不改变行列式的值”这是大错。针对行列式三种初等变换的值变化规则是对调两行列行列式变号某一行列的所有元素乘以同一个数k行列式变为原来的k倍把某一行列的k倍加到另一行列行列式不变。注意第2条和第3条的区别。有时候为了消元方便会先把某行乘以某个数再加到另一行但直接做第3类变换是不影响行列式的。前面如果单独乘了k就要把k提到行列式前面或者在心里记住最终结果要除以k。最稳妥的做法是手算时别用“倍乘”操作只允许“行交换”和“某行倍数加到另一行”就不会出现漏乘系数的问题。有一个推论值得单独提出来如果行列式存在两行列成比例那么行列式等于0。证明思路是先把比例系数k提出来两行就相等了相等的两行通过交换会变成自己的相反数所以只能是0。这个推论在判断行列式是否为零时极其好用。3.2 化上三角的完整流程一步一步来符号别丢化上三角的目标是把行列式变成“主对角线以下全是零”的形式此时行列式等于主对角线元素的乘积再考虑行交换带来的符号。我拿一个四阶行列式完整走
返回列表