十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

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

行列式入门:从定义到计算,彻底搞懂矩阵求逆与线性变换

行列式入门:从定义到计算,彻底搞懂矩阵求逆与线性变换 day5数学基础这个系列总算推进到线性代数了。我一开始学线代的时候矩阵、行列式、向量这些概念堆在一起脑子里一团浆糊后来才发现行列式就是那个“穿针引线”的口子它看似只是算一个数但后面的矩阵求逆、秩、特征值、二次型全都跟它挂钩。这篇就把第一天该啃的行列式讲透从定义到计算、从性质到应用全程用大白话加能直接动手算的例子适合正在补数学基础、准备考研或期末复习、以及想打牢机器学习数学底子的人。1. 行列式到底是个什么“数”1.1 先搞清它和矩阵的区别很多人第一次接触行列式和矩阵容易把二者记混。简单说矩阵是一张“表格”它本身不是一个数行列式则是一张“表格”通过特定规则算出来的一个数值。换句话说行列式像是一个函数喂进去一个方阵吐出来一个数。为什么强调“方阵”因为行列式只对行数等于列数的方阵定义不是任何一个矩阵都能算行列式的。你可以把方阵理解成一间正方形的房间行列式就是这间房间的“面积指标”。生活里可以这样类比你开了一个小水果店每天进货、销货的数据都记录在一张表里比如按“苹果、香蕉、橙子”三列记录重量和价格。这张表本身只是数据但如果你要算“今天到底赚没赚钱、利润是多少”你就要按照某种规则去把这个数算出来——这个算出来的“利润数字”就有点像行列式的角色。当然真正的行列式计算和利润计算不是一回事但这个“表格不是数、算出来才是数”的直觉是对的。1.2 二阶行列式把“交叉相乘再相减”焊死在脑子里行列式的最基本形态是二阶行列式。假设我们有[ \begin{vmatrix} a b \ c d \end{vmatrix} ad - bc ]这个公式非常简单但很多人一开始会问为什么是 (ad - bc)而不是 (ad bc)这里其实藏着一个重要的直觉行列式描述的是“向量变换后面积的变化”如果两个向量交换了顺序面积的方向就会反过来所以需要一个能表达正负的规则。(ad - bc) 这个式子天然满足“交换两行会变号”的要求这正是后面讲性质时的伏笔。我建议你今天就把二阶行列式练到“条件反射”的程度看到 ( \begin{vmatrix} 2 5 \ 3 7 \end{vmatrix} ) 就应该脱口而出 (2\times 7 - 5\times 3 14 - 15 -1)。这一步算得越快后面学矩阵乘法、逆矩阵、特征值的时候越轻松。1.3 行列式的记号问题行列式的记号是两条竖线比如 ( \begin{vmatrix} a b \ c d \end{vmatrix} )或者在矩阵外面加 det写作 (\det(A))。注意这里的竖线不是“绝对值”行列式算出来可以是正数、负数也可以是 0。很多人一看到竖线就自动脑补成“正数”这是不对的。我在练习中见过不少同学把 ( \begin{vmatrix} 1 2 \ 3 4 \end{vmatrix} ) 算成 (4 - 6 -2)然后犹豫地写了个 2就是因为潜意识里把竖线当成绝对值了。记住行列式的结果就是计算结果本身该是负的就是负的。2. 三阶行列式对角线法是捷径但也埋了大坑2.1 从公式到“沙路法”三阶行列式的展开公式长这样[ \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} ]一共六项三项带正号、三项带负号。直接记这个公式很痛苦所以大家通常用“沙路法”/“对角线法”把原行列式的第一列、第二列再抄到右边然后沿着主对角线方向的三个乘积相加沿着副对角线方向的三个乘积相减。举个例子[ \begin{vmatrix} 1 2 3 \ 2 1 1 \ 3 2 1 \end{vmatrix} ]把前两列抄在后面得到[ \begin{array}{ccc|cc} 1 2 3 1 2 \ 2 1 1 2 1 \ 3 2 1 3 2 \end{array} ]然后算[ 1\cdot 1\cdot 1 2\cdot 1\cdot 3 3\cdot 2\cdot 23\cdot 1\cdot 3 - 1\cdot 1\cdot 2 - 2\cdot 2\cdot 1 ]即 (1 6 12 - 9 - 2 - 4 4)。你亲自在纸上画几条斜线就会非常直观。这个画法唯一的缺点是它太像“所有阶都能这么画”了这就是后面要说的一个经典误区。2.2 为什么第四个对角线开始就不能用网上有很多教二阶、三阶行列式的口诀流传很广。但很多初学者在算四阶行列式时也试图把前面两列抄到右边然后划十二条斜线去拼六项、十二项结果拼得面目全非符号错、漏项错一大片。原因很简单对角线法本质上是二阶和三阶行列式特有的展开顺序的简写它并没有推广到四阶的普适规律。四阶行列式按定义展开有 (4! 24) 项如果你用画斜线的方式去处理极容易漏项或重复。所以你在学的时候心里一定要有根弦对角线法只在二阶、三阶用遇到四阶及以上的行列式立刻切换成下面要讲的“代数余子式展开”或“性质化简法”。这不是保守是避免算错的现实选择。2.3 三阶行列式的几何感觉三阶行列式对应的几何意义是一个平行六面体的“有向体积”。三个行或列向量如果共面体积就是 0行列式就是 0。这个直觉可以让你在计算之前先判断结果是否趋向于 0。举个例子三个向量分别是 ((1,0,0))、((0,1,0))、((0,0,1))它们构成一个单位正方体行列式是 1。如果把第三个向量改成 ((1,1,0))三个向量都在同一个平面 (z0) 上立体被压扁成了一张纸体积自然是 0于是行列式也是 0。3. 高阶行列式代数余子式就是“拆房子”3.1 余子式与代数余子式对于 (n) 阶行列式我们可以把它拆成低一阶的行列式来计算。核心概念有两个余子式 (M_{ij})删掉第 (i) 行、第 (j) 列后剩下的 ((n-1)) 阶行列式。代数余子式 (A_{ij})在余子式前面乘以符号 ((-1)^{ij})即 (A_{ij} (-1)^{ij} M_{ij})。“删掉一行一列再算”听起来有点笨但它非常有效找一个 0 多的行或列下手能把计算量大幅减少。3.2 按行展开定理行列式可以按任意一行或任意一列展开。以按第 (i) 行展开为例[ D a_{i1}A_{i1} a_{i2}A_{i2} \cdots a_{in}A_{in} ]符号由 ((-1)^{ij}) 决定所以有一个非常实用的符号棋盘。三阶到四阶都适用的符号花纹是[ \begin{array}{cccc} - - \ - \ - - \ - \end{array} ]左上角永远是 ()然后像棋盘一样交替变换。每次计算代数余子式之前先看一眼这个位置是正是负写完符号再往下算能避免大量低级失误。3.3 实战手算一个四阶行列式我们来算一个带有不少 0 的四阶行列式练一遍完整流程[ D \begin{vmatrix} 1 2 0 1 \ 0 1 2 0 \ 1 0 3 1 \ 0 1 0 2 \end{vmatrix} ]第一列有很多元素是 0按第一列展开最划算[ D a_{11}A_{11} a_{21}A_{21} a_{31}A_{31} a_{41}A_{41} ]因为 (a_{21}0)、(a_{41}0)只剩两项。其中 (a_{11}1)(a_{31}1)。先算 (A_{11})。由于 (112) 是偶数符号为正所以[ A_{11} M_{11} \begin{vmatrix} 1 2 0 \ 0 3 1 \ 1 0 2 \end{vmatrix} ]把它展开[ 1\cdot(3\cdot 2 - 1\cdot 0) - 2\cdot(0\cdot 2 - 1\cdot 1) 0 6 2 8 ]再算 (A_{31})。因为 (314) 是偶数符号也为正[ A_{31} M_{31} \begin{vmatrix} 2 0 1 \ 1 2 0 \ 1 0 2 \end{vmatrix} ]展开得[ 2\cdot(2\cdot 2 - 0\cdot 0) - 0\cdot(1\cdot 2 - 0\cdot 1) 1\cdot(1\cdot 0 - 2\cdot 1) 8 0 - 2 6 ]于是[ D 1\cdot 8 1\cdot 6 14 ]你可以顺手把结果本地验证一下下面到“性质”那一章我会用另一个方法再算它一次两个结果对得上说明过程没毛病。3.4 挑选展开行/列的技巧很多人问那我每行都有值没有很多 0怎么办答案是先不要急着展开先用行列式的性质“造 0”然后再展开。造 0 的方法下面会细讲这里先记住一个原则展开前先扫描整行整列谁身上的 0 多就按谁展开如果 0 不够多就通过“倍加”操作把某些位置变成 0。这就像你收拾一间堆满杂物的屋子最省力的方式不是把所有东西都搬一遍而是先把不用的杂物清走露出空地再规划动线。行列式计算里的“清杂物”就是性质化简。4. 行列式的核心性质比死算效率高一倍的“偷懒工具”4.1 六条性质一张表看懂行列式的性质是后续所有计算技巧的地基我直接列成一张速查表性质操作结果转置行变列、列变行行列式不变交换两行/两列把任意两行对调行列式变号某行乘以 k把其中一行整体乘 k行列式变为原来的 k 倍倍加把某一行的 k 倍加到另一行行列式不变成比例存在两行成比例含相等行列式为 0上三角主对角线以下全为 0行列式等于主对角线元素乘积其中“倍加”是最常用的化简工具它不会改变行列式的值所以你爱用多少次用多少次。而“交换两行”会变号用一次就要盯一次符号。“某行乘以 k”更危险因为你通常在消元时并不想让行列式多出一个系数所以在抄写和化简时尽量只用倍加来造 0。4.2 用性质把行列式化成上三角上面那个四阶例子我再带大家用性质法走一遍你会明显感觉到快[ D \begin{vmatrix} 1 2 0 1 \ 0 1 2 0 \ 1 0 3 1 \ 0 1 0 2 \end{vmatrix} ]第一步让第 3 行减去第 1 行消掉 (a_{31})[ R_3 \leftarrow R_3 - R_1 ]得到[ \begin{vmatrix} 1 2 0 1 \ 0 1 2 0 \ 0 -2 3 0 \ 0 1 0 2 \end{vmatrix} ]第二步让第 3 行加上 2 倍的第 2 行消掉 (a_{32})[ R_3 \leftarrow R_3 2R_2 ]得到[ \begin{vmatrix} 1 2 0 1 \ 0 1 2 0 \ 0 0 7 0 \ 0 1 0 2 \end{vmatrix} ]第三步让第 4 行减去第 2 行消掉 (a_{42})[ R_4 \leftarrow R_4 - R_2 ]得到[ \begin{vmatrix} 1 2 0 1 \ 0 1 2 0 \ 0 0 7 0 \ 0 0 -2 2 \end{vmatrix} ]第四步让第 4 行加上 ( \frac{2}{7} ) 倍的第 3 行消掉 (a_{43})[ R_4 \leftarrow R_4 \frac{2}{7}R_3 ]得到上三角行列式[ \begin{vmatrix} 1 2 0 1 \ 0 1 2 0 \ 0 0 7 0 \ 0 0 0 2 \end{vmatrix} ]主对角线乘积是 (1\times 1\times 7\times 2 14)和前面按列的展开结果完全一致。整个过程只用了倍加操作没有变号、没有额外乘系数所以行云流水。等你熟练了四阶行列式用这种办法两三分钟就能算完比展开法快很多。4.3 什么时候用展开、什么时候用性质我的个人经验是一个分界线三阶以内直接用对角线法四阶以上先看有没有现成的 0如果没有就先用性质造 0造完 0 再展开或继续化上三角。遇到带字母的参数行列式、含 (x) 的多项式行列式则优先用性质因为展开后同类项很难整理性质法往往能直接因式分解。“按行展开”和“性质化三角”不是对立的。一个常用混合套路是先用倍加把某一列除第一个元素外都变成 0然后按这一列展开把一个四阶降到三阶再用对角线法。这种“降阶 展开”的组合思路在考研题里特别常见。5. 学完行列式能立刻用在哪克莱姆法则与几何面积5.1 克莱姆法则求解方程组行列式的第一个直接应用是解线性方程组。如果方程组的系数行列式 (D \neq 0)那么方程组有唯一解且第 (i) 个未知数 (x_i) 等于用常数项替换系数行列式第 (i) 列后得到的行列式 (D_i) 除以 (D)[ x_i \frac{D_i}{D} ]看一个二元的例子[ \begin{cases} 2x 3y 8 \ x - 2y -3 \end{cases} ]系数行列式[ D \begin{vmatrix} 2 3 \ 1 -2 \end{vmatrix} 2\cdot(-2) - 3\cdot1 -4 - 3 -7 ]替换第 1 列[ D_1 \begin{vmatrix} 8 3 \ -3 -2 \end{vmatrix} 8\cdot(-2) - 3\cdot(-3) -16 9 -7 ]替换第 2 列[ D_2 \begin{vmatrix} 2 8 \ 1 -3 \end{vmatrix} 2\cdot(-3) - 8\cdot1 -6 - 8 -14 ]于是[ x \frac{D_1}{D} \frac{-7}{-7} 1, \quad y \frac{D_2}{D} \frac{-14}{-7} 2 ]带回原式验算(2\times1 3\times2 8)(1 - 2\times2 -3)完全正确。不过要说句实在话当方程个数到了四五个的时候克莱姆法则的计算量会急剧膨胀实际工程和考试中更常用高斯消元法。但克莱姆法则在理论推导里价值很高它用简洁的公式说明了“系数行列式为 0”和“无唯一解”之间的关联。5.2 行列式是线性变换的“放大系数”二阶行列式的几何意义是平行四边形的有向面积三阶行列式是平行六面体的有向体积。所谓“有向”就是方向反了面积会取负号。比如向量 ((1,0)) 和 ((0,1)) 构成的平行四边形就是单位正方形[ \begin{vmatrix} 1 0 \ 0 1 \end{vmatrix} 1 ]面积是 1。如果两个向量变成 ((1,0)) 和 ((1,1))[ \begin{vmatrix} 1 1 \ 0 1 \end{vmatrix} 1 ]它们围成的平行四边形面积依然是 1。但如果两个向量共线例如 ((1,1)) 和 ((2,2))[ \begin{vmatrix} 1 2 \ 1 2 \end{vmatrix} 0 ]面积变成 0因为两条线重合平行四边形被“压扁”了。这个视角很重要因为后面学到特征值的时候你会看到矩阵的伸缩效应而行列式就是整体伸缩的比例。一个线性变换如果让面积变为原来的 0 倍说明这个变换把某个维度的信息压没了这就是“不可逆”的几何含义。6. 新手常见错误与防坑实录6.1 三类最经典的低级失误我把这些年见过的错法整理成一张表你要是踩过其中任何一个说明你已经在正常学习路线上。错误表现根本原因纠正方法四阶以上还用对角线法画斜线误以为对角线法能推广立即切换为按行展开或性质化三角展开时符号漏掉尤其奇数位符号棋盘没背熟每次展开前先写 ((-1)^{ij}) 的结果在纸上把“某行乘以 k 再加到另一行”误当成“某行乘以 k”混淆倍乘和倍加倍加这个操作在行列式里是免费的而倍乘会整体多出系数还有一个容易忽略的细节在用性质化上三角时如果中间某两行交换了一定记得“交换一次变号一次”。我见过很多人在草稿纸上写得飞快最后结果符号反了根源就是漏算了换行次数。6.2 用工具验证手算结果手算完之后可以用 Python 的 sympy 模块快速验证import sympy as sp A sp.Matrix([ [1, 2, 0, 1], [0, 1, 2, 0], [1, 0, 3, 1], [0, 1, 0, 2] ]) print(A.det())输出是14跟前面手算一致。学数学不是不能用工具而是用它帮你确认思路对不对。尤其刚开始学行列式的时候我建议每题都先手算再用工具验证错题集中整理概率最高的错误类型。6.3 今天的练习量建议如果今天是你的 day5之后还要继续往下学我建议行列式的入门练习量可以这样分配二阶行列式20 道口算目标是 10 秒内能写完结果。三阶行列式10 道用对角线法每道控制在 2 分钟内。四阶行列式5 道优先用“性质化三角”或“先造 0 再展开”每道控制在 5 分钟内。5 道带字母参数的小题体会行变换在参数情况下的用法。练完之后最好把行列式性质和代数余子式的推导自己默写一遍。我当年学的时候觉得最有用的一件事就是把六条性质抄在一张卡片上做题前先扫一眼。练到后面你会对所有“凭什么可以这样化简”有肌肉记忆再学矩阵的秩和逆时会顺畅得多。最后再分享一个我自己的小技巧遇到复杂的行列式不要一下就闷头展开先花 20 秒观察——有没有整行、整列能提公因式有没有两行成比例可以被判为 0有没有办法用倍加多造几个 0。这 20 秒经常能把一个 20 分钟的计算题压缩成 5 分钟。数学里真正的省力往往来自动手之前的观察。
返回列表