行列式:一格面积被放大了几倍
变换前那块 1×1 的小方格,变换后成了个歪歪扭扭的平行四边形。它现在有多大?
🧠 一句话结论
行列式就是一个数:它告诉你面积被放大了几倍。等于 1 面积没变,等于 0 说明整张纸被拍扁了,是负数说明纸被翻了个面。
场景问题
上两篇我们一直在问"纸变成什么形状了"。这个问题的答案是一整个矩阵——四个数字,信息量不小。
现在换个问法,一个能用一个数回答的问法:
纸被拉扯之后,上面的东西变大了还是变小了?变了多少倍?
这个问法看着比"形状"简单粗糙,但它抓住了一件形状说不清的事。比如你想知道:"这次变换有没有把信息弄丢?"——形状告诉不了你,而这个"放大倍数"能,而且答案极其干脆。
这个数有个名字叫行列式。名字起得非常糟糕(听起来像"排队的式子",跟它的含义毫无关系),所以请你忘掉这个名字的字面意思,只记住它是什么:面积的放大倍数。
实现方案
盯住那块单位方格
变换前,两块底砖"向右一格"和"向上一格"围出一个 1×1 的小方格,面积正好是 1。
变换后,两块底砖搬到了新地方,它们围出的图形变成了一个平行四边形(还记得线性变换保证"平行线还平行"吗?所以它必然是平行四边形,不会是别的形状)。
行列式 = 这个平行四边形的面积。
因为原来的面积是 1,所以"新面积"和"放大了几倍"是同一个数——这就是为什么专门盯住这块单位方格:它让倍数和面积恰好重合,省了一次除法。
图上这个例子,两块底砖落到了 和 ,围出的平行四边形面积是 5。所以这次变换的行列式是 5:纸上的东西,面积都变成了原来的 5 倍。
不只是那一格:整张纸都放大同样的倍数
上面只量了单位方格那一块。但你真正关心的可能是纸上任意一块地方——比如你画的一个圆、一个三角形、一片乱涂的形状。
好消息:所有图形的面积,都放大同样的倍数。
为什么?因为格子必须保持平行等距。整张纸是由无数个一模一样的格子铺成的,每一格都被同样地拉扯成同样的平行四边形。你画的任何图形,都可以用许许多多小格子近似拼出来(格子取得足够小,就足够准)——既然每一小格的面积都变成 5 倍,那拼出来的整个图形自然也是 5 倍。
所以行列式说的不是"那一格",而是整个平面的面积缩放倍数。一个数管全场。
三种值,三种命运
行列式这个数,按取值分三种情况,各对应一件很不一样的事:
| 行列式 | 几何上发生了什么 | 例子 |
|---|---|---|
| = 1 | 面积完全没变 | 旋转(转个方向而已,大小不变)、剪切(推扑克牌,底面积不变) |
| > 1 | 面积变大 | 拉伸到 2 倍宽,行列式 = 2 |
| 0 到 1 之间 | 面积缩小 | 缩到一半宽,行列式 = 0.5 |
| = 0 | 面积归零——整张纸被拍扁了 | 把纸压到一条线上 |
| < 0 | 面积变了「绝对值」倍,而且纸被翻了个面 | 左右照镜子,行列式 = -1 |
前三行不奇怪。后两行值得各自展开讲。
等于 0:纸被拍扁了
这是行列式最重要的一个取值。
如果两块底砖变换后落在同一条直线上(互相平行),那它们就围不出平行四边形了——图形塌成了一根线段,面积是 0。
盯住下面的动画。看那块紫色的平行四边形怎么一点点被压薄,在正中间那一刻彻底变成一条线,然后又从另一侧张开:
这件事你之前见过。 第三篇讲张成时,我们看到两根箭头转到平行时,势力范围从整个平面塌成一条直线。
那就是同一件事,只是换了个说法:
| 第三篇的说法 | 这一篇的说法 |
|---|---|
| 两根箭头平行了 | 两块底砖落在同一条线上 |
| 张成从平面塌成一条线 | 平行四边形被压成线段 |
| 有一根积木是多余的(线性相关) | 行列式 = 0 |
所以"行列式 = 0"是个警报信号:它在说"这次变换把整个二维平面压进了一维,信息被压没了"。
信息怎么就没了呢?想想被拍扁的过程:原来一整条线上的点,全被挤到了同一个位置上。你看着挤在一起的结果,根本没法分辨它们原来在哪儿。这个"没法分辨",就是下一篇"方程解不出来"的真正原因。
是负数:纸被翻了个面
最后这种情况最有意思。行列式怎么会是负数?面积还能是负的吗?
面积不会是负的。 负号记的不是面积,是另一件事:纸被翻面了。
想象你的方格纸是透明的塑料片,正面朝上放着。现在把它翻过来(像翻煎饼那样),再放回桌上。会发生什么?
- 原来"向右"在"向上"的顺时针方向
- 翻过来之后,"向右"变成在"向上"的逆时针方向
左右颠倒了。就像你的左手和右手——形状一模一样,但你没法把左手戴进右手的手套里,因为它们手性相反。
行列式的负号就是在记录这件事:两块底砖的相对方位关系被颠倒了。
在上面那个动画里,你能看到这个瞬间:青色箭头本来在橙色的左边,慢慢转过去,和橙色重合(面积 = 0 那一刻),然后跑到了橙色的右边。穿过 0 的那一刻,就是纸翻面的那一刻。
所以负行列式读作两句话:
- 绝对值(比如 的绝对值是 3)= 面积放大了 3 倍
- 负号 = 而且纸被翻了个面
举个最干净的例子:左右照镜子的变换 ,行列式是 。面积一点没变(绝对值是 1),但左右颠倒了(负号)。
那个公式:
现在来看课本给的公式。对于
行列式是
拿前面那个例子验算:,得 。和我们从图上量出的面积 5 一致。
这个公式是从哪儿来的? 它就是"平行四边形面积"算出来的结果。想直观感受一下:把那个平行四边形放在一个 的大长方形里,用大长方形的面积减掉四周多余的三角形和小长方形,化简之后剩下的正好是 。
(这个推导过程你现在不用会推。重要的是知道它不是天上掉下来的规定,而是一块面积。你甚至可以自己在方格纸上画个例子数格子验证。)
顺便:这个公式也解释了为什么"两块底砖平行时行列式是 0"。如果第二列是第一列的 倍,那 、,代进去:。平行 → 行列式为 0,代数和几何完全对上。
为什么这么做
为什么盯着"面积"这个量,而不是别的(比如周长)?
因为面积在线性变换下变化得特别规矩——所有图形统一乘同一个倍数,一个数就能管全场。
周长可不行。同一次变换,一个横放的长条和一个竖放的长条,周长变化的倍数完全不同(横向拉伸会让横边变长、竖边不变)。没有"周长放大倍数"这个统一的数,所以周长这条路走不通。
而且面积恰好携带了"信息有没有丢"这个关键情报(面积归零 = 被拍扁 = 信息丢了),这是周长给不了的。
为什么非要专门量"单位方格"?
因为它把答案变得最省事:原面积是 1,所以新面积的数值直接就是倍数,不用做除法。这是个纯粹的偷懒技巧,但很值。
为什么要允许行列式是负数?只报绝对值不好吗?
因为负号携带了真实的信息:纸有没有被翻面。
这件事在现实中很要紧。举例来说,游戏里判断一个三角形是"正面朝着你"还是"背面朝着你",靠的就是这个符号——背面朝你的三角形可以直接不画,省一半计算量。如果扔掉负号,你就分不清正反面了。
一个数,两件事:大小说面积,符号说正反。挺划算的。
为什么别的选择不行
死胡同一:以为"矩阵里的数大,行列式就大"
直觉上,四个数字都很大的矩阵,应该"变形很剧烈、放大很多倍"吧?
看这个:
数字都挺大。算一下行列式:。
是 0。 这个矩阵把整个平面拍成了一条线。
为什么?看两列: 和 ——第二列恰好是第一列的 2 倍,两块底砖平行。它们确实都被搬得很远(离原点 200 多格),但落在了同一条直线上,围不出任何面积。
教训:行列式量的是"张开的程度",不是"跑了多远"。 两根箭头再长,只要方向一致,围出的面积就是 0。就像两根筷子并在一起,不管多长,都夹不住一片面积。
死胡同二:以为负行列式意味着"负面积"
看到 ,很容易脱口而出"面积是 -3"。
面积不可能是负的。 一块地方多大,怎么可能少于零?
正确的读法是把这个数拆成两半读:
- → 面积变成了 3 倍(这是个正数,符合常理)
- 负号 → 纸被翻了个面(这是个方位信息,跟大小无关)
打个比方:温度计上的 度不是"负的热量",而是"比零点低 5 度"——负号是个方向标记,不是量的一部分。行列式的负号也是这样:它标记的是"翻面了",而不是让面积变负。
如果有人问你"这次变换后面积变成几倍",答案是 3 倍,不是 -3 倍。
沉淀结论
- 行列式 = 面积的放大倍数,量的是单位方格变成的那个平行四边形的面积
- 整张纸统一放大同样的倍数,一个数管全场(因为格子必须平行等距)
- = 1 面积不变(旋转、剪切);> 1 变大;0 到 1 之间变小
- = 0 → 纸被拍扁,与第三篇"张成塌成一条线"、"有多余积木"是同一件事,意味着信息丢了
- < 0 → 纸被翻了面;拆两半读:绝对值管面积倍数,负号管正反面
- 公式 就是那块面积,不是天上掉下来的规定
- 行列式量的是张开程度,不是跑了多远——数字很大也可能是 0
下一篇我们要兑现"信息丢了"这个说法。问题是:已知一个点被搬到了哪儿,能不能倒推它原来在哪儿? 你会看到,行列式是不是 0,决定了这个问题有没有答案。
记忆口诀
行列式就是面积放大了几倍。
等于 1 没变,大于 1 变大,小于 1 缩小。
等于 0 拍扁了——张成塌成线,信息丢光光。
负数是翻面:绝对值管面积,负号管正反。
公式 ad-bc 就是那块面积,不是规定。
数大不等于行列式大——两根筷子并一起,夹不住面积。
长大以后它会变成什么
游戏引擎每帧要判断成千上万个三角形是正面还是背面朝着镜头,背面的直接扔掉不画——判断依据就是这个符号,能省掉将近一半的绘制量。以后可以翻 UE 引擎架构。
自测:合上资料能说清楚吗?
- 行列式量的到底是什么?为什么盯着那块 1×1 的小方格看?
参考答案
量的是面积被放大了几倍——具体说是单位方格变换后成为的那个平行四边形的面积。盯住 1×1 的方格是因为原面积恰好是 1,所以新面积的数值直接就是倍数,省了一次除法。
- 旋转 90 度的行列式是多少?为什么?
参考答案
是 1。旋转只是把纸转个方向,面积一点没变(也没翻面,所以不是 -1)。剪切也是行列式 1——推一叠扑克牌,底面积不变。
- 里的数都很大,它的行列式大吗?
参考答案
行列式是 0! 第二列恰好是第一列的 2 倍,两块底砖平行,落在同一条直线上,围不出任何面积。行列式量的是"张开的程度",不是"跑了多远"——两根筷子并在一起,再长也夹不住面积。
- 有人说"行列式 = -3 意味着面积是 -3"。他哪里错了?正确读法是什么?
参考答案
面积不可能是负的。 要拆两半读:绝对值 3 说明面积变成 3 倍;负号说明纸被翻了个面(左右颠倒,像左手和右手)。就像 -5 度不是"负的热量",负号是方向标记,不是量的一部分。
- 对比"行列式 = 0"和第三篇讲的"两根箭头平行、张成塌成一条线":这是两件事还是一件事?
参考答案
是同一件事的两种说法。 两块底砖平行 = 落在同一条线上 = 围不出面积 = 行列式 0 = 张成从平面塌成一条线 = 有一根积木是多余的(线性相关)。它意味着二维被压进了一维,信息丢了。