笃行
首页
个人 & 心法
互联网/硬件后台
游戏基础架构
UE 引擎
游戏业务
AI / 大模型
数据结构与算法
机器学习数学
通用基础
GitHub
首页
个人 & 心法
互联网/硬件后台
游戏基础架构
UE 引擎
游戏业务
AI / 大模型
数据结构与算法
机器学习数学
通用基础
GitHub
  • 向量入门

    • 看得见的机器学习数学
    • 向量是什么
    • 向量的加减与数乘
    • 线性组合与张成
  • 矩阵与变换

    • 矩阵是一次变换
    • 矩阵乘法
  • 度量与求解

    • 行列式与面积
    • 解方程组就是倒着走回去
    • 特征向量的直觉
    • 点积与相似度
  • 高维与结构

    • 高维空间的直觉
    • 正交基与投影
    • 秩与低秩
    • 长度与归一化
    • 线性与非线性
  • 概率与信息

    • 概率分布与采样
    • 期望与方差
    • 指数与 softmax
    • 对数与信息量
    • 交叉熵
  • 学习与优化

    • 导数就是坡度
    • 梯度下降
    • 链式法则与反向传播

行列式:一格面积被放大了几倍

变换前那块 1×1 的小方格,变换后成了个歪歪扭扭的平行四边形。它现在有多大?

🧠 一句话结论

行列式就是一个数:它告诉你面积被放大了几倍。等于 1 面积没变,等于 0 说明整张纸被拍扁了,是负数说明纸被翻了个面。


场景问题

上两篇我们一直在问"纸变成什么形状了"。这个问题的答案是一整个矩阵——四个数字,信息量不小。

现在换个问法,一个能用一个数回答的问法:

纸被拉扯之后,上面的东西变大了还是变小了?变了多少倍?

这个问法看着比"形状"简单粗糙,但它抓住了一件形状说不清的事。比如你想知道:"这次变换有没有把信息弄丢?"——形状告诉不了你,而这个"放大倍数"能,而且答案极其干脆。

这个数有个名字叫行列式。名字起得非常糟糕(听起来像"排队的式子",跟它的含义毫无关系),所以请你忘掉这个名字的字面意思,只记住它是什么:面积的放大倍数。

实现方案

盯住那块单位方格

变换前,两块底砖"向右一格"和"向上一格"围出一个 1×1 的小方格,面积正好是 1。

变换后,两块底砖搬到了新地方,它们围出的图形变成了一个平行四边形(还记得线性变换保证"平行线还平行"吗?所以它必然是平行四边形,不会是别的形状)。

行列式 = 这个平行四边形的面积。

因为原来的面积是 1,所以"新面积"和"放大了几倍"是同一个数——这就是为什么专门盯住这块单位方格:它让倍数和面积恰好重合,省了一次除法。

变换前面积 = 1变换后面积 = 5(2,1)(1,3)行列式 = 5,意思是"面积放大了 5 倍"

图上这个例子,两块底砖落到了 (21)\begin{pmatrix} 2 \\ 1 \end{pmatrix}(21​) 和 (13)\begin{pmatrix} 1 \\ 3 \end{pmatrix}(13​),围出的平行四边形面积是 5。所以这次变换的行列式是 5:纸上的东西,面积都变成了原来的 5 倍。

不只是那一格:整张纸都放大同样的倍数

上面只量了单位方格那一块。但你真正关心的可能是纸上任意一块地方——比如你画的一个圆、一个三角形、一片乱涂的形状。

好消息:所有图形的面积,都放大同样的倍数。

为什么?因为格子必须保持平行等距。整张纸是由无数个一模一样的格子铺成的,每一格都被同样地拉扯成同样的平行四边形。你画的任何图形,都可以用许许多多小格子近似拼出来(格子取得足够小,就足够准)——既然每一小格的面积都变成 5 倍,那拼出来的整个图形自然也是 5 倍。

所以行列式说的不是"那一格",而是整个平面的面积缩放倍数。一个数管全场。

三种值,三种命运

行列式这个数,按取值分三种情况,各对应一件很不一样的事:

行列式几何上发生了什么例子
= 1面积完全没变旋转(转个方向而已,大小不变)、剪切(推扑克牌,底面积不变)
> 1面积变大拉伸到 2 倍宽,行列式 = 2
0 到 1 之间面积缩小缩到一半宽,行列式 = 0.5
= 0面积归零——整张纸被拍扁了把纸压到一条线上
< 0面积变了「绝对值」倍,而且纸被翻了个面左右照镜子,行列式 = -1

前三行不奇怪。后两行值得各自展开讲。

等于 0:纸被拍扁了

这是行列式最重要的一个取值。

如果两块底砖变换后落在同一条直线上(互相平行),那它们就围不出平行四边形了——图形塌成了一根线段,面积是 0。

盯住下面的动画。看那块紫色的平行四边形怎么一点点被压薄,在正中间那一刻彻底变成一条线,然后又从另一侧张开:

面积 5 → 压薄 → 0(压成一条线) → 翻面变负青色底砖慢慢转向橙色,重合那一刻面积归零

