🎯 本章学习目标
理解行列式的几何意义 :线性变换对面积/体积的缩放倍数。
掌握 2×2 行列式 det([[a,b],[c,d]]) = ad − bc 及其推导。
理解 3×3 行列式对应「体积」缩放。
掌握关键性质:交换行变号、行列式为零 ⇔ 降维、det(AB)=det(A)det(B)。
会用行列式计算三角形面积与平行六面体体积,并解释符号(翻转)的含义。
说出「基准无关性」:为什么换任何面积 1 的图形做基准,读出的 det 都一样。
会用「性质巧算」(提公因子、倍加消元、按零多的行展开)替代硬展开。
本章目录
7.1 动机:变换把面积放大了多少倍
7.2 2×2 行列式:ad − bc 从哪来
7.3 3×3 行列式:体积的缩放
7.4 行列式的关键性质
7.5 行列式为零:空间被压扁了
本章小结 · 自查 · 思考题
7.1 动机:变换把面积放大了多少倍
回到第 5 章的观念:矩阵是一个「动作」,会对整个空间做拉伸、旋转、挤压。
想象平面上有一个单位正方形 ——由两个基向量 (1,0) 和 (0,1) 张成,面积恰好是 1。对它施加矩阵 A 的变换后,这个正方形会变成什么?会变成以 A 的两列为邻边的平行四边形 。
关键问题来了:这个平行四边形的面积,是原来单位正方形面积的多少倍? 这个倍数,就是行列式。
行列式衡量面积缩放
左边单位正方形面积为1,经矩阵变换后变成右边的平行四边形,面积放大 det 倍。
变换前:单位正方形
面积 = 1
⟶
矩阵 A
变换后:平行四边形
面积 = det(A) × 1
det(A)
图 7-1 单位正方形(面积 1)经变换变成平行四边形,面积变为 det(A)。行列式就是「面积的放大倍数」。
核心思想 行列式 = 线性变换对面积(2 维)或体积(3 维及以上)的缩放因子 。det(A)=3 表示面积放大 3 倍;det(A)=0.5 表示缩小一半;det(A)=−2 表示面积放大 2 倍且「翻转」了方向。
负号从哪来?如果变换把平面「翻了个面」(比如镜像),平行四边形方向反转,行列式就是负的。绝对值仍是面积倍数,符号记录「是否翻转」。
深化一:为什么「一个数」能概括整个变换
一个自然的疑问:变换把平面各处拉扯得千奇百怪,凭什么一个数 就能概括全局的面积变化?答案藏在「线性」二字里。线性变换有三条铁律:网格线变换后仍保持平行、原本等距的仍等距、原点不动。因此任何一块小方格的缩放倍数都和单位方格相同 ——局部即全局。任意多边形都能切成许多小方格拼出来,每块都放大 det 倍,总面积自然放大 det 倍;带曲边的图形,用越来越细的方格去逼近,取极限后结论不变(这正是微积分「以直代曲」的手法)。所以面积缩放率不是逐点变化的函数,而是一个全局常数 ——线性性把万千信息压缩成了一个数,这是它给我们的第一份大礼。
这个常数还同时携带定向信息 。给平行四边形规定一个「正向」:从第一列向量出发,逆时针扫到第二列向量。变换若保持这个旋向,det 取正;若把平面整个翻了个面(镜像交换了逆时针与顺时针),det 取负。于是行列式 = 缩放倍数 × 方向信号,一个数装下两层信息。三维同理:右手系被保持为正、被翻成左手系为负——工程软件正是靠这个符号检查坐标定义有没有「翻车」。
往高维推广毫无障碍:n 维空间中,单位超立方体被变换成 n 维「超平行体」,其超体积的缩放倍数就是 n 阶行列式。维度在涨,思想不变——「一次抽象、处处适用」,这是线性代数给我们的第二个范本,也是第 10 章线性变换、第 11 章特征值反复借用的直觉。
📐 例题 1 用行列式计算三角形面积
平面上三角形三个顶点 P₁=(1,1)、P₂=(4,1)、P₃=(2,3),求它的面积。
思路 选一个顶点当「出发点」,从它出发作两条边向量 u、v,三角形恰是以 u、v 为邻边的平行四边形的一半。把 u、v 拼成 2×2 矩阵(一列一个向量),|det| 就是平行四边形面积,再除以 2。
解 u = P₂ − P₁ = (3,0),v = P₃ − P₁ = (1,2)。拼成矩阵 [[3,1],[0,2]],det = 3×2 − 1×0 = 6。三角形面积 = |det| / 2 = 6 / 2 = 3。
用底×高复核:底边 P₁P₂ 长为 4−1 = 3,P₃ 到底边(y=1)的高度为 3−1 = 2,面积 = 3×2/2 = 3,两条路完全吻合。
答:三角形面积为 3。 ⚠ 易错点:两个边向量必须从同一个 顶点出发(否则拼出的不是这个三角形);三角形别忘除以 2——平行四边形才是 |det|。
工程应用:几何软件里的「面积引擎」
例题 1 这套「边向量拼矩阵、取行列式、除以 2」是几何软件计算面积的底层零件:任意多边形都能拆成若干三角形逐个累加(其闭合形式即熟知的「鞋带公式」)。飞行器外形设计中的蒙皮分块面积、开口与加强框区域的面积估算,在几何建模内核里都先化为顶点坐标再走行列式;有限元网格划分时,软件还会用行列式给每个单元「体检」——某三角形单元的 det 接近 0,意味着三个顶点几乎共线、单元退化,后续力学计算会严重失真,必须在建模阶段剔除。「det = 面积缩放」不是课堂装饰,它每天都在生产线上的代码里值班。
辨析:矩阵 ≠ 行列式
初学最易犯的混淆,是把「矩阵」与「行列式」混为一谈。矩阵 是一张 m×n 的数表、一个变换,形状讲究匹配;行列式 是把方阵压缩成的一个数、一张「体检报告」。矩阵之间可加可乘、有形状约束;行列式就是一个实数,按普通数的规则运算。打个比方:矩阵是机器,行列式是机器铭牌上的功率读数。另一个符号陷阱:det(A) 两侧的竖线与绝对值符号同形不同义,|det(A)| 才是「取绝对值」;读题时先分清写的是哪一种。
记号与读法上再补一句:det(A) 也常记作 |A|(两条竖线夹矩阵),读作「A 的行列式」。看到 |A| 千万别读成「A 的绝对值」——矩阵没有绝对值,方阵的这个记号永远指行列式。
深化二:对比非线性——「全局常数」有多可贵
行列式能当「一个数」用,功劳全在「线性」。作个对照:把平面卷成圆筒(非线性变换),离轴线远的材料被拉伸得多、近的被压缩得少,面积缩放率随位置逐点变化——此时必须逐点记录一个「局部缩放场」(微积分里叫雅可比场,材料力学里就是应变的近亲),再积分才能算出总体效果。线性变换则一步到位:一个常数走天下。「网格保持平行、等距」不是理所当然的恩赐,而是线性给出的特权。理解这一点,就理解了为什么工程仿真总是先把非线性世界「切小」、在每个小块上近似为线性(又一次以直代曲),然后用行列式批量记账——本章的工具,是那台大机器里最小的齿轮。
再想深一层:「基准图形」的选择是自由的吗?我们用单位正方形当基准,换成任何一个面积恰为 1 的图形——单位三角形、单位圆片——缩放倍数会变吗?不会。因为「线性变换把所有图形按同一倍数缩放」,基准选谁,读数都是同一个 det。这种「基准无关性」说明行列式不是「碰巧」与面积挂钩,而是面积缩放这件事的唯一合法度量。往后学多重积分时会再次遇到它:换坐标算面积/体积要乘的「雅可比」,就是坐标变换矩阵的行列式——同一个思想,从课堂一直用到研究院。
7.2 2×2 行列式:ad − bc 从哪来
现在把这个「面积倍数」精确算出来。设矩阵 A = [[a,b],[c,d]],它的两列是向量 u =(a,c)、v =(b,d)。变换后的平行四边形,就是以 u 、v 为邻边的平行四边形。
平行四边形的面积怎么算?一个漂亮的方法是「叉积 」。两个平面向量的叉积(严格说是二维叉积的数值),其绝对值 恰好等于它们张成的平行四边形面积:
面积 = | u × v | = | a·d − b·c |
把叉积展开验证一下:u =(a,c)、v =(b,d),叉积 = a·d − c·b = ad − bc。所以:
定义 2×2 矩阵的行列式:det([[a,b],[c,d]]) = ad − bc 。它的绝对值是以 (a,c)、(b,d) 为邻边的平行四边形面积;符号表示方向(正=保持原向,负=翻转)。
二阶行列式公式
二乘二矩阵行列式等于主对角线乘积减副对角线乘积,即 ad 减 bc。
a
b
c
d
= ad − bc
主对角乘积 − 副对角乘积
图 7-2 二阶行列式 = 主对角线乘积 ad 减副对角线乘积 bc。
举个例子:A=[[3,0],[0,2]]。det(A)=3·2−0·0=6。这矩阵是「横向拉伸 3 倍、纵向拉伸 2 倍」,单位正方形(1×1)确实变成 3×2=6 的矩形,面积正好 6,完全吻合!
🧠 一句话记忆 二阶行列式 = 「叉乘」ad − bc,就是平行四边形面积(带方向)。
深化一:ad − bc 的严格推导(几何 → 三角 → 代数)
公式 ad − bc 不能满足于「背下来」,要看它是怎么长出来的。分两步。
第一步(几何 → 三角) :以 u=(a,c)、v=(b,d) 为邻边的平行四边形,面积 = 底 × 高 = |u|·|v|·sinθ(取 |u| 为底,高就是 |v|·sinθ)。这一步把「面积」翻译成了三角函数。
第二步(三角 → 代数) :消掉 θ。用拉格朗日恒等式(|u×v|² = |u|²|v|² − (u·v)²,二维情形可直接展开复核):
(a²+c²)(b²+d²) − (ab+cd)² = a²d² + b²c² − 2abcd = (ad − bc)²
于是面积 = |ad − bc|,行列式的绝对值就是平行四边形面积,符号记录定向。推导只用了「展开、合并同类项」,每一步都能亲手复核——数学公式的可信,来自这种可复核性。
另一个视角(消元推导) :对 [[a,b],[c,d]] 做行倍加消元 r₂ ← r₂ − (c/a)r₁,得上三角 [[a,b],[0, d−cb/a]],det = a(d − cb/a) = ad − bc。这说明「对角线法则」并非魔法记号,而是高斯消元的副产品 ——它顺便预告了 n 阶行列式的通用算法(7.4 节展开)。
📐 例题 2 三个小矩阵,三种变换
计算 (a) A=[[2,3],[1,4]]、(b) B=[[0,1],[1,0]]、(c) C=[[1,2],[2,4]] 的行列式,并各用一句话说明几何含义。
思路 直接套 ad − bc,再对照「面积缩放 + 定向翻转」两问作答。
解 (a) det(A) = 2×4 − 3×1 = 8 − 3 = 5:单位正方形被变成面积 5 的平行四边形,放大 5 倍,方向未翻。
(b) det(B) = 0×0 − 1×1 = −1:面积不变(|det| = 1),但符号为负——B 把两个基向量互换,平面被镜像翻面。
(c) det(C) = 1×4 − 2×2 = 0:两列 (1,2)、(2,4) 成比例,平行四边形被压成线段,面积归零。
答:5、−1、0。 ⚠ 易错点:ad − bc 中 bc 是「左下 × 右上」,两项谁减谁别弄反;负号只说明翻面,面积要看绝对值。
工程应用:坐标系的「翻面检查」
工程软件里定义零件坐标系、标定相机与传感器时,常用一个小行列式做体检:把两三个坐标轴方向向量拼成方阵,det>0 说明定向没变(二维逆时针、三维右手系),det<0 说明某个轴定义反了、发生了镜像。镜像错误在装配与加工中是「左右件装反」级别的失误——一个几行的 det 计算,就能在建模阶段把这类隐患拦下来,成本几乎为零。
辨析:行与列的平等(det(Aᵀ) = det(A))
把矩阵转置再算行列式,值不变:Aᵀ = [[a,c],[b,d]],det(Aᵀ) = ad − cb = ad − bc = det(A)。二阶直接验证,n 阶同样成立。这带来一个方便:一切对「行」成立的性质对「列」也成立 ——换列变号、列提公因子、两列相同为零……7.4 节讲性质时可以两边通用,不必背两套。为什么会有这种平等?因为「列向量张成的面积」和「行向量张成的面积」本来就是同一块面积的两个记法。
深化二:剪一刀,面积不变——剪切的直觉
det = 1 的矩阵家族值得单独认识。剪切矩阵 [[1,k],[0,1]] 把正方形推成平行四边形:底不动、顶边横移「k×高」的距离,det = 1×1 − k×0 = 1——面积分毫未变。想象一摞扑克牌在桌面上被推歪:整体形状变了,每张牌的面积、整摞牌的底面积都没变。剪切是「不花体积代价的重排」,这给出平行四边形面积公式的另一条来路:把斜的平行四边形剪两刀、平移补位,拼成同底同高的矩形——ad − bc 正是这次「剪补」的代数记账。后面第 10 章会看到,高斯消元的每一个步骤,本质都是对空间做一串剪切与缩放。
展开选哪一行都行,这值得亲手体验一次。例题 3 的矩阵第二行是 (1, 0, 2)——中间藏着一个 0,按第二行展开只需算两个余子式:det = −1×M₂₁ + 0×M₂₂ − 2×M₂₃ = −1×det[[1,3],[1,2]] − 2×det[[2,1],[4,1]] = −1×(−1) − 2×(−2) = 1 + 4 = 5。与按第一行展开殊途同归,还少算一个余子式。先扫 0、再选行 ,是展开计算的黄金习惯。
7.3 3×3 行列式:体积的缩放
到了三维,单位立方体(体积 1)经 3×3 矩阵变换后,变成以三列为邻边的平行六面体 。它的体积,就是 3×3 行列式的绝对值。
3×3 行列式怎么算?最常用的是「按行展开 」:
det(A) = a·(ei − fh) − b·(di − fg) + c·(dh − eg)
其中 A = [[a,b,c],[d,e,f],[g,h,i]]。看懂规律了吗?它是:
取第一行的 a、b、c,正负交替(+ − +);
每个元素乘上「划掉它所在行列后剩下的 2×2 子矩阵的行列式」。
这个「划掉行列取小矩阵」的机制叫 代数余子式 ,是行列式的通用定义方式,可以一路推广到 n 阶。
几何意义不变 无论几阶,行列式都是「变换对体积/超体积的缩放倍数」 。3 阶是体积,4 阶是四维「超体积」,道理完全一样。
例如对角矩阵 [[2,0,0],[0,3,0],[0,0,4]],det = 2·3·4 = 24——三个方向分别拉伸 2、3、4 倍,体积自然放大 24 倍。这个「对角矩阵行列式 = 对角元相乘」的直觉,非常有用。
深化一:按行展开的机制——体积对每一行都线性
三阶公式 det(A) = a(ei−fh) − b(di−fg) + c(dh−eg) 为什么长这个样子?机制在于体积的「多重线性」 :把平行六面体的一条棱向量拆成 k₁w₁ + k₂w₂(底面不动、这条棱是「高」的方向),体积就按系数线性拆成两块——各自是「换一条棱之后的平行六面体」体积。既然体积对每一行(每条棱)都线性 ,就可以把第一行的 (a,b,c) 逐项拆开,每一项变成「一个数 × 低一阶的体积」,也就是 2×2 行列式。正负交替来自定向:每拆一项,基向量的排列奇偶性变化一次,符号跟着翻转。
严格数一数:三阶行列式完全展开共 3! = 6 项(三个正、三个负),每项是「每行每列恰好取一个元素」的乘积。6 项可以按第一行组合成三组——这正是按行展开的形态;也可以按第一列组合、按任意行列组合,展开方式不唯一,结果必然相同。
余子式与代数余子式 :划掉元素 aᵢⱼ 所在的第 i 行、第 j 列,剩下的低一阶行列式记为余子式 Mᵢⱼ;再乘上棋盘符号 (−1)^(i+j) 得到代数余子式 Aᵢⱼ。于是 n 阶行列式获得归纳定义 :det = 按任意一行展开 = Σⱼ aᵢⱼAᵢⱼ。三阶靠二阶、四阶靠三阶……一路降维打击。这就是「代数余子式」名字里「代数」的含义:它不是新东西,是把低一阶行列式按符号约定装配进来。这套递归在第 8 章求逆公式(伴随矩阵)里还会再立大功。
对角线法则(Sarrus)的边界 :三阶有个好记的「画对角线」展开法,但它只对三阶成立 。四阶完全展开有 4! = 24 项,对角线画法只能覆盖 8 项,照抄必错——它是 6 项结构在 3×3 网格上的巧合排布,不是普适规律。四阶以上,请老老实实用按行展开或 7.4 的消元法。
📐 例题 3 三阶行列式:按第一行展开(完整过程)
计算 A = [[2,1,3],[1,0,2],[4,1,2]] 的行列式。
思路 按第一行展开:det = 2·M₁₁ − 1·M₁₂ + 3·M₁₃(符号棋盘 + − +),每个 M 是划掉所在行、列后的二阶行列式。
解 划掉第 1 行第 1 列:M₁₁ = det[[0,2],[1,2]] = 0×2 − 2×1 = −2;
划掉第 1 行第 2 列:M₁₂ = det[[1,2],[4,2]] = 1×2 − 2×4 = 2 − 8 = −6;
划掉第 1 行第 3 列:M₁₃ = det[[1,0],[4,1]] = 1×1 − 0×4 = 1;
det(A) = 2×(−2) − 1×(−6) + 3×1 = −4 + 6 + 3 = 5。
答:det(A) = 5,单位立方体被这个变换放大为体积 5 倍。 ⚠ 易错点:第二项符号是「−」最容易漏;展开哪一行都可以——挑 0 多的行最省力。
📐 例题 4 用行列式算平行六面体体积
三条棱向量 u=(2,0,1)、v=(1,2,0)、w=(0,1,2) 从同一点出发,求它们张成的平行六面体体积。
思路 把 u、v、w 依序作为矩阵的三列(按行拼也一样,det(Aᵀ)=det(A)),体积 = |det|。
解 det[[2,0,1],[1,2,0],[0,1,2]] 按第一行展开:
= 2×det[[2,0],[1,2]] − 0×det[[1,0],[0,2]] + 1×det[[1,2],[0,1]]
= 2×(4−0) − 0 + 1×(1−0) = 8 + 1 = 9
答:体积为 9。 ⚠ 易错点:0 乘的那个余子式根本不用算(0 乘任何数都是 0)——这正是「挑 0 多的行展开」省力的原理。
三阶行列式是体积缩放
左边单位立方体体积为1,经三阶矩阵变换后变成右边的平行六面体,体积放大 det 倍。
变换前:单位立方体(体积 1)
三条棱互相垂直,各长 1
⟶
矩阵 A
变换后:平行六面体
体积 = |det(A)| × 1 = 5(例题 3 的矩阵)
图 7-3 三阶行列式 = 体积缩放倍数:单位立方体被三列向量「拉」成平行六面体,体积恰为 |det(A)|。
工程应用:单元体积与「雅可比」体检
有限元软件给每个四面体/六面体单元算一个行列式——单元体积不能为零、不能为负:零意味着单元压扁(节点几乎共面),负意味着单元「翻面」(编号顺序绕反了),两者都会让计算崩坏,网格质量检查(俗称 jacobian check,雅可比检查)会把它们揪出来。流体仿真里网格随流动不断变形,每个单元的体积变化率(局部缩放因子)同样是行列式——单元被压得太扁,误差就失控,软件报警的阈值背后就是 |det|。
预告:行列式家族的明星——范德蒙行列式
有一类结构齐整的行列式叫范德蒙行列式 (Vandermonde determinant):各行按 1、x、x²……的幂次排布,其值等于所有「下标大的 x 减下标小的 x」的连乘积。它的著名应用在多项式插值:给定 n 个互不相同的点,要求唯一的插值多项式,其系数方程组的矩阵正是范德蒙矩阵——x 互异保证 det≠0,从而保证解存在且唯一(「det≠0 ⇒ 唯一解」的完整版在下一章)。现在记个名字即可,用到时再回来查。
辨析:对角矩阵与三角矩阵的「免检通道」
上三角矩阵按第一行展开,每层都会砍出 0 项,最后只剩对角元连乘——三角矩阵的行列式 = 对角元乘积 (例:[[2,1],[0,3]] 的 det = 6,副对角上的 1 完全不参与)。对角矩阵是特例。这个「免检通道」正是消元法求行列式的支柱:把矩阵消成上三角,答案就是对角元乘积。
深化二:完全展开的六项全景与对角线复核
把三阶展开推到底:det(A) = aei + bfg + cdh − ceg − bdi − afh,恰 6 项、正负各半。规律一目了然:每项的三个因子「每行取一个、每列取一个」(像国际象棋的车走遍棋盘);正项对应列指标的偶排列,负项对应奇排列,棋盘符号 (−1)^(i+j) 就是排列奇偶性的便捷记法。对角线法则之所以只对三阶成立,是因为 6 项恰能排成「三条主对角、三条副对角」的漂亮图案;四阶有 24 项,画不出这种图案,硬画必错。
用对角线法则复核例题 3 的 [[2,1,3],[1,0,2],[4,1,2]]:主对角三项 = 2×0×2 + 1×2×4 + 3×1×1 = 0 + 8 + 3;副对角三项 = 3×0×4 + 1×1×2 + 2×2×1 = 0 + 2 + 4;det = 11 − 6 = 5——与按行展开完全一致。两条路互相印证,是最便宜的自查。
例题 5 的第三步也可以一鼓作气化成严格上三角:在 [[1,2,3],[0,−3,−5],[0,2,3]] 上做 r₃ ← r₃ + (2/3)r₂,得 (0, 0, −1/3)——第二列的 2 被 (2/3)×(−3) = −2 恰好抵消。此时 det = 2 × [1×(−3)×(−1/3)] = 2×1 = 2。分数出现了,但「对角元连乘」的机械感更彻底:这正是软件内部的做法——不怕分数,只求流程统一。
深化三:三条公理定乾坤
更高的观点:行列式是「满足三条性质的唯一函数」——(1) det(I) = 1;(2) 对每一行线性;(3) 交换两行变号。从这三条出发,本章所有公式(ad − bc、按行展开、det(AB) = det(A)det(B)、det(Aᵀ) = det(A))都能被推出来,无一例外。这回答了那个终极问题:「这个定义为什么非它不可?」——凡是想给方阵配一个「体积缩放率」的函数,都必须长成 det 这副模样。数学里把这种「公理钉死唯一对象」的局面叫特征刻画 ,它是概念合法性的最高证书,也是判断一个定义「好不好」的金标准。
7.4 行列式的关键性质
行列式有几条「一用就省事」的性质,每条都能用几何直觉验证:
行列式核心性质
性质 几何解释
det(I) = 1(单位矩阵) 不动任何东西,面积/体积不变
交换两行 → 行列式变号 翻转了空间方向(镜像)
某行乘以 k → 行列式乘以 k 某个方向拉伸 k 倍,体积也乘 k
两行相同 → 行列式为 0 两列共线,面积/体积塌缩为 0
det(AB) = det(A)·det(B) 先缩放 k 倍、再缩放 l 倍,共缩放 k·l 倍
最漂亮的是最后一条 det(AB)=det(A)det(B) :两个变换连着做,总的缩放倍数就是两个缩放倍数的乘积。这也反过来印证了第 5 章「乘法 = 复合变换」的正确性。
🧠 一句话记忆 交换行变号、乘 k 跟着乘、相同行归零、复合缩放相乘。
深化一:性质的「证明示范」——倍加行为何不变号
性质表里最值得亲自动手证明的一条是「某行加上另一行的 k 倍,行列式不变」。设第 i 行为 rᵢ,加的是 k·rⱼ。由行列式对每一行线性:
det(…, rᵢ + k·rⱼ, …) = det(…, rᵢ, …) + k·det(…, rⱼ, …)
第二个行列式里 rⱼ 出现了两次(第 i 行和第 j 行相同),等于 0。于是倍加后的行列式 = 原行列式,证毕。整个过程只动用两条更原始的性质:「行线性」与「两行相同为零」——用最少的公理推出整张性质表,这种「公理化」味道正是行列式的理论魅力。
深化二:化上三角——行列式的实用算法
把三条性质串起来(换行变号记次数、行提公因子、倍加不变)就得到通用算法:高斯消元把矩阵化成上三角,det = 对角元乘积 × (−1)^换行次数 。手算 4 阶以上、计算机算任意阶,走的都是这条路。算力差距有多大?按定义展开,n 阶要算 n! 项:n = 10 时是 362 万多项乘积;n = 20 时约 2.4×10¹⁸ 项,全世界的计算机加起来也算不完。消元法只需约 n³/3 次乘加——n = 20 不过两千多次。一边是宇宙级天文数字,一边是毫秒级任务:这是「算法复杂度」决定生死的标准案例,也是 7.2 节「消元推导」的自然延伸。
📐 例题 5 性质联手:先提公因子,再消元
计算 D = det[[2,4,6],[4,5,7],[2,6,9]]。
思路 第一行有公因子 2,先提出(行列式整体乘 2);再做倍加消元,把矩阵化成「第一列只剩主元」的形状,按第一列收尾。
解 第一步(提公因子):D = 2 × det[[1,2,3],[4,5,7],[2,6,9]]。
第二步(倍加消元,不改变行列式):r₂ ← r₂ − 4r₁ 得 (0,−3,−5),r₃ ← r₃ − 2r₁ 得 (0,2,3),于是 D = 2 × det[[1,2,3],[0,−3,−5],[0,2,3]]。
第三步(按第一列展开,只有主元 1 参与):D = 2 × 1 × det[[−3,−5],[2,3]] = 2 × [(−3)×3 − (−5)×2] = 2 × (−9+10) = 2 × 1 = 2。
追问 若已知另一个三阶矩阵 B 的 det(B) = 5,则 det(3B) = 3³×5 = 135(每行都乘 3,共提了 3 次),det(Bᵀ) = 5,det(B²) = det(B)·det(B) = 25,det(B·B⁻¹) = det(B)·det(B⁻¹) = 1 即 det(B⁻¹) = 1/5(倒数关系,下一章的常客)。
答:D = 2。 ⚠ 易错点:「一行乘 k」只让 det 乘一次 k;「整个矩阵乘 k」(即 kA)是每行都乘了一遍,det 乘 kⁿ——n 是阶数,别按一次算。
工程应用:大型方程组的「奇异体检」
求解大型线性方程组(结构刚度方程、电路节点方程)前,软件并不真的去算行列式——大矩阵的 det 数值上容易溢出,也没有必要。实际做法是直接做 LU 分解(高斯消元的工程版):消元过程中一旦出现「零主元」,矩阵奇异的警报立刻拉响——结构上有未约束的刚体位移或机构、电路上有退化回路。行列式的六条性质撑起了整套流程的理论地基,「det≠0」以「主元全非零」的身份在代码里站岗。
辨析:「乘 k」与「加 k 倍」一字之差
「某一行乘 k」→ det 乘 k:这是沿自己方向的拉伸 ,厚度变了。「某一行加另一行的 k 倍」→ det 不变:这是沿平行方向的剪切滑动 ,像把一摞书沿桌面推歪——底面积没变。几何上一秒分辨:推歪(剪切)保体积,垫高(拉伸)改体积。代数上一秒分辨:前者改了对角元(各方向的伸展),后者只改了非对角位置(方向的倾斜)。
深化二:性质对列同样成立(附快速验算)
由 det(Aᵀ) = det(A),把「行」字换成「列」字,六条性质全部照搬成立:换列变号、列乘 k 跟着乘、两列相同归零、倍加列不变。操作自由度翻倍:求 det 时既可做行倍加,也可做列倍加(解方程组时列变换要谨慎——它对应「重新组合未知数」,但求行列式完全合法)。顺手做两个 10 秒小验算:[[1,2],[3,4]] 的 det = −2,交换两行得 [[3,4],[1,2]],det = 2——变号 ✓;[[3,5],[3,5]] 两行相同,det = 0 ✓。这种「随手反例/正例」的习惯,是把性质表变成肌肉记忆的捷径。
7.5 行列式为零:空间被压扁了
最重要的一条性质:det(A) = 0 意味着什么?
从几何看:行列式是面积/体积缩放倍数。倍数为 0,意味着变换把整个平面(或空间)压扁了 ——二维的面被压成一条线或一个点,三维的体被压成面、线或点。维度塌缩了。
什么时候会塌缩?当矩阵的两列共线(线性相关) 时:两个基向量被送到同一条直线上,原本的正方形被「压扁」成一条线段,面积自然是 0。
核心结论 det(A) = 0 ⇔ A 的列线性相关 ⇔ 变换发生了维度塌缩(不可逆) 。det(A) ≠ 0 ⇔ 列线性无关 ⇔ 变换可逆。
这条结论把三件事串了起来:行列式为零 = 列线性相关(第 2 章)= 空间被压扁 = 变换不可逆(下一章要讲的逆矩阵不存在) 。它是全书最常被引用的「判定开关」。
🧠 一句话记忆 det=0 → 压扁了 → 回不去了(不可逆);det≠0 → 没压扁 → 能还原(可逆)。
深化一:det = 0 的完整故事链
把这一节的结论写成一条链,每一环都有明确的主人:det(A)=0 ⇔ 列线性相关(第 2 章的定义)⇔ 存在非零 x 使 Ax=0(把「相关」翻译成方程)⇔ 空间被压扁(第 7 章几何)⇔ 变换不可逆(第 8 章)⇔ 方程组对某些 b 无解、对另一些 b 有无穷多解(第 6、9 章)。其中「Ax=0 有非零解 ⇔ det=0」特别值得停一秒:非零解 x 意味着 A 的列做一次「系数不全为零的组合」恰好凑出零向量——这正是线性相关的原始定义,行列式零与非零把两件事焊在一起。
深化二:压扁的「程度」——det 只报警,rank 才有刻度
det = 0 只说「塌了」,没说「塌成什么样」。二维平面被压扁:可能压成一条直线(两列共线但非零),也可能压成一个点(两列全为零)——两种塌法都叫 det=0。三维空间被压扁:可能塌成面、线或点。「塌剩几维」这个刻度,行列式给不了,要等第 9 章的秩 来度量。记住分工:det 是 0/非 0 的布尔开关,rank 是 0 到 n 的刻度尺 。
det=0:两列共线,正方形被压成线段
左边单位正方形面积1;右边两列向量共线,平行四边形退化成线段,面积0。
变换前:面积 1
正方形「原来住在这里」
⟶
两列共线
变换后:面积 0
u=(2,1)
v=(4,2)=2u
平面被压成一条线,det = 0
图 7-4 det = 0 的几何现场:两列共线(v = 2u),平行四边形退化成线段,面积归零——空间被压扁一维。
📐 例题 6 含参数的行列式:什么时候被压扁?
(a) 矩阵 A = [[1,2],[3,k]],k 取何值时变换把平面压扁?(b) 矩阵 B = [[1,2,3],[2,4,6],[0,0,k]],行列式是多少?
思路 (a) 令 det = 0 解出 k;(b) 先别急着展开——观察行之间的比例关系再动手。
解 (a) det(A) = 1×k − 2×3 = k − 6。令其为 0 得 k = 6 。复核:k=6 时两列为 (1,3)、(2,6),后者恰是前者的 2 倍——共线压扁成立。
(b) 第二行恒等于第一行的 2 倍((2,4,6) = 2×(1,2,3)),由「两行成比例 ⇒ det = 0」直接得 0,与 k 无关。用展开复核:按第三行展开,det = k×det[[1,2],[2,4]] = k×0 = 0。
答:(a) k = 6;(b) 恒为 0。 ⚠ 易错点:(b) 是道「陷阱题」——不少人抱着 k 硬算三个余子式,却忘了先扫一眼成比例的行。看到比例,立刻定性。
深化三:几乎为零 ≠ 为零(数值警告)
理论上 det≠0 就可逆,但工程计算要多个心眼:det 极小(比如 10⁻¹⁰)意味着矩阵「接近奇异」——输入的微小扰动会引起输出的剧烈变化,这种问题叫病态 (ill-conditioned)。例如 [[1,1],[1,1.0001]] 的 det = 10⁻⁴,可逆,但解方程时数据末位的误差会被放大约一万倍。数值分析用「条件数」量化这种脆弱性。工程语境里请记住:det = 0 是悬崖,det ≈ 0 是悬崖边 ——悬崖边站得住,但一阵风就够呛。
工程应用:「奇异性」是仿真软件的高频报警词
结构仿真中「刚度矩阵奇异」意味着存在未被约束的刚体位移或机构(约束没加够,模型可以整体漂移或绕轴转动);测量系统里「布置矩阵奇异」意味着某些方向被重复测量、而另一些方向无人看守——传感器不少,独立信息不够。两种情况的数值表现都是主元为零。学会用 det/秩的语言描述它们,是与仿真软件、有限元团队顺畅沟通的入场券。
辨析与衔接:一个开关串起三章
第 2 章的「线性相关」是抽象定义,本章把它几何化为「压扁」,下一章再把它的代数后果补全为「不可逆」。三章共用同一个开关 det——这是全书第一次出现「一个概念、三重视角」的接力,后面秩、特征值都会沿用这种讲法。
深化四:把「塌法」列成清单
用一张清单给压扁分级(以二维方阵为例):两列都非零但共线 → 压成一条直线;两列之一为零向量 → 仍是压成线;两列全为零 → 压成一个点。三维同理:塌成面、塌成线、塌成点。det = 0 背后藏着好几个不同的世界——「正不正常」det 说了算,「坏到什么程度」要交给第 9 章的秩来回答。读工程报告看到「刚度矩阵奇异」时,多问一句「秩亏了几」:这一问,就把布尔报警变成了定位诊断。
「几乎奇异」的病态感,给个具体数字体验:解 [[1,1],[1,1.0001]]·x = (2, 2.0001),答案是 x = (1,1);把 b 抖动到 (2, 2.001)——右端只动了 0.0009——解瞬间跳到 x = (−8, 10)。右端万分之九的扰动换来了解 9 倍的位移:det = 10⁻⁴ 的矩阵把误差放大了四个数量级。悬崖边,果然一阵风就够呛。
下一章正式接过接力棒:det≠0 保证「能还原」,那么「反着做」的那个矩阵长什么样、怎么求出来?——这正是逆矩阵。到时你会发现,求逆公式的每一个零件(余子式、行列式、除以 det),本章都已经提前备好。
📦 数学史小注:先有行列式,后有矩阵
1693 年,莱布尼茨在给友人的信件里为求解三元方程组写下了行列式展开的雏形;日本数学家关孝和也在相近年代独立发展了类似算法。「矩阵」这个词要到 1850 年才由西尔维斯特命名,系统的矩阵代数更是 1850 年代之后的事——行列式比矩阵早了约一个半世纪 。
「determinant(决定因素)」这个名字来自高斯:他发现这个数「决定」了方程组解的结构。本教材的顺序恰好与历史相反——我们先建立「矩阵 = 变换」的几何直觉,再引出行列式。两条路都通罗马:历史的路是「先算后懂」,我们的路是「先懂后算」。
本章小结
行列式 = 线性变换对面积/体积的缩放倍数 (可正可负,负号表示翻转)。
二阶 :det([[a,b],[c,d]]) = ad − bc,绝对值是平行四边形面积。
三阶及以上 :按行展开(代数余子式),本质仍是体积缩放。
关键性质:交换行变号、det(AB)=det(A)det(B)、对角矩阵 det=对角元乘积。
det=0 ⇔ 列线性相关 ⇔ 空间被压扁 ⇔ 不可逆 。
算法主线 :高阶行列式用消元化上三角,det = 对角元乘积 × (−1)^换行次数;按定义展开只在低阶使用。
三条恒等式 :det(kA) = kⁿdet(A)、det(Aᵀ) = det(A)、det(A⁻¹) = 1/det(A);「一行乘 k」与「kA」的区别是高频考点。
数值警示 :det ≈ 0 是「接近奇异」的病态信号,工程上以条件数监控——det=0 是悬崖,det≈0 是悬崖边。
读完本章,你应该能……
用「面积缩放」解释行列式的几何意义。
计算 det([[3,1],[2,4]]),并说明它代表什么。
解释 det([[2,0],[0,5]])=10 为什么和「拉伸」直觉一致。
说明为什么「两行相同」时行列式为 0。
判断 det(A)=0 时,变换对空间做了什么。
用「性质巧算」(提公因子、倍加消元、挑 0 多的行展开)手算一个三阶行列式。
说出 det(kA) = kⁿdet(A) 的理由,并解释它和「一行乘 k」的区别。
解释「det 很小但非零」的矩阵在数值计算中意味着什么。
用「化上三角 × 对角元」复核例题 5 的行列式。
用例题 4 的方法算一个平行六面体体积,并解释 |det| 与符号各自的意义。
思考题
1. det([[1,2],[2,4]]) 是多少?它在几何上说明什么?
提示:1·4−2·2=0。两列 (1,2)、(2,4) 共线,平行四边形被压成线段,面积为 0。
2. 为什么 det(AB)=det(A)det(B)?用「缩放倍数」解释。
提示:A 缩放 det(A) 倍,B 再缩放 det(B) 倍,复合后共缩放 det(A)·det(B) 倍。
3. 旋转 90° 的矩阵 [[0,−1],[1,0]],其行列式是多少?为什么面积不变?
提示:0·0−(−1)·1=1。旋转不改变图形大小,只改变位置,面积不变,行列式为 1。
4. det(A)=−3 中的负号代表什么?|det(A)| 又代表什么?
提示:负号表示变换翻转了空间方向(镜像);|det(A)|=3 表示面积放大了 3 倍。
5. 计算 det([[2,−1],[3,4]]),并说明它代表的几何含义。
提示:2×4 − (−1)×3 = 8 + 3 = 11。单位正方形被放大为面积 11 的平行四边形,方向未翻转。
6. 计算 det([[1,2,3],[4,5,6],[7,8,10]])。若把 10 换回 9 呢?
提示:1×(50−48) − 2×(40−42) + 3×(32−35) = 2 + 4 − 9 = −3。换成 9 时行列式恰为 0:三行成等差(第 1 行 + 第 3 行 = (8,10,12) = 2×第 2 行),行线性相关。这也是第 9 章还会登场的经典矩阵。这也是第 9 章的经典例子。
7. 三阶矩阵 A 满足 det(A) = 2。求 det(2A)、det(−A)、det(Aᵀ)。
提示:det(2A) = 2³×2 = 16(每行都乘 2,乘了三次);det(−A) = (−1)³×2 = −2;det(Aᵀ) = det(A) = 2。
8. 三维空间中,u=(1,0,1)、v=(0,1,1)、w=(1,1,2) 张成的平行六面体体积是多少?
提示:w = u + v(第三向量被前两个表出),三向量共面,det = 0,体积为 0——「w 没有贡献新方向」的行列式说法。
9. 不做任何展开,直接写出 det[[1,2,3],[0,5,6],[0,0,9]]。
提示:上三角矩阵的行列式 = 对角元乘积 = 1×5×9 = 45。这就是「化上三角」路线的极端情形——原本就是上三角,一步读数。