本文将从线性代数的角度,将单变量函数 RR\mathbb{R} \to \mathbb{R} 的微分扩展到多变量函数 RnR\mathbb{R}^n \to \mathbb{R} 上。用到的数学工具只有向量和矩阵。

多元函数的微分

一阶导数:梯度向量

f:RnRf: \mathbb{R}^n \to \mathbb{R},我们可以对自变量 x=(x1,x2,,xn)T\mathbf{x}=(x_1, x_2, \cdots, x_n)^T 的每个分量分别求导数

fxi=limh0f(x1,,xi+h,,xn)f(x1,,xi,,xn)h \frac{\partial f}{\partial x_i} = \lim_{h \to 0} \frac{f(x_1,\cdots,x_i+h,\cdots,x_n) - f(x_1,\cdots,x_i,\cdots,x_n)}{h}

这就是 ff 的偏导数。但偏导数固定其余分量,只变化第 ii 个分量,因此只能表示对特定方向的变化率。

若想表示对任意方向的变化率,则我们需要一种来自线性代数的方法——先把原向量分解到每个分量上,然后计算各分量方向上的变化量,最后求和得到总的变化量。若 ffx0\mathbf{x}_0 处可微,则在 x0\mathbf{x}_0ff 有局部的线性性,因此这种分解是成立的。

对于单位向量 uRn\mathbf{u} \in \mathbb{R}^n,其坐标已经完成了分解

u=[u1u2un] \mathbf{u} = \begin{bmatrix} u_1 \\ u_2 \\ \vdots \\ u_n \end{bmatrix}

从而函数在该方向的变化率,即方向导数为

Duf(x)=fx1u1+fx2u2++fxnun=i=1nfxiui D_{\mathbf{u}} f(\mathbf{x}) = \frac{\partial f}{\partial x_1} u_1 + \frac{\partial f}{\partial x_2} u_2 + \cdots + \frac{\partial f}{\partial x_n} u_n = \sum_{i=1}^n \frac{\partial f}{\partial x_i} u_i

写成向量形式

Duf(x)=[fx1fx2fxn]u D_{\mathbf{u}} f(\mathbf{x}) = \begin{bmatrix} \frac{\partial f}{\partial x_1} & \frac{\partial f}{\partial x_2} & \cdots & \frac{\partial f}{\partial x_n} \end{bmatrix} \mathbf{u}

该行向量的转置就是梯度向量——由各一阶偏导数组成的列向量

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}

函数沿 dx=(dx1,dx2,,dxn)T\mathrm{d}\mathbf{x} = (\mathrm{d}x_1, \mathrm{d}x_2, \cdots, \mathrm{d}x_n)^T 的变化量为

df=f(x)dx=i=1nfxidxi \mathrm{d}f = \nabla f(\mathbf{x}) \cdot \mathrm{d}\mathbf{x} = \sum_{i=1}^n \frac{\partial f}{\partial x_i} \mathrm{d}x_i

这就是全微分公式。

二阶导数:海森矩阵

要继续求二阶导数,直接对梯度向量 f\nabla f 的每个分量 fxi\frac{\partial f}{\partial x_i} 继续求全微分即可

d(fxi)=j=1nxj(fxi)dxj=j=1n2fxjxidxj=[2fx1xi2fx2xi2fxnxi][dx1dx2dxn] \begin{align*} \mathrm{d} \left( \frac{\partial f}{\partial x_i} \right) &= \sum_{j=1}^n \frac{\partial}{\partial x_j} \left( \frac{\partial f}{\partial x_i} \right) \mathrm{d}x_j \\ &= \sum_{j=1}^n \frac{\partial^2 f}{\partial x_j \partial x_i} \mathrm{d}x_j \\ &= \begin{bmatrix} \frac{\partial^2 f}{\partial x_1 \partial x_i} & \frac{\partial^2 f}{\partial x_2 \partial x_i} & \cdots & \frac{\partial^2 f}{\partial x_n \partial x_i} \end{bmatrix} \begin{bmatrix} \mathrm{d}x_1 \\ \mathrm{d}x_2 \\ \vdots \\ \mathrm{d}x_n \end{bmatrix} \end{align*}

写成完整的矩阵形式

