从斜率到最佳线性映射
在第一卷里,导数 f'(a) 是切线的斜率,是一个数。但在这个数的背后藏着一层更深的读法:f'(a) 是 f 在 a 附近最佳直线逼近里的那个乘数,也就是 f(a + h) 约等于 f(a) + f'(a) h。诚实的说法是:当 h 趋于 0 时,误差 f(a + h) - f(a) - f'(a) h 比 h 本身衰减得更快——这正是「最佳」的含义。能在「多元跃迁」中幸存下来的,正是这种线性逼近的视角,而不是斜率的图像。
现在让 f 吃进平面上的一个点、吐出一个数,即 f(x, y)。直线不再合身了——在一点附近,图像是一张曲面,正确的逼近对象是一张平坦的切平面。此时「最佳线性逼近」的意思是:存在一个线性映射 L(它吃进位移向量 h = (h1, h2)、吐出一个数),使得 f(a + h) 约等于 f(a) + L(h),而误差同样比 h 的长度衰减得更快。这个唯一的线性映射 L 就是全导数。斜率已经变成了一整台线性机器。
为什么光有偏导数还不够
像 df/dx 这样的偏导数,只测量你沿某一个坐标轴方向行走、把其余变量冻住时 f 的变化率。上一份指南把它们重新理解为梯度 nabla f = (df/dx, df/dy) 的分量。人们很容易在两个偏导数刚一存在时就宣布函数可微。这是错的,而且这个落差很要紧:偏导数只探测两个坐标方向,而可微性是对「所有逼近方向同时」作出的承诺。
经典的警示例子是 f(x, y) = xy / (x^2 + y^2),并约定 f(0, 0) = 0。沿 x 轴 f 恒为 0,所以原点处 df/dx = 0;沿 y 轴同理,df/dy = 0。两个偏导数都存在且都等于 0。然而沿对角线 y = x,对任意非零 x,函数取值 x*x / (2x^2) = 1/2——当你顺着这条线滑向原点时,它甚至根本不趋于 0。一个连续性都不成立的函数,不可能有切平面,所以它不可微,尽管它的偏导数定义得清清楚楚。
全微分:梯度来干活
当 f(x, y) 可微时,那个神秘的线性映射 L 一点也不神秘——它必须由偏导数拼出来。唯一能与 f 各单方向变化率相符的线性映射是 L(h1, h2) = (df/dx) h1 + (df/dy) h2,这恰好就是梯度与位移的点积:L(h) = nabla f · h。把微小位移写成 dx 与 dy,这就是全微分 df = (df/dx) dx + (df/dy) dy。它是 dy = f'(x) dx 在多元里的回响。
把它想得具体些。设一块金属板上某点温度为 T(x, y),在该点 nabla T = (3, -2) 度每厘米。沿 x 走 0.1 厘米、沿 y 走 0.05 厘米。全微分把温度变化估计为 dT = 3(0.1) + (-2)(0.05) = 0.3 - 0.1 = 0.2 度。每个偏导数贡献自己的变化率乘以自己的步长,然后直接相加——没有交叉项,因为线性逼近按设计就忽略了各方向之间如何相互作用。那种相互作用住在二阶项里,后面的指南会通过海森矩阵和二阶泰勒展开去触及。
两点诚实的提醒。第一,全微分是一种逼近,只有在步长无穷小的极限下才精确;对有限的 dx、dy 存在误差,而这个误差恰好就是你丢掉的那个高阶余项。第二,它也是实验室里误差传播的引擎:如果你知道测量值里大致的不确定度 dx 与 dy,那么 |df| 不超过 |df/dx||dx| + |df/dy||dy|,给出 f 不确定度的一个初步估计——它之所以诚实,正因为它是线性而局部的。
雅可比矩阵:把向量映射的偏导数装进矩阵
再往上走一级:让输出也是向量。映射 F 把点 (x, y) 送到一对 (u, v) = (f1(x, y), f2(x, y))——想象一次坐标变换,或一种把平面某区域弯折映到另一区域的物理变换。每个分量 f1、f2 都是普通的标量函数,各有自己的梯度,从而各有自己的全微分。把这些梯度作为行堆叠成一个矩阵,你就造出了 F 的雅可比矩阵,它正是一个向量值映射的全导数这个单一对象。
F(x, y) = ( f1(x, y), f2(x, y) ). Its Jacobian matrix:
J = [ df1/dx, df1/dy ;
df2/dx, df2/dy ]
Row i = gradient of the i-th output component.
Column j = how every output responds to input x_j.
Worked example: F(x, y) = ( x^2 - y^2 , 2xy ) (squaring a complex number)
df1/dx = 2x df1/dy = -2y
df2/dx = 2y df2/dy = 2x
J = [ 2x, -2y ;
2y, 2x ]
Local linear model of the map near a:
F(a + h) is approximately F(a) + J(a) h (J(a) h is matrix times column vector h)这个矩阵要从两个方向读。第 i 行是第 i 个输出的梯度,告诉你那个输出如何对所有输入作出反应。第 j 列把固定输入 x_j 对应的所有 df_i/dx_j 收集起来——当你轻推那一个输入时,整个输出向量如何回应。梯度只是单一输出的特例:一个 1 乘 n 的雅可比矩阵。参数化一条曲线的列向量则是单一输入的情形:一个 m 乘 1 的雅可比矩阵。雅可比矩阵才是真正一般的导数,而你已经熟悉的一切都是它的某个切片。
为什么是矩阵:复合变成相乘
把偏导数装进矩阵不只是为了整洁;这正是让链式法则变得优美的原因。如果你先做映射 F、再做映射 G,那么复合 G of F 的局部线性模型,就是它们各自线性模型的复合——而复合线性映射恰恰就是矩阵相乘。于是多元链式法则写成 J_{G of F} = J_G · J_F,即把雅可比矩阵按顺序相乘。单变量的 (g of f)' = g'(f(x)) f'(x) 正是这条法则在一乘一矩阵下的样子,那时乘法就是普通数的乘法;矩阵形式是同一论断长大成人的版本。
当 F 从 n 个输入映到 n 个输出时,它的雅可比矩阵是方阵,而它的行列式自有其名:雅可比行列式,常写作 det(J) 或 d(u,v)/d(x,y)。从几何上看,它是该映射的局部面积(或体积)伸缩因子:某点附近一个面积为 dA 的小方块,被搬运成一个面积为 |det J| dA 的小平行四边形。符号则告诉你定向——雅可比行列式为负,意味着映射把区域翻了个面,像镜子一样。这正是你在多重积分里换元时出现的那个因子。
这一个数还决定了映射是否局部可逆。反函数定理说:凡是 det J 不为零之处,F 在一个小邻域内可逆,而逆映射的雅可比矩阵恰好就是 J 的矩阵逆——这是 (f inverse)' = 1 / f' 的多维版本。它的姊妹定理隐函数定理则用一个不为零的子雅可比矩阵来保证:即使写不出公式,你也能在局部把某些变量用其余变量解出来。两者都是带有真实前提的局部定理,正是后面几份指南的主题。
把它们串起来
- 先定形状:F 从 n 个输入映到 m 个输出,所以它的雅可比矩阵是 m 乘 n 的(行数对应输出,列数对应输入)。
- 把第 (i, j) 个元素填成 df_i/dx_j——按第一卷的做法,固定其余输入,逐个算出每个偏导数。
- 在基点 a 处对 J 求值,得到一个具体的数值矩阵;局部模型就是 F(a + h) 约等于 F(a) + J(a) h。
- 若映射为方阵,则求 det J:不为零意味着局部可逆、并以 |det J| 缩放面积;映射相接则把它们的雅可比矩阵相乘。
把整条脉络收进一个画面。斜率被推广为全导数,一个最佳线性映射;这个映射的坐标,也就是偏导数,整齐地排成雅可比矩阵的各行;雅可比矩阵的行列式则度量该映射如何拉伸空间、如何定向。从这里出发,积分的换元定理、任意复合的链式法则,以及反函数与隐函数定理,全都只是从不同角度看到的同一个雅可比矩阵。一个矩阵,承载着一个映射全部的一阶信息——这就是本阶梯余下内容的统摄性思想。