这件事你之前见过。 第三篇讲张成时,我们看到两根箭头转到平行时,势力范围从整个平面塌成一条直线。

那就是同一件事,只是换了个说法:

第三篇的说法这一篇的说法
两根箭头平行了两块底砖落在同一条线上
张成从平面塌成一条线平行四边形被压成线段
有一根积木是多余的(线性相关)行列式 = 0

所以"行列式 = 0"是个警报信号:它在说"这次变换把整个二维平面压进了一维,信息被压没了"。

信息怎么就没了呢?想想被拍扁的过程:原来一整条线上的点,全被挤到了同一个位置上。你看着挤在一起的结果,根本没法分辨它们原来在哪儿。这个"没法分辨",就是下一篇"方程解不出来"的真正原因。

是负数:纸被翻了个面

最后这种情况最有意思。行列式怎么会是负数?面积还能是负的吗?

面积不会是负的。 负号记的不是面积,是另一件事:纸被翻面了。

想象你的方格纸是透明的塑料片,正面朝上放着。现在把它翻过来(像翻煎饼那样),再放回桌上。会发生什么?

  • 原来"向右"在"向上"的顺时针方向
  • 翻过来之后,"向右"变成在"向上"的逆时针方向

左右颠倒了。就像你的左手和右手——形状一模一样,但你没法把左手戴进右手的手套里,因为它们手性相反。

行列式的负号就是在记录这件事:两块底砖的相对方位关系被颠倒了。

在上面那个动画里,你能看到这个瞬间:青色箭头本来在橙色的左边,慢慢转过去,和橙色重合(面积 = 0 那一刻),然后跑到了橙色的右边。穿过 0 的那一刻,就是纸翻面的那一刻。

所以负行列式读作两句话:

  • 绝对值(比如 −3-3−3 的绝对值是 3)= 面积放大了 3 倍
  • 负号 = 而且纸被翻了个面

举个最干净的例子:左右照镜子的变换 (−1001)\begin{pmatrix} -1 & 0 \\ 0 & 1 \end{pmatrix}(−10​01​),行列式是 −1-1−1。面积一点没变(绝对值是 1),但左右颠倒了(负号)。

那个公式:ad−bcad - bcad−bc

现在来看课本给的公式。对于

A=(abcd)A = \begin{pmatrix} a & b \\ c & d \end{pmatrix} A=(ac​bd​)

行列式是

det⁡A=ad−bc\det A = ad - bc detA=ad−bc

拿前面那个例子验算:(2113)\begin{pmatrix} 2 & 1 \\ 1 & 3 \end{pmatrix}(21​13​),得 2×3−1×1=52 \times 3 - 1 \times 1 = 52×3−1×1=5。和我们从图上量出的面积 5 一致。

这个公式是从哪儿来的? 它就是"平行四边形面积"算出来的结果。想直观感受一下:把那个平行四边形放在一个 (a+b)×(c+d)(a+b) \times (c+d)(a+b)×(c+d) 的大长方形里,用大长方形的面积减掉四周多余的三角形和小长方形,化简之后剩下的正好是 ad−bcad - bcad−bc。

(这个推导过程你现在不用会推。重要的是知道它不是天上掉下来的规定,而是一块面积。你甚至可以自己在方格纸上画个例子数格子验证。)

顺便:这个公式也解释了为什么"两块底砖平行时行列式是 0"。如果第二列是第一列的 kkk 倍,那 b=kab = kab=ka、d=kcd = kcd=kc,代进去:a⋅kc−ka⋅c=0a \cdot kc - ka \cdot c = 0a⋅kc−ka⋅c=0。平行 → 行列式为 0,代数和几何完全对上。

为什么这么做

为什么盯着"面积"这个量,而不是别的(比如周长)?

因为面积在线性变换下变化得特别规矩——所有图形统一乘同一个倍数,一个数就能管全场。

周长可不行。同一次变换,一个横放的长条和一个竖放的长条,周长变化的倍数完全不同(横向拉伸会让横边变长、竖边不变)。没有"周长放大倍数"这个统一的数,所以周长这条路走不通。

而且面积恰好携带了"信息有没有丢"这个关键情报(面积归零 = 被拍扁 = 信息丢了),这是周长给不了的。

为什么非要专门量"单位方格"?

因为它把答案变得最省事:原面积是 1,所以新面积的数值直接就是倍数,不用做除法。这是个纯粹的偷懒技巧,但很值。

为什么要允许行列式是负数?只报绝对值不好吗?

因为负号携带了真实的信息:纸有没有被翻面。

这件事在现实中很要紧。举例来说,游戏里判断一个三角形是"正面朝着你"还是"背面朝着你",靠的就是这个符号——背面朝你的三角形可以直接不画,省一半计算量。如果扔掉负号,你就分不清正反面了。

一个数,两件事:大小说面积,符号说正反。挺划算的。

为什么别的选择不行

死胡同一:以为"矩阵里的数大,行列式就大"

直觉上,四个数字都很大的矩阵,应该"变形很剧烈、放大很多倍"吧?

看这个:

(100200200400)\begin{pmatrix} 100 & 200 \\ 200 & 400 \end{pmatrix} (100200​200400​)