d[fx1fx2fxn]=[2fx122fx2x12fxnx12fx1x22fx222fxnx22fx1xn2fx2xn2fxn2][dx1dx2dxn] \mathrm{d}\begin{bmatrix} \frac{\partial f}{\partial x_1} \\ \frac{\partial f}{\partial x_2} \\ \vdots \\ \frac{\partial f}{\partial x_n} \end{bmatrix} = \begin{bmatrix} \frac{\partial^2 f}{\partial x_1^2} & \frac{\partial^2 f}{\partial x_2 \partial x_1} & \cdots & \frac{\partial^2 f}{\partial x_n \partial x_1} \\ \frac{\partial^2 f}{\partial x_1 \partial x_2} & \frac{\partial^2 f}{\partial x_2^2} & \cdots & \frac{\partial^2 f}{\partial x_n \partial x_2} \\ \vdots & \vdots & \ddots & \vdots \\ \frac{\partial^2 f}{\partial x_1 \partial x_n} & \frac{\partial^2 f}{\partial x_2 \partial x_n} & \cdots & \frac{\partial^2 f}{\partial x_n^2} \end{bmatrix} \begin{bmatrix} \mathrm{d}x_1 \\ \mathrm{d}x_2 \\ \vdots \\ \mathrm{d}x_n \end{bmatrix}

该矩阵的转置就是海森矩阵

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}

引入海森矩阵后,上述结果可优美地表示为

d(f)=HfTdx \mathrm{d}(\nabla f) = \mathbf{H}_f^{T} \mathrm{d}\mathbf{x}

现计算沿 dx=(dx1,dx2,,dxn)T\mathrm{d}\mathbf{x} = (\mathrm{d}x_1, \mathrm{d}x_2, \cdots, \mathrm{d}x_n)^T 的二阶变化量。我们已经得到了梯度向量的变化量 d(f)\mathrm{d} \left(\nabla f\right),接着计算点积即可

d2f=d(f)dx=(HfTdx)Tdx=dxTHfdx \begin{align*} \mathrm{d}^2 f &= \mathrm{d} \left(\nabla f\right) \cdot \mathrm{d}\mathbf{x} \\ &= \left( \mathbf{H}_f^T \mathrm{d}\mathbf{x} \right)^T \mathrm{d}\mathbf{x} \\ &= \mathrm{d}\mathbf{x}^T \mathbf{H}_f \mathrm{d}\mathbf{x} \end{align*}

这是一个标准的二次型。后文会尝试将其分解,以讨论更多的几何与代数含义。

当然,海森矩阵存在的前提是 ff 具有二阶可微性。同时,若 ff 的所有二阶偏导数连续,即 fC2f \in C^2,则混合偏导数与求导顺序无关

2fxixj=2fxjxi \frac{\partial^2 f}{\partial x_i \partial x_j} = \frac{\partial^2 f}{\partial x_j \partial x_i}

从而海森矩阵是对称矩阵,即 HfT=Hf\mathbf{H}_f^T = \mathbf{H}_f

高阶导数:张量与微分算子

那么,多元函数的任意阶导数怎么求呢?先回顾一下 RnR\mathbb{R}^n \to \mathbb{R} 函数的一阶和二阶导数,它们的求导方式其实可以用微分算子进行统一表示。

定义微分算子

=[12n] \nabla = \begin{bmatrix} \partial_1 \\ \partial_2 \\ \vdots \\ \partial_n \end{bmatrix}

其中 i=xi\partial_i = \frac{\partial}{\partial x_i} 是对偏导数算子的简写。

一阶导数可以表示为该算子与函数的张量积。此时可以将张量积理解为线性代数中的外积

D1f=f=(fT)=f \mathcal{D}^1 f = \nabla \otimes f = \nabla (f^T) = \nabla f

算子是 nn 维向量,和标量 ff 求张量积,得到 nn 维向量,即

f=[12n]f=[1f2fnf] \nabla f = \begin{bmatrix} \partial_1 \\ \partial_2 \\ \vdots \\ \partial_n \end{bmatrix} f = \begin{bmatrix} \partial_1 f\\ \partial_2 f\\ \vdots \\ \partial_n f \end{bmatrix}

这就是梯度向量。继续把微分算子和一阶导数进行张量积,就得到了二阶导数

D2f=(D1f)=(f)T=Tf \mathcal{D}^2 f = \nabla \otimes (\mathcal{D}^1 f) = \nabla (\nabla f)^T = \nabla \nabla^T f

算子仍然是 nn 维向量,和 nn 维向量 f\nabla f 求张量积,得到 n×nn \times n 维矩阵,即

