JOVANA
Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

隐函数定理与反函数定理

当一个拒绝被解出的方程,却依然在内部藏着一个光滑函数时,那是何时?而一个多变量映射能被倒着运行,又是何时?这两个问题有着同一个答案,它就栖身于一个行列式里——雅可比行列式。

一个藏着函数的方程

早在第一卷,你遇见过写作 x^2 + y^2 = 1 的圆,并学了一招漂亮的手法:纵然你无法为整条曲线工整地写下「y 等于关于 x 的某个公式」,你仍能用隐函数求导求出斜率——把整个方程求导,把 y 当作依赖于 x 来对待,再解出 dy/dx。那一招奏效了,但它悄悄假定了一件它从未核查过的事:在你的点附近,方程里真的*藏着*一个光滑函数 y(x)。[[implicit-function-theorem-tool|隐函数定理]]便是那个成熟版的陈述,它道出这个假定究竟何时安全——而且令人满意的是,它还附赠给你同一个导数公式。

把它框得清爽些。你有一个方程 F(x, y) = 0,以及一个落在曲线上的特定点 (a, b),于是 F(a, b) = 0。问题是局部的:你能否在 (a, b) 周围划出一个小窗口,使得在其中曲线恰是某个单一、光滑、单值的函数 y = g(x) 的图像?看看那个圆。在顶点 (0, 1) 附近,答案是肯定的——那里曲线温和地就是 y = sqrt(1 - x^2) 的图像。但在最右点 (1, 0) 附近,答案是否定的:曲线在那里竖直地走,并折返回来,而没有任何函数 y = g(x) 能在同一个 x 上方既在上又在下。那一点的几何里有某样东西把它搅黄了,而这条定理的全部职责,就是用一个可计算的检验把那「某样东西」点出名来。

那个判据,以及它何以是判据

判据如下,而且是一个你能算出来的单一数字。在 (a, b) 附近解 F(x, y) = 0 求 y 是可行的——y = g(x) 存在、光滑、且在小窗口内唯一——只要偏导数 partial F / partial y 在 (a, b) 处*不*为零。这便是整个判据。而背后有一个美丽的几何缘由。回想本级稍早处:梯度 nabla F = (partial F/partial x, partial F/partial y) 总是垂直于水平集 F = 0,是横跨曲线的最陡上坡箭头。分量 partial F/partial y 量度梯度往竖直方向倾斜得有多猛。若 partial F/partial y 不为零,曲线在那点便*不*是竖直地走——于是对每个邻近的 x,曲线上恰有一个 y,你的函数也就到手了。

在圆上跑一遍,F = x^2 + y^2 - 1。则 partial F/partial y = 2y。在顶点 (0, 1) 它等于 2,稳稳地非零——绿灯,函数存在,正如我们所见。在右缘 (1, 0) 它等于 0——红灯,而那里确实正是曲线竖起、无函数幸存之处。这判据并非只是与几何相关;它*就是*几何,化作一个数字读出来。当绿灯亮起,隐函数求导还白送给你斜率。用链式法则对 F(x, g(x)) = 0 求导:partial F/partial x + (partial F/partial y) (dy/dx) = 0,于是 dy/dx = -(partial F/partial x) / (partial F/partial y)。partial F/partial y 的不为零,恰恰正是允许你做除法的那个条件——同一个条件,戴着第二顶帽子。

多个方程,雅可比登场

现在升级,因为真正的威力要等到几个方程纠缠几个变量时才显现。假设你有两个方程 F(x, y, u, v) = 0 与 G(x, y, u, v) = 0,而你想把它们解出来,让 (u, v) 这一对成为 (x, y) 的光滑函数。单一的偏导数 partial F/partial y 对一个方程一个未知量足矣;面对两个未知量,你需要问:(F, G) 对 (u, v) 的*合并*敏感度是否可逆。那个合并敏感度恰恰是一个[[jacobian-matrix-map|雅可比矩阵]]——我们本级稍早造出的那个多变量导数,一格格偏导数排成的网 [partial F/partial u, partial F/partial v; partial G/partial u, partial G/partial v],每个方程一行,每个待解未知量一列。

条件毫无意外地推广开来:在你那点附近能解出 (u, v),只要这个雅可比矩阵在那里可逆——等价地说,只要它的[[calc-jacobian-determinant|雅可比行列式]]不为零。非零的行列式意味着矩阵没有扁塌的方向,没有办法把两个未知量挤进更少的维度;它可逆,而求逆正是「解出 (u, v)」在线性层面上所要求的。当 partial F/partial y 还是单个数字时,「非零」与「可逆」本是同一句话——所以那个单方程判据一直暗地里就是行列式判据,只不过是对一个一乘一矩阵而言。雅可比行列式,正是「partial F/partial y 不为零」向任意多个方程的诚实推广。

把映射倒着跑

