想象你手里有一张印着街道和小区网格的橡胶地图。你双手捏住地图两角,随意地拉扯、扭转——原本方方正正的街区,瞬间变成歪歪扭扭的平行四边形。有的区域被拉得又宽又扁,有的被挤得又窄又长,有的甚至整片翻了面。这张地图上每一点附近究竟经历了怎样的变形?面积被放大还是缩小?方向被拧到了哪里?这正是雅可比矩阵要回答的问题。 雅可比矩阵,就像贴在橡皮地图每个点上的“局部变形放大镜”。它用一组偏导数记录这一点附近所有可能的拉伸、压缩、旋转和翻转;它的行列式,则是一个“面积倍率旋钮”——告诉你地图上一个微小方格经过变换后,面积变成了原来的几倍。理解了它,多元微积分里的换元积分公式就不再是凭空冒出来的魔法,而是一张看得见、摸得着的橡皮地图。

岗位关联

掌握雅可比矩阵的几何直觉,是理解多元微积分、坐标变换、机器人运动学和生成模型的核心门槛——它能帮你把抽象矩阵变成直观画面,是 AI 算法工程师处理形变、配准与概率密度变换时的底层工具。

目录
  1. 可视化演示
  2. 雅可比矩阵定义
  3. 几何直观理解
  4. 旋转与拉伸
  5. 雅可比行列式
  6. 坐标变换应用
  7. 复合与逆变换
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

通过网格变换、极坐标换元和定向翻转三个模式,直观展示雅可比矩阵如何描述线性变换的缩放与旋转特性。

本节配有交互动效(进入视口后自动加载,约 3KB)。

线性变换网格 蓝色网格经雅可比矩阵J变换后变为紫色平行四边形网格 红色单位正方形变换后的面积等于|det(J)| det(J) = ad - bc 行列式绝对值即为面积缩放因子

雅可比矩阵定义

想象你手里攥着一张大大的橡皮地图,上面印着整齐的街道网格。你双手一拉一拧,地图瞬间变得歪歪扭扭——但如果你把眼睛凑近某个路口,会发现只要看得足够近,那片小小的区域里,横街还是直的,竖街也还是直的,只是方向和长短悄悄变了。这就是数学里最核心的思想:无论整体多复杂,局部总能“拆”成一个简单的线性规则。

用符号说,地图上的每个点 \((x_1, x_2)\) 经过拉扯后落到新位置 \((f_1(x_1,x_2),\, f_2(x_1,x_2))\)。所谓雅可比矩阵,就是把“这个点附近那个简单的线性规则”装进一张表格:第 \(i\) 行第 \(j\) 列,放的是第 \(j\) 个坐标动一丁点时,第 \(i\) 个新坐标跟着动多少——也就是偏导数 \(\dfrac{\partial f_i}{\partial x_j}\)。

对从 \(\mathbb{R}^2\) 到 \(\mathbb{R}^2\) 的映射 \(f(x_1,x_2) = (f_1(x_1,x_2),\, f_2(x_1,x_2))\),雅可比矩阵写成:

回到橡皮地图:这张表格贴在你要观察的那个路口上,只描述那一小块区域。它不关心地球另一端被拉成什么样,只回答“在这个路口,横着动一毫米、竖着动一毫米,地图会分别往哪个方向偏多少”。下一节我们看看,这张“变形说明书”如何把方格变成平行四边形。