Tf=[12n][12n]f=[11f12f1nf21f22f2nfn1fn2fnnf] \begin{align*} \nabla \nabla^T f &= \begin{bmatrix} \partial_1 \\ \partial_2 \\ \vdots \\ \partial_n \end{bmatrix} \begin{bmatrix} \partial_1 & \partial_2 & \cdots & \partial_n \end{bmatrix} f \\ &= \begin{bmatrix} \partial_1\partial_1 f & \partial_1\partial_2 f & \cdots & \partial_1\partial_n f \\ \partial_2\partial_1 f & \partial_2\partial_2 f & \cdots & \partial_2\partial_n f \\ \vdots & \vdots & \ddots & \vdots \\ \partial_n\partial_1 f & \partial_n\partial_2 f & \cdots & \partial_n\partial_n f \end{bmatrix} \end{align*}

这就是海森矩阵。

推广到三阶导数时,线性代数的外积无法表示张量积了。因此我们必须得定义张量积

一个 MM 阶张量 A\mathcal{A},维度为 I1×I2××IMI_1 \times I_2 \times \dots \times I_M,另一个 NN 阶张量 B\mathcal{B},维度为 J1×J2××JNJ_1 \times J_2 \times \dots \times J_N,则它们的张量积 C=AB\mathcal{C} = \mathcal{A} \otimes \mathcal{B} 定义为

[AB]i1iMj1jN=Ai1iMBj1jN[\mathcal{A} \otimes \mathcal{B}]_{i_1 \dots i_M j_1 \dots j_N} = \mathcal{A}_{i_1 \dots i_M} \mathcal{B}_{j_1 \dots j_N}

其阶数相加为 M+NM + N,维度拼接为 I1××IM×J1××JNI_1 \times \dots \times I_M \times J_1 \times \dots \times J_N,而任意位置 (i1iMj1jN)(i_1 \dots i_M j_1 \dots j_N) 的元素,就等于原来两个张量在 (i1iM)(i_1 \dots i_M)(j1jN)(j_1 \dots j_N) 处元素的乘积。张量积可以看作矩阵(二阶张量)乘法的推广。

由此得到三阶导数的定义

D3f=(D2f) \mathcal{D}^3 f = \nabla \otimes (\mathcal{D}^2 f)

D3f\mathcal{D}^3 f 是三阶张量,由一阶张量 \nabla 和二阶张量 D2f\mathcal{D}^2 f 进行向量积得到。

可以进行递归定义

Dkf=(Dk1f) \mathcal{D}^k f = \nabla \otimes (\mathcal{D}^{k-1} f)

如果不断展开,就可以得到

Dkf=(Dk1f)=(Dk2f)=f=kf \begin{align*} \mathcal{D}^k f &= \nabla \otimes (\mathcal{D}^{k-1} f) \\ &= \nabla \otimes \nabla \otimes (\mathcal{D}^{k-2} f) \\ &\cdots \\ &= \nabla \otimes \nabla \otimes \cdots \otimes \nabla f \\ &= \nabla^{\otimes k} f \end{align*}

其中 k\nabla^{\otimes k} 表示 \nabla 与自己进行张量积 kk 次。

不过实际分析时,一般最多用到二阶导数,毕竟张量表示起来还是太麻烦了。

多元函数微分的应用

代数应用:极值判别

由于一阶变化量和二阶变化量都已经得到,我们可以进一步对多元函数进行泰勒展开

f(x0+h)=f(x0)+f(x0)Th+12hTHf(x0)h+o(h2) f(\mathbf{x}_0+\mathbf{h}) = f(\mathbf{x}_0) + \nabla f(\mathbf{x}_0)^T \mathbf{h} + \frac{1}{2} \mathbf{h}^T \mathbf{H}_f(\mathbf{x}_0) \mathbf{h} + o(\|\mathbf{h}\|^2)

忽略掉高次项后,函数 ffx0\mathbf{x}_0 附近的性质完全由线性项和二次项主导。

如果 x0\mathbf{x}_0 是驻点,即 f(x0)=0\nabla f(\mathbf{x}_0)=\mathbf{0},那么上式可被简化为

f(x0+h)f(x0)=12hTHf(x0)h+o(h2) f(\mathbf{x}_0+\mathbf{h}) - f(\mathbf{x}_0) = \frac{1}{2} \mathbf{h}^T \mathbf{H}_f(\mathbf{x}_0) \mathbf{h} + o(\|\mathbf{h}\|^2)

