雅可比矩阵

单变量函数的变换

在介绍雅可比矩阵之前,我们先尝试对单变量函数进行换元,即把 11 维空间的微元变换到另一个 11 维空间中。

设关于 xx 的函数为 f(x)f(x),现做一个 RR\mathbb{R} \to \mathbb{R} 变换

u=u(x) u=u(x)

设其逆变换为

x=x(u) x=x(u)

于是 f(x)f(x) 可以用 uu 表示为

f(x)=f(x(u)) f(x) = f(x(u))

在积分时,不仅要换函数里的变量,还要换积分微元。而积分微元之间的关系可以通过导数求得

dx=dxdudu \mathrm{d}x = \frac{\mathrm{d}x}{\mathrm{d}u} \mathrm{d}u

于是

f(x)dx=f(x(u))dxdudu \int f(x) \mathrm{d}x = \int f(x(u)) \frac{\mathrm{d}x}{\mathrm{d}u} \mathrm{d}u

当变换推广到多变量函数时,就需要用到雅可比矩阵。

多变量函数的变换

设关于 x,yx,y 的函数为 f(x,y)f(x,y),现做一个 R2R2\mathbb{R}^2 \to \mathbb{R}^2 变换

{u=u(x,y)v=v(x,y) \begin{cases} u=u(x,y) \\ v=v(x,y) \end{cases}

设逆变换为

{x=x(u,v)y=y(u,v) \begin{cases} x=x(u,v) \\ y=y(u,v) \end{cases}

于是 f(x,y)f(x,y) 可以用 u,vu,v 表示为

f(x,y)=f(x(u,v),y(u,v)) f(x,y) = f(x(u,v), y(u, v))

在积分时替换变量和微元

f(x,y)dxdy=f(x(u,v),y(u,v))(x,y)(u,v)dudv \int f(x,y) \mathrm{d}x\mathrm{d}y = \int f(x(u,v), y(u, v)) \frac{\partial(x,y)}{\partial(u,v)} \mathrm{d}u\mathrm{d}v

上式的 (x,y)(u,v)\frac{\partial(x,y)}{\partial(u,v)} 仿照了单变量换元的符号 dxdu\frac{\mathrm{d}x}{\mathrm{d}u},其被定义为雅可比矩阵的行列式

(x,y)(u,v)=J \frac{\partial(x,y)}{\partial(u,v)} = |\mathbf{J}|

后文将分别从几何与代数的角度,推导雅可比矩阵的表达式。

局部线性变换

理解雅可比矩阵的最佳方式,就是通过线性代数。先对 x=x(u,v)x=x(u,v)y=y(u,v)y=y(u,v) 进行全微分,得到

dx=xudu+xvdvdy=yudu+yvdv \mathrm{d}x = \frac{\partial x}{\partial u} \mathrm{d}u + \frac{\partial x}{\partial v} \mathrm{d}v \\ \mathrm{d}y = \frac{\partial y}{\partial u} \mathrm{d}u + \frac{\partial y}{\partial v} \mathrm{d}v

然后改写为向量形式

[dxdy]=[xuxvyuyv][dudv] \begin{bmatrix} \mathrm{d}x \\ \mathrm{d}y \end{bmatrix} = \begin{bmatrix} \frac{\partial x}{\partial u} & \frac{\partial x}{\partial v} \\ \frac{\partial y}{\partial u} & \frac{\partial y}{\partial v} \end{bmatrix} \begin{bmatrix} \mathrm{d}u \\ \mathrm{d}v \end{bmatrix}

上式中的矩阵就是雅可比矩阵

J=[xuxvyuyv] \mathbf{J} = \begin{bmatrix} \frac{\partial x}{\partial u} & \frac{\partial x}{\partial v} \\ \frac{\partial y}{\partial u} & \frac{\partial y}{\partial v} \end{bmatrix}

这个矩阵把微元从 22 维空间变换到另一个 22 维空间。原变换 x(u,v)x(u,v)y(u,v)y(u,v) 可能是非线性的,但只要函数可微,那么变换在局部就是线性的。而矩阵正是线性变换的一种表示方式。

矩阵的行列式有着非常清晰的几何含义:它表示一个线性变换对尺寸的缩放系数。对于 2×22\times2 的雅可比矩阵,其行列式就表示面积的缩放因子

J=xuxvyuyv=(xuyvxvyu) |\mathbf{J}| = \begin{vmatrix} \frac{\partial x}{\partial u} & \frac{\partial x}{\partial v} \\ \frac{\partial y}{\partial u} & \frac{\partial y}{\partial v} \end{vmatrix} = \left( \frac{\partial x}{\partial u}\frac{\partial y}{\partial v} - \frac{\partial x}{\partial v}\frac{\partial y}{\partial u} \right)

uvuv 平面上一个面积为 dudv\mathrm{d}u\mathrm{d}v 的矩形,映射到 xyxy 平面后,在局部变为一个平行四边形,其有向面积为

dxdy=Jdudv=(xuyvxvyu)dudv \mathrm{d}x\mathrm{d}y = |\mathbf{J}| \mathrm{d}u\mathrm{d}v = \left( \frac{\partial x}{\partial u}\frac{\partial y}{\partial v} - \frac{\partial x}{\partial v}\frac{\partial y}{\partial u} \right) \mathrm{d}u\mathrm{d}v

这样就得到了最终的积分换元表达式

f(x,y)dxdy=f(x(u,v),y(u,v))(xuyvxvyu)dudv \int f(x,y) \mathrm{d}x\mathrm{d}y = \int f(x(u,v), y(u, v)) \left( \frac{\partial x}{\partial u}\frac{\partial y}{\partial v} - \frac{\partial x}{\partial v}\frac{\partial y}{\partial u} \right) \mathrm{d}u\mathrm{d}v

用这种方式可以很自然地把雅可比矩阵推广到任意维度的空间中——只要写一遍向量形式的全微分公式就行了。

设关于 x=(x1,x2,,xn)T\mathbf{x}=(x_1,x_2,\dots,x_n)^T 的函数为 f(x)f(\mathbf{x}),定义一个 RmRn\mathbb{R}^m \to \mathbb{R}^n 变换 x(u)\mathbf{x}(\mathbf{u}),将原函数变为关于 u=(u1,u2,,um)T\mathbf{u}=(u_1,u_2,\cdots,u_m)^T 的函数 f(x(u))f(\mathbf{x}(\mathbf{u}))。则对于该变换,x\mathbf{x} 各分量的全微分为

dx1=x1u1du1+x1u2du2++x1umdumdx2=x2u1du1+x2u2du2++x2umdumdxn=xnu1du1+xnu2du2++xnumdum \mathrm{d}x_1 = \frac{\partial x_1}{\partial u_1} \mathrm{d}u_1 + \frac{\partial x_1}{\partial u_2} \mathrm{d}u_2 + \cdots + \frac{\partial x_1}{\partial u_m} \mathrm{d}u_m \\ \mathrm{d}x_2 = \frac{\partial x_2}{\partial u_1} \mathrm{d}u_1 + \frac{\partial x_2}{\partial u_2} \mathrm{d}u_2 + \cdots + \frac{\partial x_2}{\partial u_m} \mathrm{d}u_m \\ \vdots \\ \mathrm{d}x_n = \frac{\partial x_n}{\partial u_1} \mathrm{d}u_1 + \frac{\partial x_n}{\partial u_2} \mathrm{d}u_2 + \cdots + \frac{\partial x_n}{\partial u_m} \mathrm{d}u_m \\

改成向量形式,即可得到雅可比矩阵

[dx1dx2dxn]=[x1u1x1u2x1umx2u1x2u2x2umxnu1xnu2xnum][du1du2dum] \begin{bmatrix} \mathrm{d}x_1 \\ \mathrm{d}x_2 \\ \vdots \\ \mathrm{d}x_n \end{bmatrix} = \begin{bmatrix} \frac{\partial x_1}{\partial u_1} & \frac{\partial x_1}{\partial u_2} & \cdots & \frac{\partial x_1}{\partial u_m} \\ \frac{\partial x_2}{\partial u_1} & \frac{\partial x_2}{\partial u_2} & \cdots & \frac{\partial x_2}{\partial u_m} \\ \vdots & \vdots & \ddots & \vdots \\ \frac{\partial x_n}{\partial u_1} & \frac{\partial x_n}{\partial u_2} & \cdots & \frac{\partial x_n}{\partial u_m} \end{bmatrix} \begin{bmatrix} \mathrm{d}u_1 \\ \mathrm{d}u_2 \\ \vdots \\ \mathrm{d}u_m \end{bmatrix}

其第 ii 行第 jj 列的元素为

[Jx(u)]ij=ujxi(u)=uj[x(u)]i [\mathbf{J}_{\mathbf{x}}(\mathbf{u})]_{ij} = \frac{\partial}{\partial u_j}x_i(\mathbf{u}) = \frac{\partial}{\partial u_j} \left[\mathbf{x}(\mathbf{u})\right]_i

对于 mnm\neq n 的情况,雅可比矩阵不是方阵,因此不存在行列式。此时变换是不可逆的——它改变了微元空间的维度。

几何推导

如果觉得线性代数有点过于抽象的话,这里补一个更详细的几何推导过程。不过这种方法不方便推广到更高的维度,因此只分析 R2R2\mathbb{R}^2 \to \mathbb{R}^2 的变换。

考虑 uvuv 平面上一个小矩形,其中各点分别为

A=[u0v0]TB=[u0+duv0]TC=[u0v0+dv]TD=[u0+duv0+dv]T \begin{align*} A &= \begin{bmatrix} u_0 & v_0 \end{bmatrix}^T \\ B &= \begin{bmatrix} u_0 + \mathrm{d}u & v_0 \end{bmatrix}^T \\ C &= \begin{bmatrix} u_0 & v_0 + \mathrm{d}v \end{bmatrix}^T \\ D &= \begin{bmatrix} u_0 + \mathrm{d}u & v_0 + \mathrm{d}v \end{bmatrix}^T \end{align*}

其长度为 du\mathrm{d}u,宽度为 dv\mathrm{d}v,面积为 dudv\mathrm{d}u\mathrm{d}v。将其变换到 xyxy 平面

A=[x(u0,v0)y(u0,v0)]TB=[x(u0+du,v0)y(u0+du,v0)]TC=[x(u0,v0+dv)y(u0,v0+dv)]TD=[x(u0+du,v0+dv)y(u0+du,v0+dv)]T \begin{align*} A' &= \begin{bmatrix}x(u_0,v_0) & y(u_0,v_0)\end{bmatrix}^T \\ B' &= \begin{bmatrix}x(u_0 + \mathrm{d}u,v_0) & y(u_0 + \mathrm{d}u,v_0)\end{bmatrix}^T \\ C' &= \begin{bmatrix}x(u_0,v_0 + \mathrm{d}v) & y(u_0,v_0 + \mathrm{d}v)\end{bmatrix}^T \\ D' &= \begin{bmatrix}x(u_0 + \mathrm{d}u, v_0 + \mathrm{d}v) & y(u_0 + \mathrm{d}u, v_0 + \mathrm{d}v)\end{bmatrix}^T \end{align*}

虽然变换可能不是线性的,但只要函数是可微的,那么在局部依然可以近似为平行四边形。其一边为

AB=[x(u0+du,v0)x(u0,v0)y(u0+du,v0)y(u0,v0)]T \overrightarrow{A'B'} = \begin{bmatrix} x(u_0+\mathrm{d}u, v_0) - x(u_0,v_0) & y(u_0+\mathrm{d}u, v_0) - y(u_0,v_0) \end{bmatrix}^T

根据偏微分的定义,可以得到

x(u0+du,v0)x(u0,v0)=xudu x(u_0+\mathrm{d}u, v_0) - x(u_0,v_0) = \frac{\partial x}{\partial u}\mathrm{d}u

同理有

y(u0+du,v0)y(u0,v0)=yudu y(u_0+\mathrm{d}u, v_0) - y(u_0,v_0) = \frac{\partial y}{\partial u}\mathrm{d}u

从而

AB=[xuduyudu]T=[xuyu]du \begin{align*} \overrightarrow{A'B'} &= \begin{bmatrix} \frac{\partial x}{\partial u}\mathrm{d}u & \frac{\partial y}{\partial u}\mathrm{d}u \end{bmatrix}^T \\ &= \begin{bmatrix} \frac{\partial x}{\partial u} \\ \frac{\partial y}{\partial u} \end{bmatrix} \mathrm{d}u \end{align*}

与此同时,另外一边……

AC=[x(u0,v0+dv)x(u0,v0)y(u0,v0+dv)y(u0,v0)]T=[xvdvyvdv]T=[xvyv]dv \begin{align*} \overrightarrow{A'C'} &= \begin{bmatrix} x(u_0, v_0+\mathrm{d}v) - x(u_0,v_0) & y(u_0, v_0+\mathrm{d}v) - y(u_0,v_0) \end{bmatrix}^T \\ &= \begin{bmatrix} \frac{\partial x}{\partial v}\mathrm{d}v & \frac{\partial y}{\partial v}\mathrm{d}v \end{bmatrix}^T \\ &= \begin{bmatrix} \frac{\partial x}{\partial v} \\ \frac{\partial y}{\partial v} \end{bmatrix} \mathrm{d}v \end{align*}

平行四边形的有向面积可以通过行列式求得

SABCD=ABAC=[xuyu]du[xvyv]dv=xuxvyuyvdudv \begin{align*} S_{A'B'C'D'} &= \begin{vmatrix} \overrightarrow{A'B'} & \overrightarrow{A'C'} \end{vmatrix} \\ &= \begin{vmatrix} \begin{bmatrix} \frac{\partial x}{\partial u} \\ \frac{\partial y}{\partial u} \end{bmatrix} \mathrm{d}u & \begin{bmatrix} \frac{\partial x}{\partial v} \\ \frac{\partial y}{\partial v} \end{bmatrix} \mathrm{d}v \\ \end{vmatrix} \\ &= \begin{vmatrix} \frac{\partial x}{\partial u} & \frac{\partial x}{\partial v} \\ \frac{\partial y}{\partial u} & \frac{\partial y}{\partial v} \end{vmatrix} \mathrm{d}u\mathrm{d}v \end{align*}

这样我们也能得到雅可比行列式。虽然不是通过矩阵得到的,但对于没接触过线性代数的人而言,这种解释可能更直观。

外微分形式

如果了解过外微分形式,那么雅可比矩阵有一种更加代数化的几何推导方式——楔积。

数学上使用楔积 \wedge 表示由向量张成的有向面积,其满足一些关系

  1. 两根完全重合的线段张不出面积

    dudu=0dvdv=0 \begin{align*} \mathrm{d}u \wedge \mathrm{d}u &= 0 \\ \mathrm{d}v \wedge \mathrm{d}v &= 0 \end{align*}
  2. 交换顺序会改变面积的定向

    dvdu=dudv \mathrm{d}v \wedge \mathrm{d}u = -\mathrm{d}u \wedge \mathrm{d}v

代入全微分公式,有

dxdy=(xudu+xvdv)(yudu+yvdv)=xuyu  dudu+xuyv  dudv+xvyu  dvdu+xvyv  dvdv \begin{align*} \mathrm{d}x \wedge \mathrm{d}y &= \left( \frac{\partial x}{\partial u}\mathrm{d}u + \frac{\partial x}{\partial v}\mathrm{d}v \right) \wedge \left( \frac{\partial y}{\partial u}\mathrm{d}u + \frac{\partial y}{\partial v}\mathrm{d}v \right) \\ &= \frac{\partial x}{\partial u}\frac{\partial y}{\partial u}\; \mathrm{d}u \wedge \mathrm{d}u + \frac{\partial x}{\partial u}\frac{\partial y}{\partial v}\; \mathrm{d}u \wedge \mathrm{d}v + \frac{\partial x}{\partial v}\frac{\partial y}{\partial u}\; \mathrm{d}v \wedge \mathrm{d}u + \frac{\partial x}{\partial v}\frac{\partial y}{\partial v}\; \mathrm{d}v \wedge \mathrm{d}v \end{align*}

根据楔积满足的关系,得到

dxdy=(xuyvxvyu)dudv \mathrm{d}x \wedge \mathrm{d}y = \left( \frac{\partial x}{\partial u}\frac{\partial y}{\partial v} - \frac{\partial x}{\partial v}\frac{\partial y}{\partial u} \right) \mathrm{d}u \wedge \mathrm{d}v

而积分表达式中的面积微元 dxdy\mathrm{d}x\mathrm{d}ydudv\mathrm{d}u\mathrm{d}v 就是有向面积微元 dxdy\mathrm{d}x \wedge \mathrm{d}ydudv\mathrm{d}u \wedge \mathrm{d}v 的简写,因此

dxdy=(xuyvxvyu)dudv \mathrm{d}x\mathrm{d}y = \left( \frac{\partial x}{\partial u}\frac{\partial y}{\partial v} - \frac{\partial x}{\partial v}\frac{\partial y}{\partial u} \right) \mathrm{d}u\mathrm{d}v

雅可比矩阵的转置

链式法则

除了用于积分换元,雅可比矩阵还出现在链式法则中——不过是以转置的形式。

f(x,y)f(x,y) 被换元为 f(x(u,v),y(u,v))f(x(u,v),y(u,v)) 后,由链式法则可得

fu=fxxu+fyyufv=fxxv+fyyv \begin{align*} \frac{\partial f}{\partial u} = \frac{\partial f}{\partial x}\frac{\partial x}{\partial u} + \frac{\partial f}{\partial y}\frac{\partial y}{\partial u}\\ \frac{\partial f}{\partial v} = \frac{\partial f}{\partial x}\frac{\partial x}{\partial v} + \frac{\partial f}{\partial y}\frac{\partial y}{\partial v} \end{align*}

写成向量形式

[fufv]=[xuyuxvyv][fxfy] \begin{bmatrix} \frac{\partial f}{\partial u} \\ \frac{\partial f}{\partial v} \end{bmatrix} = \begin{bmatrix} \frac{\partial x}{\partial u} & \frac{\partial y}{\partial u} \\ \frac{\partial x}{\partial v} & \frac{\partial y}{\partial v} \end{bmatrix} \begin{bmatrix} \frac{\partial f}{\partial x} \\ \frac{\partial f}{\partial y} \end{bmatrix}

其中的矩阵恰好是雅可比矩阵的转置

JT=[xuyuxvyv] \mathbf{J}^T = \begin{bmatrix} \frac{\partial x}{\partial u} & \frac{\partial y}{\partial u} \\ \frac{\partial x}{\partial v} & \frac{\partial y}{\partial v} \end{bmatrix}

梯度向量与海森矩阵

多元函数 f:RnRf: \mathbb{R}^n \to \mathbb{R} 的梯度向量

f(x)=[fx1fx2fxn] \nabla f(\mathbf{x}) = \begin{bmatrix} \frac{\partial f}{\partial x_1} \\ \frac{\partial f}{\partial x_2} \\ \vdots \\ \frac{\partial f}{\partial x_n} \end{bmatrix}

是雅可比矩阵的转置

[f(x)]j1=fxj=xjf(x)=[Jf(x)]1j \left[\nabla f(\mathbf{x})\right]_{j1} = \frac{\partial f}{\partial x_j} = \frac{\partial}{\partial x_j}f(\mathbf{x}) = \left[\mathbf{J}_f(\mathbf{x})\right]_{1j}

f(x)=Jf(x)T \nabla f(\mathbf{x}) = \mathbf{J}_{f}(\mathbf{x})^T

而海森矩阵

Hf(x)=[2fx122fx1x22fx1xn2fx2x12fx222fx2xn2fxnx12fxnx22fxn2] \mathbf{H}_f(\mathbf{x}) = \begin{bmatrix} \frac{\partial^2 f}{\partial x_1^2} & \frac{\partial^2 f}{\partial x_1 \partial x_2} & \cdots & \frac{\partial^2 f}{\partial x_1 \partial x_n} \\ \frac{\partial^2 f}{\partial x_2 \partial x_1} & \frac{\partial^2 f}{\partial x_2^2} & \cdots & \frac{\partial^2 f}{\partial x_2 \partial x_n} \\ \vdots & \vdots & \ddots & \vdots \\ \frac{\partial^2 f}{\partial x_n \partial x_1} & \frac{\partial^2 f}{\partial x_n \partial x_2} & \cdots & \frac{\partial^2 f}{\partial x_n^2} \end{bmatrix}

可通过对梯度向量求雅可比矩阵的转置得到

[Hf(x)]ji=2fxjxi=xj(fxi)=xj[f(x)]i=[Jf(x)]ij \left[ \mathbf{H}_f(\mathbf{x}) \right]_{ji} = \frac{\partial^2 f}{\partial x_j \partial x_i} = \frac{\partial}{\partial x_j}\left(\frac{\partial f}{\partial x_i}\right) = \frac{\partial}{\partial x_j} \left[\nabla f(\mathbf{x})\right]_i = \left[ \mathbf{J}_{\nabla f}(\mathbf{x}) \right]_{ij}

Hf(x)=Jf(x)T \mathbf{H}_f(\mathbf{x}) = \mathbf{J}_{\nabla f}(\mathbf{x})^T

但对海森矩阵就无法继续求雅可比矩阵的转置了。之后的结果涉及到高阶张量,需要定义张量积以推广这种运算。