J=[∂f1∂x1∂f1∂x2∂f2∂x1∂f2∂x2]J = \begin{bmatrix} \dfrac{\partial f_1}{\partial x_1} & \dfrac{\partial f_1}{\partial x_2} \\[8pt] \dfrac{\partial f_2}{\partial x_1} & \dfrac{\partial f_2}{\partial x_2} \end{bmatrix}
这个 \(2\times 2\) 矩阵里的四个偏导数,分别回答了“往右拉一点会怎样、往上拉一点会怎样”,相当于局部变形的一整套说明书。
  1. 输出分量\(f_1\)、\(f_2\) 是拉扯后地图上的两个新坐标,它们决定雅可比矩阵的两行。
    f(x1,x2)=(f1(x1,x2)f2(x1,x2))f(x_1,x_2) = \begin{pmatrix} f_1(x_1,x_2) \\ f_2(x_1,x_2) \end{pmatrix}
  2. 输入变量\(x_1\)、\(x_2\) 是拉扯前地图上的原坐标,它们决定雅可比矩阵的两列。
    x=(x1x2)\mathbf{x} = \begin{pmatrix} x_1 \\ x_2 \end{pmatrix}
  3. 偏导格子\(\dfrac{\partial f_i}{\partial x_j}\) 表示第 \(j\) 个输入动一点时第 \(i\) 个输出的变化率,填在第 \(i\) 行第 \(j\) 列。
    Jij=∂fi∂xjJ_{ij} = \frac{\partial f_i}{\partial x_j}
  4. 二维成形输入输出都是二维时,恰好凑齐一个 \(2\times 2\) 的表格。
    J=[∂f1∂x1∂f1∂x2∂f2∂x1∂f2∂x2]J = \begin{bmatrix} \dfrac{\partial f_1}{\partial x_1} & \dfrac{\partial f_1}{\partial x_2} \\[8pt] \dfrac{\partial f_2}{\partial x_1} & \dfrac{\partial f_2}{\partial x_2} \end{bmatrix}

几何直观理解

橡皮地图上印着许多 \(1\times 1\) 的小方格。拉扯之前,每个方格四四方方;拉扯之后,它们全都变成歪斜的平行四边形。这是因为局部的“线性规则”会把正方形相邻的两条垂直边,分别送到两条新边上——这两条新边张开的角度,决定了平行四边形有多歪、有多大。

更精确地说,在点 \(\mathbf{x}_0\) 附近取一个微小位移 \(\Delta \mathbf{x}\),经过映射后,新的位移 \(\Delta \mathbf{y}\) 近似等于“该点的雅可比矩阵 × 旧位移”:

这个公式就是“局部放大镜”的数学版本。只要 \(\Delta \mathbf{x}\) 足够小,变换就几乎是一个线性变换:直线保持直线、平行线保持平行、圆变成椭圆。雅可比矩阵的两列,正是“原来的横轴单位向量”和“原来的纵轴单位向量”被送到的地方。

在橡皮地图的比喻里,这就是你贴在路口的那片放大镜片:透过它,你看到的不再是整块扭曲的地图,而是一小片被拉成平行四边形的街区。每个路口都有自己的平行四边形——这正是雅可比矩阵逐点变化的几何来源。

Δy  ≈  J(x0) Δx\Delta \mathbf{y} \;\approx\; J(\mathbf{x}_0)\,\Delta \mathbf{x}
  1. 微小位移\(\Delta \mathbf{x}\) 是原地图上以 \(\mathbf{x}_0\) 为起点的一个微小位移向量,代表“你在地图上挪了一小步”。
    Δx=(Δx1Δx2)\Delta \mathbf{x} = \begin{pmatrix} \Delta x_1 \\ \Delta x_2 \end{pmatrix}
  2. 映射结果\(\Delta \mathbf{y}\) 是这一小步经过拉扯后的像,代表“地图上实际挪到了哪里”。
    Δy=(Δy1Δy2)\Delta \mathbf{y} = \begin{pmatrix} \Delta y_1 \\ \Delta y_2 \end{pmatrix}
  3. 矩阵作用\(J(\mathbf{x}_0)\) 是一个线性算子,它把旧位移线性地变成新位移,正是镜片的光学度数。
    Δy  ≈  J(x0) Δx\Delta \mathbf{y} \;\approx\; J(\mathbf{x}_0)\,\Delta \mathbf{x}
  4. 近似来源\(\approx\) 表示偏移越小,误差越小,等式越精确——这就是“局部线性化”的几何直觉。

旋转与拉伸

现在拿来一块更讲究的放大镜,仔细端详那个平行四边形。你会发现,不管它被拧得多复杂,变形都可以拆成三步:先把小方格转到一个特殊角度,让它的边刚好对准两个“拉伸方向”;然后沿这两个方向分别拉长或压扁;最后再把整个格子转回最终的位置。