此时增量 Δf=f(x0+h)f(x0)\Delta f = f(\mathbf{x}_0+\mathbf{h}) - f(\mathbf{x}_0) 的符号由二次型 Q(h)=hTHf(x0)h\mathcal{Q}(\mathbf{h}) =\mathbf{h}^T \mathbf{H}_f(\mathbf{x}_0) \mathbf{h} 决定。

A=Hf(x0)\mathbf{A} = \mathbf{H}_f(\mathbf{x}_0)。当 A\mathbf{A}实对称矩阵时,可以正交对角化为

A=QΛQT \mathbf{A} = \mathbf{Q} \boldsymbol{\Lambda} \mathbf{Q}^T

其中

Q=[q1q2qn] \mathbf{Q} = \begin{bmatrix} \mathbf{q}_1 & \mathbf{q}_2 & \cdots & \mathbf{q}_n \end{bmatrix}

是正交矩阵。每列 qi\mathbf{q}_i 为标准正交的特征向量,且满足 QT=Q1\mathbf{Q}^T = \mathbf{Q}^{-1}。而

Λ=[λ1000λ2000λn] \boldsymbol{\Lambda} = \begin{bmatrix} \lambda_1 & 0 & \cdots & 0 \\ 0 & \lambda_2 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & \lambda_n \\ \end{bmatrix}

是对角矩阵,主对角线上的每个元素 λi\lambda_i 均为实数特征值。

进一步用谱分解将 A\mathbf{A} 展开为秩一矩阵之和

A=QΛQT=[q1q2qn][λ1000λ2000λn][q1Tq2TqnT]=i=1nλiqiqiT \begin{align*} \mathbf{A} &= \mathbf{Q} \boldsymbol{\Lambda} \mathbf{Q}^T \\ &= \begin{bmatrix} \mathbf{q}_1 & \mathbf{q}_2 & \cdots & \mathbf{q}_n \end{bmatrix} \begin{bmatrix} \lambda_1 & 0 & \cdots & 0 \\ 0 & \lambda_2 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & \lambda_n \\ \end{bmatrix} \begin{bmatrix} \mathbf{q}_1^T \\ \mathbf{q}_2^T \\ \vdots \\ \mathbf{q}_n^T \end{bmatrix} \\ &= \sum_{i=1}^{n} \lambda_i\mathbf{q}_i\mathbf{q}_i^T \end{align*}

于是二次型变为

Q(h)=hTAh=hT(i=1nλiqiqiT)h=i=1nλihTqiqiTh=i=1nλi(hqi)2 \begin{align*} \mathcal{Q}(\mathbf{h}) &= \mathbf{h}^T \mathbf{A} \mathbf{h} \\ &= \mathbf{h}^T \left(\sum_{i=1}^{n} \lambda_i\mathbf{q}_i\mathbf{q}_i^T\right) \mathbf{h}\\ &= \sum_{i=1}^{n} \lambda_i \mathbf{h}^T\mathbf{q}_i\mathbf{q}_i^T\mathbf{h} \\ &= \sum_{i=1}^{n} \lambda_i (\mathbf{h} \cdot \mathbf{q}_i)^2 \end{align*}

显然 (hqi)2(\mathbf{h} \cdot \mathbf{q}_i)^2 非负。

因此,在驻点处,极值类型由海森矩阵各特征值的符号决定

  • 若所有 λi>0\lambda_i > 0,则海森矩阵正定。对任意非零 h\mathbf{h}Q(h)>0Q(\mathbf{h}) > 0,从而 f(x0+h)f(x0)>0f(\mathbf{x}_0 + \mathbf{h}) - f(\mathbf{x}_0) > 0。此时称 x0\mathbf{x}_0局部极小点
  • 若所有 λi<0\lambda_i < 0,则海森矩阵负定。对任意非零 h\mathbf{h}Q(h)<0Q(\mathbf{h}) < 0,从而 f(x0+h)f(x0)<0f(\mathbf{x}_0 + \mathbf{h}) - f(\mathbf{x}_0) < 0。此时称 x0\mathbf{x}_0局部极大点
  • 若特征值有正有负,则海森矩阵不定,则存在一些 h\mathbf{h} 使 Q>0Q>0,另一些 h\mathbf{h} 使 Q<0Q<0,于是 ffx0\mathbf{x}_0 处沿不同方向既可能上升也可能下降。此时称 x0\mathbf{x}_0鞍点
  • 若所有非零特征值同号且存在零特征值,则海森矩阵半正定或半负定。此时极值判定还需要看更高阶的项

几何应用:曲率

