雅可比矩阵#
单变量函数的变换#
在介绍雅可比矩阵之前,我们先尝试对单变量函数进行换元,即把 1 维空间的微元变换到另一个 1 维空间中。
设关于 x 的函数为 f(x),现做一个 R→R 变换
设其逆变换为
于是 f(x) 可以用 u 表示为
f(x)=f(x(u)) 在积分时,不仅要换函数里的变量,还要换积分微元。而积分微元之间的关系可以通过导数求得
dx=dudxdu 于是
∫f(x)dx=∫f(x(u))dudxdu 当变换推广到多变量函数时,就需要用到雅可比矩阵。
多变量函数的变换#
设关于 x,y 的函数为 f(x,y),现做一个 R2→R2 变换
{u=u(x,y)v=v(x,y) 设逆变换为
{x=x(u,v)y=y(u,v) 于是 f(x,y) 可以用 u,v 表示为
f(x,y)=f(x(u,v),y(u,v)) 在积分时替换变量和微元
∫f(x,y)dxdy=∫f(x(u,v),y(u,v))∂(u,v)∂(x,y)dudv 上式的 ∂(u,v)∂(x,y) 仿照了单变量换元的符号 dudx,其被定义为雅可比矩阵的行列式
∂(u,v)∂(x,y)=∣J∣ 后文将分别从几何与代数的角度,推导雅可比矩阵的表达式。
局部线性变换#
理解雅可比矩阵的最佳方式,就是通过线性代数。先对 x=x(u,v) 和 y=y(u,v) 进行全微分,得到
dx=∂u∂xdu+∂v∂xdvdy=∂u∂ydu+∂v∂ydv 然后改写为向量形式
[dxdy]=[∂u∂x∂u∂y∂v∂x∂v∂y][dudv] 上式中的矩阵就是雅可比矩阵
J=[∂u∂x∂u∂y∂v∂x∂v∂y] 这个矩阵把微元从 2 维空间变换到另一个 2 维空间。原变换 x(u,v) 和 y(u,v) 可能是非线性的,但只要函数可微,那么变换在局部就是线性的。而矩阵正是线性变换的一种表示方式。
矩阵的行列式有着非常清晰的几何含义:它表示一个线性变换对尺寸的缩放系数。对于 2×2 的雅可比矩阵,其行列式就表示面积的缩放因子
∣J∣=∂u∂x∂u∂y∂v∂x∂v∂y=(∂u∂x∂v∂y−∂v∂x∂u∂y) 即 uv 平面上一个面积为 dudv 的矩形,映射到 xy 平面后,在局部变为一个平行四边形,其有向面积为
dxdy=∣J∣dudv=(∂u∂x∂v∂y−∂v∂x∂u∂y)dudv 这样就得到了最终的积分换元表达式
∫f(x,y)dxdy=∫f(x(u,v),y(u,v))(∂u∂x∂v∂y−∂v∂x∂u∂y)dudv 用这种方式可以很自然地把雅可比矩阵推广到任意维度的空间中——只要写一遍向量形式的全微分公式就行了。
设关于 x=(x1,x2,…,xn)T 的函数为 f(x),定义一个 Rm→Rn 变换 x(u),将原函数变为关于 u=(u1,u2,⋯,um)T 的函数 f(x(u))。则对于该变换,x 各分量的全微分为
dx1=∂u1∂x1du1+∂u2∂x1du2+⋯+∂um∂x1dumdx2=∂u1∂x2du1+∂u2∂x2du2+⋯+∂um∂x2dum⋮dxn=∂u1∂xndu1+∂u2∂xndu2+⋯+∂um∂xndum 改成向量形式,即可得到雅可比矩阵
dx1dx2⋮dxn=∂u1∂x1∂u1∂x2⋮∂u1∂xn∂u2∂x1∂u2∂x2⋮∂u2∂xn⋯⋯⋱⋯∂um∂x1∂um∂x2⋮∂um∂xndu1du2⋮dum 其第 i 行第 j 列的元素为
[Jx(u)]ij=∂uj∂xi(u)=∂uj∂[x(u)]i 对于 m=n 的情况,雅可比矩阵不是方阵,因此不存在行列式。此时变换是不可逆的——它改变了微元空间的维度。
几何推导#
如果觉得线性代数有点过于抽象的话,这里补一个更详细的几何推导过程。不过这种方法不方便推广到更高的维度,因此只分析 R2→R2 的变换。
考虑 uv 平面上一个小矩形,其中各点分别为
ABCD=[u0v0]T=[u0+duv0]T=[u0v0+dv]T=[u0+duv0+dv]T 其长度为 du,宽度为 dv,面积为 dudv。将其变换到 xy 平面
A′B′C′D′=[x(u0,v0)y(u0,v0)]T=[x(u0+du,v0)y(u0+du,v0)]T=[x(u0,v0+dv)y(u0,v0+dv)]T=[x(u0+du,v0+dv)y(u0+du,v0+dv)]T 虽然变换可能不是线性的,但只要函数是可微的,那么在局部依然可以近似为平行四边形。其一边为
A′B′=[x(u0+du,v0)−x(u0,v0)y(u0+du,v0)−y(u0,v0)]T 根据偏微分的定义,可以得到
x(u0+du,v0)−x(u0,v0)=∂u∂xdu 同理有
y(u0+du,v0)−y(u0,v0)=∂u∂ydu 从而
A′B′=[∂u∂xdu∂u∂ydu]T=[∂u∂x∂u∂y]du 与此同时,另外一边……
A′C′=[x(u0,v0+dv)−x(u0,v0)y(u0,v0+dv)−y(u0,v0)]T=[∂v∂xdv∂v∂ydv]T=[∂v∂x∂v∂y]dv 平行四边形的有向面积可以通过行列式求得
SA′B′C′D′=A′B′A′C′=[∂u∂x∂u∂y]du[∂v∂x∂v∂y]dv=∂u∂x∂u∂y∂v∂x∂v∂ydudv 这样我们也能得到雅可比行列式。虽然不是通过矩阵得到的,但对于没接触过线性代数的人而言,这种解释可能更直观。
外微分形式#
如果了解过外微分形式,那么雅可比矩阵有一种更加代数化的几何推导方式——楔积。
数学上使用楔积 ∧ 表示由向量张成的有向面积,其满足一些关系
两根完全重合的线段张不出面积
du∧dudv∧dv=0=0 交换顺序会改变面积的定向
dv∧du=−du∧dv
代入全微分公式,有
dx∧dy=(∂u∂xdu+∂v∂xdv)∧(∂u∂ydu+∂v∂ydv)=∂u∂x∂u∂ydu∧du+∂u∂x∂v∂ydu∧dv+∂v∂x∂u∂ydv∧du+∂v∂x∂v∂ydv∧dv 根据楔积满足的关系,得到
dx∧dy=(∂u∂x∂v∂y−∂v∂x∂u∂y)du∧dv 而积分表达式中的面积微元 dxdy 和 dudv 就是有向面积微元 dx∧dy 和 du∧dv 的简写,因此
dxdy=(∂u∂x∂v∂y−∂v∂x∂u∂y)dudv 雅可比矩阵的转置#
链式法则#
除了用于积分换元,雅可比矩阵还出现在链式法则中——不过是以转置的形式。
当 f(x,y) 被换元为 f(x(u,v),y(u,v)) 后,由链式法则可得
∂u∂f=∂x∂f∂u∂x+∂y∂f∂u∂y∂v∂f=∂x∂f∂v∂x+∂y∂f∂v∂y 写成向量形式
[∂u∂f∂v∂f]=[∂u∂x∂v∂x∂u∂y∂v∂y][∂x∂f∂y∂f] 其中的矩阵恰好是雅可比矩阵的转置
JT=[∂u∂x∂v∂x∂u∂y∂v∂y] 梯度向量与海森矩阵#
多元函数 f:Rn→R 的梯度向量
∇f(x)=∂x1∂f∂x2∂f⋮∂xn∂f 是雅可比矩阵的转置
[∇f(x)]j1=∂xj∂f=∂xj∂f(x)=[Jf(x)]1j 即
∇f(x)=Jf(x)T 而海森矩阵
Hf(x)=∂x12∂2f∂x2∂x1∂2f⋮∂xn∂x1∂2f∂x1∂x2∂2f∂x22∂2f⋮∂xn∂x2∂2f⋯⋯⋱⋯∂x1∂xn∂2f∂x2∂xn∂2f⋮∂xn2∂2f 可通过对梯度向量求雅可比矩阵的转置得到
[Hf(x)]ji=∂xj∂xi∂2f=∂xj∂(∂xi∂f)=∂xj∂[∇f(x)]i=[J∇f(x)]ij 即
Hf(x)=J∇f(x)T 但对海森矩阵就无法继续求雅可比矩阵的转置了。之后的结果涉及到高阶张量,需要定义张量积以推广这种运算。