这就是矩阵分析里的极分解(奇异值分解):任何 \(2\times 2\) 雅可比矩阵都可以写成“旋转 × 对角拉伸 × 再旋转”:

中间对角矩阵里的 \(\sigma_1\)、\(\sigma_2\) 叫奇异值,它们就是两个正交方向上的伸缩倍数;左边和右边的旋转矩阵分别负责“最终朝向”和“对齐拉伸方向”。面积放大倍数恰好等于 \(\sigma_1 \sigma_2\),也就是 \(|\det J|\);两个奇异值相等时,方格只是被均匀放大,形状不变。

如果你在橡皮上画一个圆,拉扯后会变成椭圆——椭圆的长轴、短轴就是两个拉伸方向的大小,椭圆旋转的角度就是两次旋转的合成。雅可比分解,只是把“圆变椭圆”这件人人都能看明白的事,翻译成了矩阵语言。

J  =  [cos⁡θ−sin⁡θsin⁡θcos⁡θ][σ100σ2][cos⁡ϕ−sin⁡ϕsin⁡ϕcos⁡ϕ]J \;=\; \begin{bmatrix} \cos\theta & -\sin\theta \\ \sin\theta & \cos\theta \end{bmatrix}\begin{bmatrix} \sigma_1 & 0 \\ 0 & \sigma_2 \end{bmatrix}\begin{bmatrix} \cos\phi & -\sin\phi \\ \sin\phi & \cos\phi \end{bmatrix}
  1. 预旋转 \(R_\phi\)右边的旋转矩阵先把方格转 \(\phi\) 角,让它的边对准拉伸方向。
    Rϕ=[cos⁡ϕ−sin⁡ϕsin⁡ϕcos⁡ϕ]R_\phi = \begin{bmatrix} \cos\phi & -\sin\phi \\ \sin\phi & \cos\phi \end{bmatrix}
  2. 对角拉伸 \(S\)中间矩阵的两个对角元 \(\sigma_1\)、\(\sigma_2\) 是正交方向上的伸缩倍数。
    S=[σ100σ2]S = \begin{bmatrix} \sigma_1 & 0 \\ 0 & \sigma_2 \end{bmatrix}
  3. 后旋转 \(R_\theta\)左边的旋转矩阵再把整体转到最终朝向。
    Rθ=[cos⁡θ−sin⁡θsin⁡θcos⁡θ]R_\theta = \begin{bmatrix} \cos\theta & -\sin\theta \\ \sin\theta & \cos\theta \end{bmatrix}
  4. 面积倍率旋转不改变面积,所以面积倍率就是两个奇异值之积。
    ∣det⁡J∣=σ1σ2|\det J| = \sigma_1 \sigma_2

雅可比行列式

前面我们一直在看“一个方格变成了什么样的平行四边形”。现在要问一个更实际的问题:这块地的面积到底变大还是变小了?这就像房产中介给你看沙盘:沙盘上标 100 平的房子,落到真实地形上可能是 80 平,也可能是 150 平——这个“比例尺”就是雅可比行列式。

对 \(2\times 2\) 矩阵,行列式就是“主对角线乘积减去副对角线乘积”:

它的几何含义漂亮得惊人:单位正方形的面积是 1,经过变换变成的平行四边形,面积恰好等于 \(|ad - bc|\)。所以行列式的绝对值 = 面积放大倍数。符号也有讲究:为正,说明地图只是被拉扯旋转,没翻面;为负,说明橡皮被整片翻了过来(镜像),面积仍然取正的绝对值。

回到房产比喻:行列式等于 3,就是沙盘上 1 平米的房子实际占地 3 平米;等于 0,说明那个位置被捏得完全塌陷(局部不可逆);等于 \(-3\),说明销售把户型图拿反了,但面积还是 3 平。到了三维世界,\(3\times 3\) 雅可比行列式的角色就是体积放大倍数——一切逻辑照旧。