数字都挺大。算一下行列式:100×400−200×200=40000−40000=0100 \times 400 - 200 \times 200 = 40000 - 40000 = \mathbf{0}100×400−200×200=40000−40000=0。

是 0。 这个矩阵把整个平面拍成了一条线。

为什么?看两列:(100200)\begin{pmatrix} 100 \\ 200 \end{pmatrix}(100200​) 和 (200400)\begin{pmatrix} 200 \\ 400 \end{pmatrix}(200400​)——第二列恰好是第一列的 2 倍,两块底砖平行。它们确实都被搬得很远(离原点 200 多格),但落在了同一条直线上,围不出任何面积。

教训:行列式量的是"张开的程度",不是"跑了多远"。 两根箭头再长,只要方向一致,围出的面积就是 0。就像两根筷子并在一起,不管多长,都夹不住一片面积。

死胡同二:以为负行列式意味着"负面积"

看到 det⁡A=−3\det A = -3detA=−3,很容易脱口而出"面积是 -3"。

面积不可能是负的。 一块地方多大,怎么可能少于零?

正确的读法是把这个数拆成两半读:

  • ∣−3∣=3|-3| = 3∣−3∣=3 → 面积变成了 3 倍(这是个正数,符合常理)
  • 负号 → 纸被翻了个面(这是个方位信息,跟大小无关)

打个比方:温度计上的 −5-5−5 度不是"负的热量",而是"比零点低 5 度"——负号是个方向标记,不是量的一部分。行列式的负号也是这样:它标记的是"翻面了",而不是让面积变负。

如果有人问你"这次变换后面积变成几倍",答案是 3 倍,不是 -3 倍。

沉淀结论

  1. 行列式 = 面积的放大倍数,量的是单位方格变成的那个平行四边形的面积
  2. 整张纸统一放大同样的倍数,一个数管全场(因为格子必须平行等距)
  3. = 1 面积不变(旋转、剪切);> 1 变大;0 到 1 之间变小
  4. = 0 → 纸被拍扁,与第三篇"张成塌成一条线"、"有多余积木"是同一件事,意味着信息丢了
  5. < 0 → 纸被翻了面;拆两半读:绝对值管面积倍数,负号管正反面
  6. 公式 ad−bcad-bcad−bc 就是那块面积,不是天上掉下来的规定
  7. 行列式量的是张开程度,不是跑了多远——数字很大也可能是 0

下一篇我们要兑现"信息丢了"这个说法。问题是:已知一个点被搬到了哪儿,能不能倒推它原来在哪儿? 你会看到,行列式是不是 0,决定了这个问题有没有答案。

记忆口诀

行列式就是面积放大了几倍。
等于 1 没变,大于 1 变大,小于 1 缩小。
等于 0 拍扁了——张成塌成线,信息丢光光。
负数是翻面:绝对值管面积,负号管正反。
公式 ad-bc 就是那块面积,不是规定。
数大不等于行列式大——两根筷子并一起,夹不住面积。

长大以后它会变成什么

游戏引擎每帧要判断成千上万个三角形是正面还是背面朝着镜头,背面的直接扔掉不画——判断依据就是这个符号,能省掉将近一半的绘制量。以后可以翻 UE 引擎架构。


自测:合上资料能说清楚吗?

  1. 行列式量的到底是什么?为什么盯着那块 1×1 的小方格看?
参考答案

量的是面积被放大了几倍——具体说是单位方格变换后成为的那个平行四边形的面积。盯住 1×1 的方格是因为原面积恰好是 1,所以新面积的数值直接就是倍数,省了一次除法。

  1. 旋转 90 度的行列式是多少?为什么?
参考答案

是 1。旋转只是把纸转个方向,面积一点没变(也没翻面,所以不是 -1)。剪切也是行列式 1——推一叠扑克牌,底面积不变。

  1. (100200200400)\begin{pmatrix} 100 & 200 \\ 200 & 400 \end{pmatrix}(100200​200400​) 里的数都很大,它的行列式大吗?
参考答案

行列式是 0! 第二列恰好是第一列的 2 倍,两块底砖平行,落在同一条直线上,围不出任何面积。行列式量的是"张开的程度",不是"跑了多远"——两根筷子并在一起,再长也夹不住面积。

  1. 有人说"行列式 = -3 意味着面积是 -3"。他哪里错了?正确读法是什么?
参考答案

面积不可能是负的。 要拆两半读:绝对值 3 说明面积变成 3 倍;负号说明纸被翻了个面(左右颠倒,像左手和右手)。就像 -5 度不是"负的热量",负号是方向标记,不是量的一部分。

  1. 对比"行列式 = 0"和第三篇讲的"两根箭头平行、张成塌成一条线":这是两件事还是一件事?
参考答案

是同一件事的两种说法。 两块底砖平行 = 落在同一条线上 = 围不出面积 = 行列式 0 = 张成从平面塌成一条线 = 有一根积木是多余的(线性相关)。它意味着二维被压进了一维,信息丢了。

最近更新: 2026/9/10 11:38
Next
解方程组就是倒着走回去