二次型 hTHf(x0)h\mathbf{h}^T \mathbf{H}_f(\mathbf{x}_0) \mathbf{h} 除了可以判别驻点的类型外,还有重要的几何意义——它可以描述截面曲线在 x0\mathbf{x}_0 附近沿不同方向的曲率。

取一点 x0\mathbf{x}_0 和一个单位方向向量 vRn\mathbf{v}\in\mathbb{R}^n,考虑经过 x0\mathbf{x}_0 且方向为 v\mathbf{v} 的参数化直线

l(t)=x0+tvtR \vec{l}(t) = \mathbf{x}_0 + t\mathbf{v} \quad t\in\mathbb{R}

ff 的自变量限制在这条直线上,得到一元函数

g(t)=f(x0+tv) g(t) = f(\mathbf{x}_0 + t\mathbf{v})

g(t)g(t) 的图形是在点 x0\mathbf{x}_0 处用过 v\mathbf{v} 的平面截取出的曲线。对 g(t)g(t) 求导得到

dgdt=f(x0+tv)Tv \frac{\mathrm{d}g}{\mathrm{d}t} =\nabla f(\mathbf{x}_0 + t \mathbf{v})^T \mathbf{v}

二阶导为

d2gdt2=vTHf(x0+tv)v \frac{\mathrm{d}^2g}{\mathrm{d}t^2} = \mathbf{v}^T \mathbf{H}_f(\mathbf{x}_0 + t \mathbf{v}) \mathbf{v}

于是在 t=0t=0

g(0)=f(x0)Tvg(0)=vTHf(x0)v \begin{align*} g'(0) &= \nabla f(\mathbf{x}_0)^T \mathbf{v} \\ g''(0) &= \mathbf{v}^T \mathbf{H}_f(\mathbf{x}_0) \mathbf{v} \end{align*}

根据平面曲线上曲率的定义,点 x0\mathbf{x}_0 处的有向曲率为

