偏导数与向量函数求导 小象实战讲义 · 人工智能数学基础
在人工智能领域,我们处理的函数往往依赖于多个变量。例如,神经网络的损失函数依赖于成千上万个权重参数。为了优化这些参数,我们需要知道当只改变其中一个参数而固定其他所有参数时,函数值如何变化。这正是偏导数的核心思想。本节将从二元函数的偏导数定义出发,深入探讨其几何意义、计算方法,并最终推广到向量函数的求导,引出在机器学习中至关重要的雅可比矩阵概念。学完本节,你将能够计算多元函数的偏导数,并理解向量函数导数的矩阵形式。
💡 核心导读 本节将为你构建以下知识地图:
定义与符号 :从二元函数增量出发,严格定义偏导数,并介绍其多种标准记法。几何意义 :将偏导数理解为三维曲面被特定平面截取后,所得平面曲线的切线斜率。计算方法 :掌握“固定其他变量,对目标变量求导”的核心计算法则,并通过例题巩固。高阶推广 :从多元函数偏导数自然过渡到向量函数的求导,理解其结果为矩阵(雅可比矩阵)。实战案例 :通过球坐标变换的实例,具体计算雅可比矩阵及其行列式,体会其在坐标变换中的应用。一、偏导数的定义 考虑一个二元函数 z = f ( x , y ) z = f(x, y) z = f ( x , y ) 。在点 ( x 0 , y 0 ) (x_0, y_0) ( x 0 , y 0 ) 的某个邻域内有定义。我们想研究函数在这一点沿 x x x 方向的变化率。
定义(关于 x x x 的偏导数) :固定 y = y 0 y = y_0 y = y 0 ,考虑函数在 x x x 方向上的增量。若极限 lim Δ x → 0 f ( x 0 + Δ x , y 0 ) − f ( x 0 , y 0 ) Δ x \lim_{\Delta x \to 0} \frac{f(x_0 + \Delta x, y_0) - f(x_0, y_0)}{\Delta x} Δ x → 0 lim Δ x f ( x 0 + Δ x , y 0 ) − f ( x 0 , y 0 ) 存在,则称此极限值为函数 f ( x , y ) f(x, y) f ( x , y ) 在点 ( x 0 , y 0 ) (x_0, y_0) ( x 0 , y 0 ) 处 关于 x x x 的偏导数 。
类似地,固定 x = x 0 x = x_0 x = x 0 ,可以定义关于 y y y 的偏导数: lim Δ y → 0 f ( x 0 , y 0 + Δ y ) − f ( x 0 , y 0 ) Δ y \lim_{\Delta y \to 0} \frac{f(x_0, y_0 + \Delta y) - f(x_0, y_0)}{\Delta y} Δ y → 0 lim Δ y f ( x 0 , y 0 + Δ y ) − f ( x 0 , y 0 )
记法 :偏导数有多种等价的记法,需熟练掌握。
关于 x x x 的偏导数:f x ( x 0 , y 0 ) \displaystyle f_x(x_0, y_0) f x ( x 0 , y 0 ) ∂ f ∂ x ∣ ( x 0 , y 0 ) \displaystyle \frac{\partial f}{\partial x} \bigg|_{(x_0, y_0)} ∂ x ∂ f ( x 0 , y 0 ) ∂ z ∂ x ∣ ( x 0 , y 0 ) \displaystyle \frac{\partial z}{\partial x} \bigg|_{(x_0, y_0)} ∂ x ∂ z ( x 0 , y 0 ) f x ∣ ( x 0 , y 0 ) \displaystyle f_x \bigg|_{(x_0, y_0)} f x ( x 0 , y 0 ) 关于 y y y 的偏导数同理,将 x x x 替换为 y y y 。 符号 ∂ \partial ∂ 读作 “partial” 或 “偏”。 如果我们在定义域内每一点都求偏导,就得到了 偏导函数 ,记作: f x ( x , y ) , ∂ f ∂ x , 或 ∂ z ∂ x . f_x(x, y), \quad \frac{\partial f}{\partial x}, \quad \text{或} \quad \frac{\partial z}{\partial x}. f x ( x , y ) , ∂ x ∂ f , 或 ∂ x ∂ z . 此时不再标注具体的点 ( x 0 , y 0 ) (x_0, y_0) ( x 0 , y 0 ) 。
二、偏导数的几何意义与计算 几何意义 回顾一元函数 y = f ( x ) y=f(x) y = f ( x ) 的导数,其几何意义是曲线在某点切线的斜率。
对于二元函数 z = f ( x , y ) z=f(x, y) z = f ( x , y ) ,其图像是一个三维空间中的曲面。偏导数 ∂ f ∂ x ∣ ( x 0 , y 0 ) \frac{\partial f}{\partial x} \bigg| {(x_0, y_0)} ∂ x ∂ f ( x 0 , y 0 ) 的几何意义是: **用平面 y = y 0 y = y_0 y = y 0 去截曲面 z = f ( x , y ) z=f(x,y) z = f ( x , y ) ,得到一条空间曲线 C : z = f ( x , y 0 ) C: z = f(x, y_0) C : z = f ( x , y 0 ) 。这条曲线在点 ( x 0 , y 0 , f ( x 0 , y 0 ) ) (x_0, y_0, f(x_0, y_0)) ( x 0 , y 0 , f ( x 0 , y 0 )) 处的切线关于 x x x 轴的斜率,就是偏导数 ∂ f ∂ x ∣ ( x 0 , y 0 ) \frac{\partial f}{\partial x} \bigg| {(x_0, y_0)}∂ x ∂ f ( x 0 , y 0 ) 的值。**
简单来说,偏导数就是“截面曲线”的切线斜率 。求关于 x x x 的偏导,就用平行于 x O z xOz x O z 的平面(固定 y y y )去截曲面;求关于 y y y 的偏导,就用平行于 y O z yOz y O z 的平面(固定 x x x )去截曲面。
计算方法 从定义和几何意义可知,计算偏导数 ∂ f ∂ x \frac{\partial f}{\partial x} ∂ x ∂ f 时,将除 x x x 以外的所有变量均视为常数 ,然后对 x x x 进行一元函数求导。计算 ∂ f ∂ y \frac{\partial f}{\partial y} ∂ y ∂ f 时亦然。
例1 :设 f ( x , y ) = x y 2 − sin ( x ) ⋅ y + x 3 f(x, y) = xy^2 - \sin(x) \cdot y + x^3 f ( x , y ) = x y 2 − sin ( x ) ⋅ y + x 3 ,求 ∂ f ∂ x \frac{\partial f}{\partial x} ∂ x ∂ f 和 ∂ f ∂ y \frac{\partial f}{\partial y} ∂ y ∂ f 。
解 :
求 ∂ f ∂ x \frac{\partial f}{\partial x} ∂ x ∂ f ,视 y y y 为常数: ∂ f ∂ x = ∂ ∂ x ( x y 2 ) − ∂ ∂ x ( sin ( x ) ⋅ y ) + ∂ ∂ x ( x 3 ) = 1 ⋅ y 2 − cos ( x ) ⋅ y + 3 x 2 = y 2 − y cos x + 3 x 2 . \begin{aligned} \frac{\partial f}{\partial x} &= \frac{\partial}{\partial x}(xy^2) - \frac{\partial}{\partial x}(\sin(x) \cdot y) + \frac{\partial}{\partial x}(x^3) \ &= 1 \cdot y^2 - \cos(x) \cdot y + 3x^2 \ &= y^2 - y\cos x + 3x^2. \end{aligned} ∂ x ∂ f = ∂ x ∂ ( x y 2 ) − ∂ x ∂ ( sin ( x ) ⋅ y ) + ∂ x ∂ ( x 3 ) = 1 ⋅ y 2 − cos ( x ) ⋅ y + 3 x 2 = y 2 − y cos x + 3 x 2 . 求 ∂ f ∂ y \frac{\partial f}{\partial y} ∂ y ∂ f ,视 x x x 为常数: ∂ f ∂ y = ∂ ∂ y ( x y 2 ) − ∂ ∂ y ( sin ( x ) ⋅ y ) + ∂ ∂ y ( x 3 ) = x ⋅ 2 y − sin ( x ) ⋅ 1 + 0 = 2 x y − sin x . \begin{aligned} \frac{\partial f}{\partial y} &= \frac{\partial}{\partial y}(xy^2) - \frac{\partial}{\partial y}(\sin(x) \cdot y) + \frac{\partial}{\partial y}(x^3) \ &= x \cdot 2y - \sin(x) \cdot 1 + 0 \ &= 2xy - \sin x. \end{aligned} ∂ y ∂ f = ∂ y ∂ ( x y 2 ) − ∂ y ∂ ( sin ( x ) ⋅ y ) + ∂ y ∂ ( x 3 ) = x ⋅ 2 y − sin ( x ) ⋅ 1 + 0 = 2 x y − sin x . 例2 :设 z = x ln ( x 2 + y 2 ) z = x \ln(x^2 + y^2) z = x ln ( x 2 + y 2 ) ,求 ∂ z ∂ x ∣ ( 1 , 2 ) \frac{\partial z}{\partial x} \bigg|_{(1, 2)} ∂ x ∂ z ( 1 , 2 ) 。
解法一(先求导函数,再代入) : ∂ z ∂ x = ∂ ∂ x [ x ln ( x 2 + y 2 ) ] = 1 ⋅ ln ( x 2 + y 2 ) + x ⋅ 1 x 2 + y 2 ⋅ 2 x ( 乘积法则与链式法则 ) = ln ( x 2 + y 2 ) + 2 x 2 x 2 + y 2 . \begin{aligned} \frac{\partial z}{\partial x} &= \frac{\partial}{\partial x}[x \ln(x^2 + y^2)] \ &= 1 \cdot \ln(x^2 + y^2) + x \cdot \frac{1}{x^2+y^2} \cdot 2x \quad (\text{乘积法则与链式法则}) \ &= \ln(x^2 + y^2) + \frac{2x^2}{x^2+y^2}. \end{aligned} ∂ x ∂ z = ∂ x ∂ [ x ln ( x 2 + y 2 )] = 1 ⋅ ln ( x 2 + y 2 ) + x ⋅ x 2 + y 2 1 ⋅ 2 x ( 乘积法则与链式法则 ) = ln ( x 2 + y 2 ) + x 2 + y 2 2 x 2 . 代入 ( 1 , 2 ) (1, 2) ( 1 , 2 ) : ∂ z ∂ x ∣ ( 1 , 2 ) = ln ( 1 2 + 2 2 ) + 2 ⋅ 1 2 1 2 + 2 2 = ln 5 + 2 5 . \frac{\partial z}{\partial x} \bigg|_{(1, 2)} = \ln(1^2 + 2^2) + \frac{2 \cdot 1^2}{1^2+2^2} = \ln 5 + \frac{2}{5}. ∂ x ∂ z ( 1 , 2 ) = ln ( 1 2 + 2 2 ) + 1 2 + 2 2 2 ⋅ 1 2 = ln 5 + 5 2 .
解法二(先代入固定变量,再求一元导数) : 由于是求在 y = 2 y=2 y = 2 时的偏导,可先将 y = 2 y=2 y = 2 代入原函数: z = x ln ( x 2 + 4 ) . z = x \ln(x^2 + 4). z = x ln ( x 2 + 4 ) . 此时 z z z 是 x x x 的一元函数,对其求导: d z d x = ln ( x 2 + 4 ) + x ⋅ 2 x x 2 + 4 = ln ( x 2 + 4 ) + 2 x 2 x 2 + 4 . \frac{dz}{dx} = \ln(x^2 + 4) + x \cdot \frac{2x}{x^2+4} = \ln(x^2+4) + \frac{2x^2}{x^2+4}. d x d z = ln ( x 2 + 4 ) + x ⋅ x 2 + 4 2 x = ln ( x 2 + 4 ) + x 2 + 4 2 x 2 . 再代入 x = 1 x=1 x = 1 ,得到相同结果 ln 5 + 2 5 \ln 5 + \frac{2}{5} ln 5 + 5 2 。
技巧 :当函数结构复杂时,第二种方法(先代入固定变量)往往更简洁,不易出错。
例3(三元函数) :设 u ( x , y , z ) = ( x 2 + y 2 ) z 2 + sin ( x 2 ) u(x, y, z) = (x^2 + y^2)z^2 + \sin(x^2) u ( x , y , z ) = ( x 2 + y 2 ) z 2 + sin ( x 2 ) ,求 ∂ u ∂ x , ∂ u ∂ y , ∂ u ∂ z \frac{\partial u}{\partial x}, \frac{\partial u}{\partial y}, \frac{\partial u}{\partial z} ∂ x ∂ u , ∂ y ∂ u , ∂ z ∂ u 。
解 :
∂ u ∂ x \frac{\partial u}{\partial x} ∂ x ∂ u :视 y , z y, z y , z 为常数。 ∂ ∂ x [ ( x 2 + y 2 ) z 2 ] = 2 x ⋅ z 2 \frac{\partial}{\partial x}[(x^2 + y^2)z^2] = 2x \cdot z^2 ∂ x ∂ [( x 2 + y 2 ) z 2 ] = 2 x ⋅ z 2 ,∂ ∂ x [ sin ( x 2 ) ] = cos ( x 2 ) ⋅ 2 x \frac{\partial}{\partial x}[\sin(x^2)] = \cos(x^2) \cdot 2x ∂ x ∂ [ sin ( x 2 )] = cos ( x 2 ) ⋅ 2 x 。 故 ∂ u ∂ x = 2 x z 2 + 2 x cos ( x 2 ) \frac{\partial u}{\partial x} = 2xz^2 + 2x\cos(x^2) ∂ x ∂ u = 2 x z 2 + 2 x cos ( x 2 ) 。∂ u ∂ y \frac{\partial u}{\partial y} ∂ y ∂ u :视 x , z x, z x , z 为常数。 ∂ ∂ y [ ( x 2 + y 2 ) z 2 ] = 2 y ⋅ z 2 \frac{\partial}{\partial y}[(x^2 + y^2)z^2] = 2y \cdot z^2 ∂ y ∂ [( x 2 + y 2 ) z 2 ] = 2 y ⋅ z 2 ,∂ ∂ y [ sin ( x 2 ) ] = 0 \frac{\partial}{\partial y}[\sin(x^2)] = 0 ∂ y ∂ [ sin ( x 2 )] = 0 。 故 ∂ u ∂ y = 2 y z 2 \frac{\partial u}{\partial y} = 2yz^2 ∂ y ∂ u = 2 y z 2 。∂ u ∂ z \frac{\partial u}{\partial z} ∂ z ∂ u :视 x , y x, y x , y 为常数。 ∂ ∂ z [ ( x 2 + y 2 ) z 2 ] = ( x 2 + y 2 ) ⋅ 2 z \frac{\partial}{\partial z}[(x^2 + y^2)z^2] = (x^2+y^2) \cdot 2z ∂ z ∂ [( x 2 + y 2 ) z 2 ] = ( x 2 + y 2 ) ⋅ 2 z ,∂ ∂ z [ sin ( x 2 ) ] = 0 \frac{\partial}{\partial z}[\sin(x^2)] = 0 ∂ z ∂ [ sin ( x 2 )] = 0 。 故 ∂ u ∂ z = 2 z ( x 2 + y 2 ) \frac{\partial u}{\partial z} = 2z(x^2+y^2) ∂ z ∂ u = 2 z ( x 2 + y 2 ) 。三、向量函数的导数:雅可比矩阵 从多元函数到向量函数 一个 n n n 元函数 f : R n ⊃ D → R f: \mathbb{R}^n \supset D \to \mathbb{R} f : R n ⊃ D → R 的偏导数,可以写成一个梯度向量: ∇ f ( x ) = ( ∂ f ∂ x 1 , ∂ f ∂ x 2 , … , ∂ f ∂ x n ) T . \nabla f(\mathbf{x}) = \left( \frac{\partial f}{\partial x_1}, \frac{\partial f}{\partial x_2}, \dots, \frac{\partial f}{\partial x_n} \right)^T. ∇ f ( x ) = ( ∂ x 1 ∂ f , ∂ x 2 ∂ f , … , ∂ x n ∂ f ) T . 现在考虑更一般的情形:一个 向量值函数 (或称多元映射)f : R n ⊃ D → R m \mathbf{f}: \mathbb{R}^n \supset D \to \mathbb{R}^m f : R n ⊃ D → R m ,它将 n n n 维向量 x = ( x 1 , … , x n ) T \mathbf{x} = (x_1, \dots, x_n)^T x = ( x 1 , … , x n ) T 映射为 m m m 维向量: f ( x ) = ( f 1 ( x 1 , … , x n ) f 2 ( x 1 , … , x n ) ⋮ f m ( x 1 , … , x n ) ) . \mathbf{f}(\mathbf{x}) = \begin{pmatrix} f_1(x_1, \dots, x_n) \ f_2(x_1, \dots, x_n) \ \vdots \ f_m(x_1, \dots, x_n) \end{pmatrix}. f ( x ) = f 1 ( x 1 , … , x n ) f 2 ( x 1 , … , x n ) ⋮ f m ( x 1 , … , x n ) . 其中每个 f i f_i f i 都是一个 n n n 元函数。
雅可比矩阵的定义 向量函数 f \mathbf{f} f 在点 x 0 \mathbf{x}_0 x 0 处的 导数 定义为所有分量函数 f i f_i f i 关于所有自变量 x j x_j x j 的偏导数所构成的矩阵。
定义(雅可比矩阵) :若向量函数 f \mathbf{f} f 的每个分量 f i f_i f i 在点 x 0 \mathbf{x}_0 x 0 处对所有自变量的偏导数都存在,则称 f \mathbf{f} f 在 x 0 \mathbf{x}_0 x 0 处可导,其导数是一个 m × n m \times n m × n 矩阵,称为 雅可比矩阵 (Jacobian Matrix) ,记作 J f ( x 0 ) J\mathbf{f}(\mathbf{x}_0) J f ( x 0 ) 或 D f ( x 0 ) D\mathbf{f}(\mathbf{x}_0) D f ( x 0 ) : J f ( x 0 ) = ( ∂ f 1 ∂ x 1 ∂ f 1 ∂ x 2 ⋯ ∂ f 1 ∂ x n ∂ f 2 ∂ x 1 ∂ f 2 ∂ x 2 ⋯ ∂ f 2 ∂ x n ⋮ ⋮ ⋱ ⋮ ∂ f m ∂ x 1 ∂ f m ∂ x 2 ⋯ ∂ f m ∂ x n ) ∣ x = x 0 . J\mathbf{f}(\mathbf{x} 0) = \begin{pmatrix} \frac{\partial f_1}{\partial x_1} & \frac{\partial f_1}{\partial x_2} & \cdots & \frac{\partial f_1}{\partial x_n} \ \frac{\partial f_2}{\partial x_1} & \frac{\partial f_2}{\partial x_2} & \cdots & \frac{\partial f_2}{\partial x_n} \ \vdots & \vdots & \ddots & \vdots \ \frac{\partial f_m}{\partial x_1} & \frac{\partial f_m}{\partial x_2} & \cdots & \frac{\partial f_m}{\partial x_n} \end{pmatrix} \bigg| {\mathbf{x}=\mathbf{x}_0}.J f ( x 0 ) = ∂ x 1 ∂ f 1 ∂ x 1 ∂ f 2 ⋮ ∂ x 1 ∂ f m ∂ x 2 ∂ f 1 ∂ x 2 ∂ f 2 ⋮ ∂ x 2 ∂ f m ⋯ ⋯ ⋱ ⋯ ∂ x n ∂ f 1 ∂ x n ∂ f 2 ⋮ ∂ x n ∂ f m x = x 0 .
记忆口诀 :雅可比矩阵的第 i i i 行是第 i i i 个分量函数 f i f_i f i 的梯度(列向量)的转置(行向量)。
当 m = n m = n m = n 时,雅可比矩阵是方阵,其行列式 det ( J f ( x ) ) \det(J\mathbf{f}(\mathbf{x})) det ( J f ( x )) 称为 雅可比行列式 ,在多重积分变量替换中起着关键作用。
实例:球坐标变换 例4(球坐标变换) :考虑从球坐标 ( r , ϕ , θ ) (r, \phi, \theta) ( r , ϕ , θ ) 到直角坐标 ( x , y , z ) (x, y, z) ( x , y , z ) 的变换: { x = r sin ϕ cos θ , y = r sin ϕ sin θ , z = r cos ϕ . \begin{cases} x = r \sin \phi \cos \theta, \ y = r \sin \phi \sin \theta, \ z = r \cos \phi. \end{cases} ⎩ ⎨ ⎧ x = r sin ϕ cos θ , y = r sin ϕ sin θ , z = r cos ϕ . 其中 r ≥ 0 , 0 ≤ ϕ ≤ π , 0 ≤ θ < 2 π r \ge 0, 0 \le \phi \le \pi, 0 \le \theta < 2\pi r ≥ 0 , 0 ≤ ϕ ≤ π , 0 ≤ θ < 2 π 。这是一个从 R 3 \mathbb{R}^3 R 3 到 R 3 \mathbb{R}^3 R 3 的向量函数 f ( r , ϕ , θ ) = ( x , y , z ) T \mathbf{f}(r, \phi, \theta) = (x, y, z)^T f ( r , ϕ , θ ) = ( x , y , z ) T 。求其雅可比矩阵 J f J\mathbf{f} J f 及雅可比行列式。
解 :分别计算每个偏导数:
∂ x ∂ r = sin ϕ cos θ \frac{\partial x}{\partial r} = \sin\phi \cos\theta ∂ r ∂ x = sin ϕ cos θ , ∂ x ∂ ϕ = r cos ϕ cos θ \frac{\partial x}{\partial \phi} = r\cos\phi \cos\theta ∂ ϕ ∂ x = r cos ϕ cos θ , ∂ x ∂ θ = − r sin ϕ sin θ \frac{\partial x}{\partial \theta} = -r\sin\phi \sin\theta ∂ θ ∂ x = − r sin ϕ sin θ .∂ y ∂ r = sin ϕ sin θ \frac{\partial y}{\partial r} = \sin\phi \sin\theta ∂ r ∂ y = sin ϕ sin θ , ∂ y ∂ ϕ = r cos ϕ sin θ \frac{\partial y}{\partial \phi} = r\cos\phi \sin\theta ∂ ϕ ∂ y = r cos ϕ sin θ , ∂ y ∂ θ = r sin ϕ cos θ \frac{\partial y}{\partial \theta} = r\sin\phi \cos\theta ∂ θ ∂ y = r sin ϕ cos θ .∂ z ∂ r = cos ϕ \frac{\partial z}{\partial r} = \cos\phi ∂ r ∂ z = cos ϕ , ∂ z ∂ ϕ = − r sin ϕ \frac{\partial z}{\partial \phi} = -r\sin\phi ∂ ϕ ∂ z = − r sin ϕ , ∂ z ∂ θ = 0 \frac{\partial z}{\partial \theta} = 0 ∂ θ ∂ z = 0 .因此,雅可比矩阵为: J f = ( sin ϕ cos θ r cos ϕ cos θ − r sin ϕ sin θ sin ϕ sin θ r cos ϕ sin θ r sin ϕ cos θ cos ϕ − r sin ϕ 0 ) . J\mathbf{f} = \begin{pmatrix} \sin\phi \cos\theta & r\cos\phi \cos\theta & -r\sin\phi \sin\theta \ \sin\phi \sin\theta & r\cos\phi \sin\theta & r\sin\phi \cos\theta \ \cos\phi & -r\sin\phi & 0 \end{pmatrix}. J f = sin ϕ cos θ sin ϕ sin θ cos ϕ r cos ϕ cos θ r cos ϕ sin θ − r sin ϕ − r sin ϕ sin θ r sin ϕ cos θ 0 .
计算其行列式(按第三行展开): det ( J f ) = cos ϕ ⋅ ( − 1 ) 3 + 1 ∣ r cos ϕ cos θ − r sin ϕ sin θ r cos ϕ sin θ r sin ϕ cos θ ∣ + ( − r sin ϕ ) ⋅ ( − 1 ) 3 + 2 ∣ sin ϕ cos θ − r sin ϕ sin θ sin ϕ sin θ r sin ϕ cos θ ∣ + 0 = cos ϕ ⋅ ( r cos ϕ cos θ ⋅ r sin ϕ cos θ − ( − r sin ϕ sin θ ) ⋅ r cos ϕ sin θ ) + r sin ϕ ⋅ ( sin ϕ cos θ ⋅ r sin ϕ cos θ − ( − r sin ϕ sin θ ) ⋅ sin ϕ sin θ ) = cos ϕ ⋅ ( r 2 sin ϕ cos ϕ cos 2 θ + r 2 sin ϕ cos ϕ sin 2 θ ) + r sin ϕ ⋅ ( r sin 2 ϕ cos 2 θ + r sin 2 ϕ sin 2 θ ) = cos ϕ ⋅ ( r 2 sin ϕ cos ϕ ( cos 2 θ + sin 2 θ ) ) + r sin ϕ ⋅ ( r sin 2 ϕ ( cos 2 θ + sin 2 θ ) ) = r 2 sin ϕ cos 2 ϕ + r 2 sin 3 ϕ = r 2 sin ϕ ( cos 2 ϕ + sin 2 ϕ ) = r 2 sin ϕ . \begin{aligned} \det(J\mathbf{f}) &= \cos\phi \cdot (-1)^{3+1} \begin{vmatrix} r\cos\phi \cos\theta & -r\sin\phi \sin\theta \ r\cos\phi \sin\theta & r\sin\phi \cos\theta \end{vmatrix} \ &\quad + (-r\sin\phi) \cdot (-1)^{3+2} \begin{vmatrix} \sin\phi \cos\theta & -r\sin\phi \sin\theta \ \sin\phi \sin\theta & r\sin\phi \cos\theta \end{vmatrix} + 0 \ &= \cos\phi \cdot \left( r\cos\phi \cos\theta \cdot r\sin\phi \cos\theta - (-r\sin\phi \sin\theta) \cdot r\cos\phi \sin\theta \right) \ &\quad + r\sin\phi \cdot \left( \sin\phi \cos\theta \cdot r\sin\phi \cos\theta - (-r\sin\phi \sin\theta) \cdot \sin\phi \sin\theta \right) \ &= \cos\phi \cdot \left( r^2 \sin\phi \cos\phi \cos^2\theta + r^2 \sin\phi \cos\phi \sin^2\theta \right) \ &\quad + r\sin\phi \cdot \left( r \sin^2\phi \cos^2\theta + r \sin^2\phi \sin^2\theta \right) \ &= \cos\phi \cdot \left( r^2 \sin\phi \cos\phi (\cos^2\theta + \sin^2\theta) \right) + r\sin\phi \cdot \left( r \sin^2\phi (\cos^2\theta + \sin^2\theta) \right) \ &= r^2 \sin\phi \cos^2\phi + r^2 \sin^3\phi \ &= r^2 \sin\phi (\cos^2\phi + \sin^2\phi) \ &= r^2 \sin\phi. \end{aligned} det ( J f ) = cos ϕ ⋅ ( − 1 ) 3 + 1 r cos ϕ cos θ r cos ϕ sin θ − r sin ϕ sin θ r sin ϕ cos θ + ( − r sin ϕ ) ⋅ ( − 1 ) 3 + 2 sin ϕ cos θ sin ϕ sin θ − r sin ϕ sin θ r sin ϕ cos θ + 0 = cos ϕ ⋅ ( r cos ϕ cos θ ⋅ r sin ϕ cos θ − ( − r sin ϕ sin θ ) ⋅ r cos ϕ sin θ ) + r sin ϕ ⋅ ( sin ϕ cos θ ⋅ r sin ϕ cos θ − ( − r sin ϕ sin θ ) ⋅ sin ϕ sin θ ) = cos ϕ ⋅ ( r 2 sin ϕ cos ϕ cos 2 θ + r 2 sin ϕ cos ϕ sin 2 θ ) + r sin ϕ ⋅ ( r sin 2 ϕ cos 2 θ + r sin 2 ϕ sin 2 θ ) = cos ϕ ⋅ ( r 2 sin ϕ cos ϕ ( cos 2 θ + sin 2 θ ) ) + r sin ϕ ⋅ ( r sin 2 ϕ ( cos 2 θ + sin 2 θ ) ) = r 2 sin ϕ cos 2 ϕ + r 2 sin 3 ϕ = r 2 sin ϕ ( cos 2 ϕ + sin 2 ϕ ) = r 2 sin ϕ . 球坐标变换的雅可比行列式为 r 2 sin ϕ r^2 \sin\phi r 2 sin ϕ 。当其不为零(即 r > 0 r>0 r > 0 且 ϕ ≠ 0 , π \phi \neq 0, \pi ϕ = 0 , π )时,变换在该点附近是局部可逆的,这是进行球坐标下三重积分变量替换的基础。
下面我们用 Python 的 SymPy 库来验证上述偏导数和雅可比行列式的计算。
import sympy as sp
# 定义符号变量
r, phi, theta = sp.symbols( 'r phi theta' , real = True )
# 定义球坐标变换函数
x = r * sp.sin(phi) * sp.cos(theta)
y = r * sp.sin(phi) * sp.sin(theta)
z = r * sp.cos(phi)
# 1. 计算单个偏导数示例:∂x/∂φ
partial_x_phi = sp.diff(x, phi)
print ( f "∂x/∂φ = { partial_x_phi } " )
print ( f "化简后: ∂x/∂φ = { sp.simplify(partial_x_phi) } " )
print ( "-" * 40 )
# 2. 构建雅可比矩阵
# 定义向量函数
F = sp.Matrix([x, y, z])
# 定义自变量向量
X = sp.Matrix([r, phi, theta])
# 计算雅可比矩阵
J = F.jacobian(X)
print ( "雅可比矩阵 Jf:" )
sp.pprint(J)
print ( "-" * 40 )
# 3. 计算雅可比行列式并化简
jacobian_det = J.det()
simplified_det = sp.simplify(jacobian_det)
print ( f "雅可比行列式 det(Jf) = { jacobian_det } " )
print ( f "化简后的行列式 = { simplified_det } " )
# 4. 验证一个具体的偏导数计算:例1中的函数
x_sym, y_sym = sp.symbols( 'x y' , real = True )
f = x_sym * y_sym ** 2 - sp.sin(x_sym) * y_sym + x_sym ** 3
f_x = sp.diff(f, x_sym)
f_y = sp.diff(f, y_sym)
print ( "-" * 40 )
print ( f "例1函数: f(x, y) = { f } " )
print ( f "∂f/∂x = { f_x } " )
print ( f "∂f/∂y = { f_y } " ) 📝 动手练一练 基础计算 :设函数 f ( x , y ) = e 2 x cos ( 3 y ) + x 2 y 3 f(x, y) = e^{2x} \cos(3y) + x^2 y^3 f ( x , y ) = e 2 x cos ( 3 y ) + x 2 y 3 ,求 ∂ f ∂ x \frac{\partial f}{\partial x} ∂ x ∂ f 和 ∂ f ∂ y \frac{\partial f}{\partial y} ∂ y ∂ f 。向量函数求导 :考虑一个简单的线性变换 f : R 2 → R 2 \mathbf{f}: \mathbb{R}^2 \to \mathbb{R}^2 f : R 2 → R 2 ,定义为 f ( x , y ) = ( 2 x + 3 y , x − 4 y ) T \mathbf{f}(x, y) = (2x + 3y, , x - 4y)^T f ( x , y ) = ( 2 x + 3 y , x − 4 y ) T 。写出其雅可比矩阵 J f J\mathbf{f} J f 。这个矩阵有什么特点?参考答案 :
∂ f ∂ x = 2 e 2 x cos ( 3 y ) + 2 x y 3 \frac{\partial f}{\partial x} = 2e^{2x}\cos(3y) + 2xy^3 ∂ x ∂ f = 2 e 2 x cos ( 3 y ) + 2 x y 3 ,∂ f ∂ y = − 3 e 2 x sin ( 3 y ) + 3 x 2 y 2 \frac{\partial f}{\partial y} = -3e^{2x}\sin(3y) + 3x^2y^2 ∂ y ∂ f = − 3 e 2 x sin ( 3 y ) + 3 x 2 y 2 。J f = ( 2 3 1 − 4 ) J\mathbf{f} = \begin{pmatrix} 2 & 3 \ 1 & -4 \end{pmatrix} J f = ( 2 1 3 − 4 ) 。这是一个常数矩阵,因为 f \mathbf{f} f 是一个线性变换,其雅可比矩阵就是该线性变换的系数矩阵。本章小结 本节我们系统地学习了多元函数微分学的入门知识:
偏导数 衡量了多元函数沿某一坐标轴方向的变化率,计算时需固定其他变量。几何上 ,偏导数是三维曲面被坐标平面所截曲线切线的斜率。向量函数的导数 是其所有分量函数对所有自变量的偏导数构成的矩阵,即雅可比矩阵 。它是梯度概念向高维输出的自然推广。雅可比行列式 在坐标变换中至关重要,其非零性保证了变换的局部可逆性。行动清单 动手计算 :选取3个包含多项式、指数、三角函数的多元函数,独立计算它们的一阶偏导数。代码验证 :使用 SymPy 重复上述计算,并尝试计算一个简单向量函数(如 f ( x , y ) = ( x 2 y , sin ( x + y ) ) T \mathbf{f}(x,y)=(x^2y, \sin(x+y))^T f ( x , y ) = ( x 2 y , sin ( x + y ) ) T )的雅可比矩阵,与手算结果对比。概念联想 :思考在神经网络中,损失函数 L L L 对某个权重参数 w i j w_{ij} w ij 的偏导数 ∂ L ∂ w i j \frac{\partial L}{\partial w_{ij}} ∂ w ij ∂ L 有什么具体的物理意义?它如何指导参数的更新?— 小象教研组