[[inverse-function-theorem-tool|反函数定理]]是同一个想法换了身衣裳——一旦你看穿这层伪装,便能白白得到它。一个映射把输入送往输出,比如它按某条光滑规则 u = P(x, y)、v = Q(x, y) 把 (x, y) 送到 (u, v)。你想把它倒着跑:给定一个输出 (u, v),找回输入 (x, y)。这种倒推何时可行,至少在某点附近?定理的回答再干净不过:当映射的雅可比矩阵——正是那张网 [partial P/partial x, partial P/partial y; partial Q/partial x, partial Q/partial y],它*就是*映射的全导数——在该点可逆时,倒推恰好可行。一个行列式决定一切,与先前如出一辙。

为何这可信:全导数是映射在该点附近最佳的*线性*逼近,是切线的多变量替身。在一点附近,弯曲的映射在一阶看来,就活像它的雅可比作为一个线性变换在作用。而一个线性变换恰好在其矩阵可逆时可被还原——在它不把空间压扁(行列式为零)时,因为压扁会不可挽回地把不同的输入并到一处。定理是这样一份诚实的承诺:若那个*线性影子*可逆,那么*弯曲的原物*在足够小的邻域里也可逆。这是从「逼近可逆」跃向「真东西在附近可逆」的一跳——而这一跳确确实实是一条定理,它要求映射连续可微,并非你可以想当然的东西。

Map:   u = P(x,y),   v = Q(x,y)        ( (x,y) --> (u,v) )

Jacobian of the map at a point:

      J =  [ dP/dx   dP/dy ]
           [ dQ/dx   dQ/dy ]

Test:   det J  =  (dP/dx)(dQ/dy) - (dP/dy)(dQ/dx)

   det J  != 0   -->  map is locally invertible here;
                      AND the inverse map's Jacobian is  J^{-1}.

Polar example:   x = r cos(theta),  y = r sin(theta)

      J = [ cos(theta)   -r sin(theta) ]
          [ sin(theta)    r cos(theta) ]

   det J = r cos^2 + r sin^2 = r

   r != 0  -->  invertible (recover r, theta from x, y)
   r  = 0  -->  det = 0 at the origin: every theta maps to
                the SAME point, so direction is unrecoverable.
反函数定理浓缩在一张卡片上。极坐标映射处处可逆,唯独 r = 0 例外,而雅可比行列式 r 恰恰正在那里归零——所有角度都坍缩成一个点的原点。

两条定理,一个真相

这并非两个碰巧相似的结果——它们是同一条定理从两侧看去的样子,看清那个枢纽是值得的。从一个映射 (x, y) -> (u, v) 出发,想把它求逆。把这个愿望改写成一个方程组:定义 F = P(x, y) - u 与 G = Q(x, y) - v,于是「给映射求逆」就成了「就 (u, v) 解 F = 0, G = 0 求 (x, y)」——一个隐函数问题。反过来,一个隐式方程组也可重新打包成给某个辅助映射求逆。这座桥就是雅可比行列式:它是两条定理共同盘问的那个唯一对象,而那个行列式的不为零,正是潜伏在两者之下的*那一条*前提。掌握行列式判据,你就一举掌握了两条定理。

反函数定理甚至额外奉送一份赠礼:它告诉你逆的导数,而你压根无需算出逆映射的公式。若 J 是映射的雅可比,逆映射的雅可比就干脆是 J^{-1},即矩阵逆。这是第一卷那条规则的多变量回响——逆函数的导数是原函数导数的倒数,(g^{-1})'(y) = 1/g'(x)。上到多变量的楼层,「倒数」化为「矩阵逆」——同一支旋律,更丰富的乐器。即便把那个倒推显式写出来已是无望,你仍能确切知道它如何运作,连同它的导数。

如何使用它们,以及它们通向何处

在实践中你几乎从不把那个隐藏的函数显式造出来——这正是全部要点,也是全部馈赠。你核查雅可比条件,然后就地对关系式求导,抽出你实际所需的任何变化率。下面这段走查就是那把主力工具;它不过是你早已信赖的单方程隐函数求导,如今由矩阵判据驱动,于是在多个变量参与时依旧成立。

  1. 把约束写成 F = 0(或方程组 F = 0, G = 0),并钉住你关心的集合上那个具体的点,使方程在那里成立。
  2. 决定哪些变量是「输出」(要被解出)、哪些是「输入」(自由),然后*只*对那些输出变量构造方程组的雅可比。
  3. 在该点算出那个雅可比的行列式。若它非零,绿灯亮起:局部存在一个光滑的解函数。若它为零,停下——线性判据无法定论,你必须手动查究。
  4. 用多变量链式法则对关系式求导,把输出变量当作输入的函数,再解所得的*线性*方程组,求出你想要的导数——根本不必去找那个函数本身。

退一步,看看你握有之物的形状。全导数给了你一个多变量映射最佳的线性图景;雅可比把它打包成一个矩阵;而如今它的行列式竟成了主导整个微积分中两个最有用的局部问题的总开关——「这里藏着一个函数吗?」与「我能把它倒着跑吗?」这也是接下来换坐标手法引擎盖下的发动机:那个准许给坐标映射求逆的雅可比行列式,正是你在重积分内换元时为面积和体积重新标度的那个因子。一个偏导数矩阵,只算一次,便回答了高等微积分今后会就一个映射向你发问的、出人意料地一大部分问题。