κv=g(0)[1+g(0)2]3/2 \kappa_{\mathbf{v}} = \frac{g''(0)}{\left[1+g'(0)^2\right]^{3/2}}

在驻点处,即 f(x0)=0\nabla f(\mathbf{x}_0)=\mathbf{0} 从而 g(0)=0g'(0)=0 时,有向曲率的表达式可以大幅简化为

κv=g(0)=vTHf(x0)v \kappa_{\mathbf{v}} = g''(0) = \mathbf{v}^T \mathbf{H}_f(\mathbf{x}_0) \mathbf{v}

此时曲率也由二次型 Q(v)=vTHf(x0)v\mathcal{Q}(\mathbf{v}) =\mathbf{v}^T \mathbf{H}_f(\mathbf{x}_0) \mathbf{v} 决定。

A=Hf(x0)\mathbf{A} = \mathbf{H}_f(\mathbf{x}_0),复用之前谱分解的结果

A=i=1nλiqiqiT \mathbf{A} = \sum_{i=1}^{n} \lambda_i\mathbf{q}_i\mathbf{q}_i^T

对于任意方向 v\mathbf{v},代入可得

vTAv=i=1nλi(vqi)2 \mathbf{v}^T \mathbf{A} \mathbf{v} = \sum_{i=1}^{n} \lambda_i (\mathbf{v} \cdot \mathbf{q}_i)^2

由正交性可知

qjTAqj=i=1nλi(qjqi)2=λj(qjTqj)2=λj \mathbf{q}_j^T \mathbf{A} \mathbf{q}_j = \sum_{i=1}^{n} \lambda_i (\mathbf{q}_j \cdot \mathbf{q}_i)^2 = \lambda_j(\mathbf{q}_j^T \mathbf{q}_j)^2 = \lambda_j

因此沿着特征向量 qi\mathbf{q}_i 的有向截面曲率,就是对应的特征值 λi\lambda_i。而 v\mathbf{v} 上的曲率是投影到各特征方向 qi\mathbf{q}_i 上的曲率之和。

不过截面曲率只考虑一个方向的曲率,但有一些曲率是综合考虑了所有方向的——比如高斯曲率

n=2n=2 时,函数 f:R2Rf: \mathbb{R}^2 \to \mathbb{R} 的图像是一个曲面,过 x0\mathbf{x}_0 的每个方向都有一条曲线。若用正负号表示弯曲的方向,用绝对值大小表示弯曲的程度,那么就得到了有向法曲率。有向法曲率的最大值和最小值被称为主曲率 k1,k2k_1, k_2,而其方向被叫做主方向。高斯曲率就定义为主曲率的乘积

K=k1k2 K = k_1 k_2

可以证明,在驻点处,高斯曲率恰好等于海森矩阵的行列式。

计算驻点 x0\mathbf{x}_0 处沿方向 u\mathbf{u} 的有向法曲率

κu=uTHf(x0)u \kappa_{\mathbf{u}} = \mathbf{u}^T \mathbf{H}_f(\mathbf{x}_0) \mathbf{u}

根据瑞利商的性质,能取到这个二次型极值的单位向量,恰好就是海森矩阵 Hf\mathbf{H}_f 的两个特征向量 q1,q2\mathbf{q}_1, \mathbf{q}_2。我们可以验证一下这个结论。

设单位向量为

u=[cos(θ)sin(θ)] \mathbf{u} = \begin{bmatrix} \cos(\theta) \\ \sin(\theta) \end{bmatrix}

把海森矩阵简写为

Hf(x0)=[fxxfxyfxyfyy] \mathbf{H}_f(\mathbf{x}_0) = \begin{bmatrix} f_{xx} & f_{xy} \\ f_{xy} & f_{yy} \end{bmatrix}

于是

κu(θ)=[cos(θ)sin(θ)][fxxfxyfxyfyy][cos(θ)sin(θ)]=fxxcos2(θ)+2fxycos(θ)sin(θ)+fyysin2(θ) \begin{align*} \kappa_{\mathbf{u}}(\theta) &= \begin{bmatrix} \cos(\theta) & \sin(\theta) \end{bmatrix} \begin{bmatrix} f_{xx} & f_{xy} \\ f_{xy} & f_{yy} \end{bmatrix} \begin{bmatrix} \cos(\theta) \\ \sin(\theta) \end{bmatrix} \\ &= f_{xx}\cos^2(\theta) + 2f_{xy}\cos(\theta)\sin(\theta) + f_{yy}\sin^2(\theta) \end{align*}

θ\theta 求导

dκudθ=(2fxx+2fyy)sinθcosθ+2fxy(cos2θsin2θ) \frac{\mathrm{d}\kappa_{\mathbf{u}}}{\mathrm{d}\theta} = (-2f_{xx} +2f_{yy})\sin\theta\cos\theta + 2f_{xy}(\cos^2\theta - \sin^2\theta)

令导数为 00,得到

(fxxfyy)sinθcosθ=fxy(cos2θsin2θ) (f_{xx} - f_{yy})\sin\theta\cos\theta = f_{xy}(\cos^2\theta - \sin^2\theta)

而若 u\mathbf{u}H\mathbf{H} 的特征向量,则根据定义有

Hu=λu \mathbf{H}\mathbf{u} = \lambda\mathbf{u}

这得到两个方程

{fxxcosθ+fxysinθ=λcosθfxycosθ+fyysinθ=λsinθ \begin{cases} f_{xx}\cos\theta + f_{xy}\sin\theta = \lambda \cos\theta \\ f_{xy}\cos\theta + f_{yy}\sin\theta = \lambda \sin\theta \end{cases}

消去 λ\lambda 得到

(fxxfyy)cosθsinθ=fxy(cos2θsin2θ) (f_{xx} - f_{yy})\cos\theta\sin\theta = f_{xy}(\cos^2\theta - \sin^2\theta)

这和之前令导数为 00 得到的方程一模一样,于是两个方程有相同的解——这便证明了主方向恰好就是特征向量的方向。而特征向量方向的曲率为 λ1,λ2\lambda_1, \lambda_2,继而得到

K=k1k2=λ1λ2=detHf(x0) K = k_1 k_2 = \lambda_1 \lambda_2 = \det\mathbf{H}_f(\mathbf{x}_0)

因此,在曲面的驻点处,高斯曲率的符号由海森矩阵的行列式决定

  • detHf>0\det\mathbf{H}_f > 0,则高斯曲率为正。该点为椭圆点。由于只有两个特征值,因此 λ1,λ2\lambda_1, \lambda_2 必然同号。若两个主曲率同正,则该点为局部极小点;若两个主曲率同负,则该点为局部极大点
  • detHf<0\det\mathbf{H}_f < 0,则高斯曲率为负。该点为双曲点,也可以叫鞍点
  • detHf=0\det\mathbf{H}_f = 0,则高斯曲率为零。若一个主曲率为零,另一个非零,则该点为抛物点;若两个主曲率都为零,则该点是退化的情形。