det⁡(J)=∣abcd∣=ad−bc\det(J) = \begin{vmatrix} a & b \\ c & d \end{vmatrix} = ad - bc
  1. 行列式记号用竖线括起的矩阵表示取行列式,结果是单个数值。
    det⁡(J)=∣abcd∣\det(J) = \begin{vmatrix} a & b \\ c & d \end{vmatrix}
  2. 主对角线\(a \times d\) 是沿两个坐标轴方向的“基础放大”。
    adad
  3. 副对角线\(b \times c\) 对应剪切分量对面积的贡献,可能为负。
    bcbc
  4. 面积公式\(ad - bc\) 的绝对值,等于单位正方形变成平行四边形的面积。
    S像=∣ ad−bc ∣S_{\text{像}} = \left|\,ad - bc\,\right|

坐标变换应用

有了“面积倍率旋钮”,换元积分就不再是天上掉下来的公式。假设你要在一块扇形草莓地里种草莓,用直角坐标算面积要跟圆弧较劲;但如果把这块地想象成印在“极坐标网格纸”上——一圈圈同心圆加一根根放射线——那么数格子就变得极其轻松。

极坐标映射 \((x,y) = (r\cos\theta,\, r\sin\theta)\) 的雅可比行列式,就是这张“极坐标网格纸”变成直角坐标纸时的面积倍率:

计算结果是 \(r\)。这意味着:\((r,\theta)\) 参数域里一个小矩形 \(\mathrm{d}r \times \mathrm{d}\theta\),映射到平面上实际占据的面积是 \(r\,\mathrm{d}r\,\mathrm{d}\theta\)——离原点越远,同样角宽度的格子被拉得越宽。因此二重积分换元公式 \(\iint f(x,y)\,\mathrm{d}x\mathrm{d}y = \iint f(r\cos\theta,r\sin\theta)\, r\,\mathrm{d}r\mathrm{d}\theta\) 中那个多出来的 \(r\),正是雅可比行列式。

给橡皮地图加一个口诀:在极坐标地图上数格子,每数一格都要乘以“这一格离圆心的距离 \(r\)”。因为地图外圈被拉得又宽又松,内圈却挤在一起——那个 \(r\) 就是补偿这种疏密的“倍率旋钮”。

∂(x,y)∂(r,θ)=∣cos⁡θ−rsin⁡θsin⁡θrcos⁡θ∣=r(cos⁡2θ+sin⁡2θ)=r\frac{\partial(x,y)}{\partial(r,\theta)}= \begin{vmatrix} \cos\theta & -r\sin\theta \\[4pt] \sin\theta & r\cos\theta \end{vmatrix}= r(\cos^2\theta + \sin^2\theta)= r
  1. 极坐标映射\(x = r\cos\theta\)、\(y = r\sin\theta\) 把 \((r,\theta)\) 网格送到平面。
    {x=rcos⁡θy=rsin⁡θ\begin{cases} x = r\cos\theta \\ y = r\sin\theta \end{cases}
  2. 偏导排列对 \(r\) 和对 \(\theta\) 的四个偏导排成 \(2\times 2\) 矩阵。
    ∣cos⁡θ−rsin⁡θsin⁡θrcos⁡θ∣\begin{vmatrix} \cos\theta & -r\sin\theta \\[4pt] \sin\theta & r\cos\theta \end{vmatrix}
  3. 乘法展开按 \(ad-bc\) 展开,得 \(r\cos^2\theta + r\sin^2\theta\)。
    rcos⁡2θ+rsin⁡2θr\cos^2\theta + r\sin^2\theta
  4. 恒等式化简由 \(\cos^2\theta + \sin^2\theta = 1\),行列式化简为 \(r\)。
    r(cos⁡2θ+sin⁡2θ)=rr(\cos^2\theta + \sin^2\theta) = r

复合与逆变换

实战中你很少只拉一次橡皮。假设你先拉伸地图(变换 \(f\)),再把它交给同事扭转(变换 \(g\))。两段变形叠加在一起,总效果等于什么?如果直觉告诉你“把两种变形加起来”,那就会出错——正确的做法是:先算出第一段的终点,再从那里开始执行第二段。这正是矩阵乘法与链式法则的意义。

对复合映射 \(g \circ f\),雅可比矩阵满足链式法则;而对逆变换,雅可比矩阵取逆、行列式取倒数:

第一条说明:总变形镜片 = 内层代入后的两个雅可比矩阵按顺序相乘,顺序不能交换——就像“先拉长再旋转”和“先旋转再拉长”的手感完全不同。第二条说明:要还原地图,反向缩放因子恰好是正向的倒数;而 \(\det J = 0\) 时逆矩阵不存在,这正是奇异点。

至此橡皮地图的故事完整闭环:你先做标记、拉伸、翻面,再沿原路退回——每一步局部面积变化相乘,最终正好抵消成 1。无论中间经过几手拉扯,总的面积倍率永远等于各手倍率的乘积,这正是雅可比行列式在复合与逆变换中的全部秘密。

Jg ∘ f(x)=Jg(f(x)) Jf(x),det⁡(Jf−1)=1det⁡(Jf)J_{g\,\circ\, f}(\mathbf{x}) = J_g\big(f(\mathbf{x})\big)\, J_f(\mathbf{x}),\qquad\det\big(J_{f^{-1}}\big) = \frac{1}{\det(J_f)}
  1. 复合映射记号\(J_{g\circ f}(\mathbf{x})\) 表示“先 \(f\) 后 \(g\)”的总变形镜片。
    Jg∘f(x)J_{g\circ f}(\mathbf{x})
  2. 内层代入\(J_g(f(\mathbf{x}))\) 表示在 \(f\) 的落点处求 \(g\) 的雅可比,再与 \(J_f(\mathbf{x})\) 连乘。
    Jg∘f(x)=Jg(f(x)) Jf(x)J_{g\circ f}(\mathbf{x}) = J_g\big(f(\mathbf{x})\big)\,J_f(\mathbf{x})
  3. 逆变换\(f^{-1}\) 的雅可比矩阵是 \(J_f\) 的逆矩阵。
    Jf−1(y)=[Jf(f−1(y))]−1J_{f^{-1}}(\mathbf{y}) = \left[J_f\big(f^{-1}(\mathbf{y})\big)\right]^{-1}
  4. 缩放互为倒数两边取行列式,得逆变换的缩放因子等于正向的倒数。
    det⁡(Jf−1)=1det⁡(Jf)\det(J_{f^{-1}}) = \frac{1}{\det(J_f)}

AI 应用场景

机械臂的速度雅可比与奇异位形

阶段:机器人运动控制 / 运动规划

解决的问题:机械臂末端位置与关节角呈复杂非线性关系,传统上想知道“每个关节转多快、末端朝哪走”需要逐点求逆解,计算量大且不稳定。用雅可比矩阵把关节速度线性映射为末端速度,行列式接近 0 时说明该位形下某些方向“使不上劲”,必须规划绕行。

具体案例:六轴协作机械臂打磨曲面时,控制器在每 10ms 控制周期内计算当前关节角的雅可比矩阵,实时监测 \(\det J\) 是否低于阈值;一旦接近奇异位形,就切换避奇异路径,避免末端抖动和关节角速度爆炸。

医学图像配准中的形变场体检

阶段:数据预处理 / 图像分析(计算机视觉)

解决的问题:把不同病人的脑部 MRI 对齐到标准模板,需要估计一个非刚性形变场;若某体素附近的雅可比行列式为负,说明体素发生折叠或翻面,这在生理上不可能,配准结果必须修正。

具体案例:深度学习配准模型训练时,把形变场每个点的 \(\det J\) 加入损失函数,对负值区域施加惩罚,保证输出的形变场处处可逆且不折叠,再送去做脑区对齐与病灶定位。

归一化流生成模型中的概率密度换元

阶段:模型训练(生成式 AI)

解决的问题:要把简单的高斯分布变成复杂的图像分布,需要一连串可逆变换;每次换元,概率密度都要乘以 \(1/|\det J|\),否则模型学到的概率密度总和不为 1。这正是换元积分在概率论里的翻版。

具体案例:RealNVP、Glow 等流模型中,每一层“缩放—平移”变换都被设计成三角矩阵,让 \(\log|\det J|\) 能在 \(O(d)\) 复杂度内算出,训练时作为对数似然的一部分直接反向传播,从而生成逼真的人脸图像。

Python 演示

python44 行
import numpy as np def jacobian(f, x, eps=1e-6):    """用中心差分数值计算向量函数 f 在 x 处的雅可比矩阵"""    x = np.asarray(x, dtype=float)    fx = np.asarray(f(x), dtype=float)    J = np.zeros((fx.size, x.size))    for j in range(x.size):        xp = x.copy()        xp[j] += eps        xm = x.copy()        xm[j] -= eps        J[:, j] = (np.asarray(f(xp)) - np.asarray(f(xm))) / (2.0 * eps)    return J def polar(v):    """极坐标映射: (r, theta) -> (x, y)"""    r, theta = v[0], v[1]    return np.array([r * np.cos(theta), r * np.sin(theta)]) def inverse_polar(v):    """极坐标逆映射: (x, y) -> (r, theta)"""    x, y = v[0], v[1]    return np.array([np.hypot(x, y), np.arctan2(y, x)]) p0 = np.array([2.0, np.pi / 3])J = jacobian(polar, p0)print("雅可比矩阵 J =")print(np.round(J, 4))print("det(J) =", round(np.linalg.det(J), 4), " 解析值 r = 2.0") Jinv = jacobian(inverse_polar, polar(p0))print("逆变换雅可比矩阵 =")print(np.round(Jinv, 4))print("det(Jinv) * det(J) =", round(np.linalg.det(Jinv) * np.linalg.det(J), 4)) n = 500r = np.linspace(0.0, 1.0, n)theta = np.linspace(0.0, np.pi / 2, n)dr = r[1] - r[0]dt = theta[1] - theta[0]rr, tt = np.meshgrid(r, theta)area = np.sum(rr * dr * dt)print("极坐标换元面积 =", round(area, 5), " 理论值 pi/4 =", round(np.pi / 4, 5))
目的:用数值微分计算极坐标映射的雅可比矩阵与行列式,验证正反变换行列式互为倒数,并用换元积分验证“面积微元乘 \(r\)”的正确性。
  1. xp[j] += eps` 与 `xm[j] -= eps在第 \(j\) 个输入分量上做正负两个方向的微小扰动,为偏导数做准备
  2. J[:, j] = (np.asarray(f(xp)) - np.asarray(f(xm))) / (2.0 * eps)中心差分公式:两边扰动之差除以 \(2\varepsilon\),得到 \(\partial f / \partial x_j\)
  3. J = jacobian(polar, p0)在 \(r=2,\ \theta=\pi/3\) 处求极坐标映射的雅可比,数值上应接近解析矩阵
  4. np.linalg.det(J)求行列式,验证它等于解析值 \(r=2\),即局部面积放大倍数
  5. Jinv = jacobian(inverse_polar, polar(p0))先算出映射落点 \((x,y)\),再求逆映射的雅可比,验证正反行列式互为倒数
  6. rr, tt = np.meshgrid(r, theta)在 \((r,\theta)\) 参数矩形上铺满采样点,相当于铺开一张极坐标网格纸
  7. area = np.sum(rr * dr * dt)每个参数小格乘以缩放因子 \(r\) 后累加,得到真实面积约 \(\pi/4\)

常见误区

误区我以为雅可比行列式等于 3,就是这个点被放大了 3 倍,或者说任意一条经过该点的曲线长度都会变成原来的 3 倍。

正解行列式是“微元面积/体积”的放大倍数,不是线段长度倍数。一条线段可能被拉长 5 倍,也可能被压到接近 0,但整块小区域的面积恰好放大了 3 倍。就像橡皮地图上一个小区:四周街道有长有短,但整块地的亩数翻了 3 倍。要看某个方向的拉伸,得用奇异值 \(\sigma_1\)、\(\sigma_2\),而不是行列式。

为何常见:日常说“放大”总让人联想到长度和比例尺,而比例尺是一维的读法;行列式是二维/三维的“多重比例尺”,直觉上容易混淆。

误区我算出地图某个点的雅可比矩阵后,就把它代入所有点去估计变形,结果离那个点越远,误差越大。

正解雅可比矩阵是“局部放大镜”,只在某一点附近的小邻域内有效。它里面装着偏导数,而偏导数本身随位置变化——非线性变换下每个点的“镜片度数”都不同。只有映射本身是线性(或仿射)变换时,雅可比矩阵才处处相同。

为何常见:线性代数里一个矩阵通常描述整个全局线性变换,习惯了“一个矩阵管到底”,容易忽略雅可比是逐点附着在流形上的。

误区我算极坐标换元时记得乘 \(r\),但看到雅可比行列式是负数的时候,就直接把负的 \(\det J\) 乘进去,结果面积变成了负数。

正解面积、体积永远是正数。行列式为负只表示橡皮地图被翻面(镜像翻转),不是面积变负。换元公式里必须用 \(|\det J|\)。例如翻转坐标 \(x'=-x\) 的行列式为 \(-1\),但面积不变,依然乘 1。

为何常见:行列式本身可正可负,“行列式”和“面积”两个词放一起时,容易忘记面积其实是取了绝对值的结果;加上教材例题常用正行列式,负号场景见得少。

误区我觉得从 \((x,y)\) 换到 \((r,\theta)\) 和从 \((r,\theta)\) 换到 \((x,y)\) 的雅可比行列式应该一样,因为它们描述的是同一块面积。

正解两个方向的雅可比矩阵互为逆矩阵,行列式互为倒数。\(\mathrm{d}x\mathrm{d}y = r\,\mathrm{d}r\mathrm{d}\theta\),反过来说 \(\mathrm{d}r\mathrm{d}\theta = \frac{1}{r}\,\mathrm{d}x\mathrm{d}y\)。就像地图放大 3 倍后,要把地图上的 3 平米还原成实地 1 平米,必须除以 3。

为何常见:“面积缩放”给人对称的直觉,但正向与反向的缩放方向恰恰相反,初学时容易把方向性省略成“反正面积一样”。

误区我觉得 \(\det J = 0\) 只是面积缩小到接近零,就像地图缩得很小但还勉强能看。

正解\(\det J = 0\) 不是“很小”而是“彻底压扁”:该点附近所有微元面积都变成 0,二维区域被压成一条线或一个点,局部不可逆,逆变换的雅可比矩阵不存在(除数为零)。就像你把橡皮地图纵向对折捏紧,折痕上所有点叠在一起,无法通过反向变形区分出原来的位置。

为何常见:行列式是连续数值,初学者容易把它当“可以很小但不能为零”,忽略了零与趋近零的本质区别——那是可逆与不可逆的分水岭。

面试题

Q1. 雅可比矩阵的每个元素是什么?

单选题 · easy

  • A.多元函数的取值
  • B.一阶偏导数的值← 正确答案
  • C.二阶偏导数的值
  • D.投影算子的值

答案:B。雅可比矩阵第 \(i\) 行第 \(j\) 列记录“第 \(j\) 个输入动一丁点时第 \(i\) 个输出跟着动多少”,这正是偏导数的定义。函数值本身是标量,二阶偏导属于 Hessian 矩阵的范畴。

Q2. \(2\times 2\) 雅可比矩阵对应的行列式 \(ad-bc\) 的几何意义是?

单选题 · easy

  • A.点移动的直线距离
  • B.局部面积缩放的倍数← 正确答案
  • C.映射发生旋转的角度
  • D.坐标轴翻转的次数

答案:B。\(ad-bc\) 的绝对值等于单位正方形变成平行四边形的面积,所以它是微元面积的放大倍数。它不是距离、不是角度,翻面只是负号的附加含义。

Q3. 雅可比行列式为负值代表什么?

单选题 · mid

  • A.面积缩小变成负数
  • B.变换包含镜像翻转← 正确答案
  • C.映射完全不可求逆
  • D.所有偏导数均为负

答案:B。行列式为负表示该点附近发生镜像翻转,就像橡皮地图被整片翻面。面积取绝对值后照常计算;面积不可能为负。\(\det J = 0\) 才是不可逆。

Q4. 关于雅可比矩阵,下列说法正确的是?

多选题 · mid

  • A.它是逐点的局部线性化← 正确答案
  • B.它刻画局部的旋转拉伸← 正确答案
  • C.它对所有点同一矩阵
  • D.行数等于输入变量数

答案:AB。雅可比矩阵逐点附着,非线性映射在不同点给出不同“镜片度数”;它的两列就是旋转和拉伸的几何来源。只有线性变换才全局同一个矩阵;行数等于输出分量个数,而非输入变量个数。

Q5. 极坐标换元中,直角坐标面积微元 \(\mathrm{d}x\mathrm{d}y\) 与极坐标微元的关系是?

单选题 · mid

  • A.面积微元乘上 r 因子← 正确答案
  • B.面积微元保持不变
  • C.面积微元除以 r 因子
  • D.面积微元乘上 r² 因子

答案:A。极坐标映射的雅可比行列式等于 \(r\),所以 \(\mathrm{d}x\mathrm{d}y = r\,\mathrm{d}r\mathrm{d}\theta\)。B 漏乘,C 乘反,D 多乘了一个 \(r\)。离原点越远,同角宽度的格子实际面积越大。

Q6. 复合变换 \(g\circ f\) 的雅可比矩阵 \(J_{g\circ f}(x)\) 正确的是?

单选题 · mid

  • A.两个雅可比矩阵逐元素相加
  • B.按顺序相乘且内层代入← 正确答案
  • C.两个雅可比矩阵逐元素相乘
  • D.取两个雅可比矩阵的转置和

答案:B。链式法则要求 \(J_{g\circ f}(x) = J_g(f(x))\,J_f(x)\),是矩阵乘法而非逐元素运算,且顺序不能交换——就像“先拉长再旋转”与“先旋转再拉长”的手感完全不同。

Q7. 若某点处 \(2\times 2\) 雅可比矩阵的行列式 \(\det(J)=4\),下列说法正确的是?

多选题 · hard

  • A.局部面积放大四倍← 正确答案
  • B.逆变换面积缩小四倍← 正确答案
  • C.三维体积放大四倍
  • D.全图每处都放大四倍

答案:AB。\(\det J = 4\) 表示该点局部微元面积放大 4 倍,逆变换的缩放因子互为倒数,因此是 \(1/4\)。三维体积要用 \(3\times 3\) 雅可比的行列式;非线性变换下其他点的倍率可能完全不同。

Q8. 若某点处雅可比矩阵为零矩阵,则该点附近:

单选题 · easy

  • A.局部被压缩成一个点← 正确答案
  • B.局部放大到无穷大
  • C.局部只发生纯旋转
  • D.局部保持面积完全不变

答案:A。零矩阵的行列式为 0,所有方向的微元都被压扁,映射局部塌缩、不可逆。放大无穷大对应 \(\det J \to \infty\),纯旋转对应正交矩阵(\(\det=\pm1\)),面积不变对应 \(|\det J|=1\)。

Q9. 医学图像配准中检查形变场各点雅可比行列式为负的区域,目的是?

单选题 · mid

  • A.检测形变场的折叠翻面← 正确答案
  • B.提升图像的对比亮度
  • C.增强边缘的锐利程度
  • D.压缩图像的存储体积

答案:A。形变场某处 \(\det J < 0\) 意味着体素发生折叠或镜像翻转,生理上不可能,是配准或生成结果失效的信号。其余选项都与几何有效性无关。

Q10. 用换元法计算二重积分 \(\iint_D f(x,y)\,\mathrm{d}x\mathrm{d}y\),令 \((x,y)=\varphi(u,v)\),正确做法包括?

多选题 · hard

  • A.积分区域替换成原像← 正确答案
  • B.被积函数同步做替换← 正确答案
  • C.面积微元乘缩放因子的绝对值← 正确答案
  • D.面积微元可直接写成 dudv

答案:ABC。换元积分三步走:区域换成 \(\varphi\) 的原像、被积函数写成 \(f(\varphi(u,v))\)、面积微元乘 \(|\det J_\varphi|\)。直接把微元写成 \(\mathrm{d}u\mathrm{d}v\) 会漏掉面积缩放因子,结果差一个倍率。