注 数学系列为本人的学习笔记,水平有限,如有错误希望读者不吝指正。
拉格朗日乘子法(Lagrange Multiplier Method)是求解最优化问题的一个方法,在推导该方法之前,先来看几个基本概念。
梯度(gradient)
函数的梯度是由该函数的偏导数组成的向量,一元函数的梯度就是导数,函数的切线就是梯度的方向,二元函数的梯度是两个偏导数组成的向量,例如二元函数
z
=
f
(
x
,
y
)
z=f(x,y)
z=f(x,y) 可微,在点
P
o
P_o
Po 处存在偏导数
f
x
′
,
f
y
′
f'_x, f'_y
fx′,fy′,则称向量
(
f
x
′
,
f
y
′
)
(f'_x, f'_y)
(fx′,fy′) 为函数
z
z
z 的梯度,记为
∇
z
∇z
∇z 。梯度的几何意义是函数变化率最大的方向。一元函数导数即为函数的变化率,沿切线的方向就是变化率最大的方向。二元函数中,由两个偏导数组成的向量的方向,即为梯度方向。因为二元函数的全微分形式为
d
z
=
f
x
′
(
x
,
y
)
d
x
+
f
y
′
(
x
,
y
)
d
y
dz = f'_x(x,y)dx + f'_y(x,y)dy
dz=fx′(x,y)dx+fy′(x,y)dy则二元函数梯度为
∇
z
=
(
f
x
′
(
x
,
y
)
,
f
y
′
(
x
,
y
)
)
\nabla z = (f'_x(x,y), f'_y(x,y))
∇z=(fx′(x,y),fy′(x,y)) 观察
d
z
dz
dz 的形式,我们发现
d
z
dz
dz 可记为
∇
z
\nabla z
∇z 与
(
d
x
,
d
y
)
(dx, dy)
(dx,dy) 的内积,即
∇
z
⋅
(
d
x
,
d
y
)
=
(
f
x
′
(
x
,
y
)
,
f
y
′
(
x
,
y
)
)
⋅
(
d
x
,
d
y
)
=
f
x
′
(
x
,
y
)
d
x
+
f
y
′
(
x
,
y
)
d
y
\nabla z \cdot (dx,dy) = (f'_x(x,y), f'_y(x,y)) \cdot (dx,dy) = f'_x(x,y)dx + f'_y(x,y)dy
∇z⋅(dx,dy)=(fx′(x,y),fy′(x,y))⋅(dx,dy)=fx′(x,y)dx+fy′(x,y)dy 微分就是近似计算
Δ
z
=
f
x
′
(
x
,
y
)
d
x
+
f
y
′
(
x
,
y
)
d
y
=
∇
z
⋅
(
Δ
x
,
Δ
y
)
\Delta z = f'_x(x,y)dx + f'_y(x,y)dy = \nabla z \cdot (\Delta x, \Delta y)
Δz=fx′(x,y)dx+fy′(x,y)dy=∇z⋅(Δx,Δy)
我们知道两个向量内积的几何意义是两向量模长相乘再乘以这两个向量的夹角的余弦,即设
a
、
b
{\bf a 、b}
a、b 为两向量,其夹角为
θ
\theta
θ,则
a
⋅
b
=
∣
∣
a
∣
∣
⋅
∣
∣
b
∣
∣
⋅
cos
θ
{\bf a \cdot b} = ||{\bf a}|| \cdot||{\bf b}|| \cdot \cos \theta
a⋅b=∣∣a∣∣⋅∣∣b∣∣⋅cosθ 我们记向量
∇
z
∇z
∇z 和向量
(
Δ
x
,
Δ
y
)
(\Delta x, \Delta y)
(Δx,Δy) 之间的夹角
∠
\angle
∠ 为
α
\alpha
α,则
Δ
z
=
∇
z
⋅
(
Δ
x
,
Δ
y
)
=
∣
∣
∇
z
∣
∣
⋅
∣
∣
(
Δ
x
,
Δ
y
)
∣
∣
⋅
cos
α
\Delta z =\nabla z \cdot (\Delta x, \Delta y) = ||\nabla z|| \cdot ||(\Delta x, \Delta y)|| \cdot \cos \alpha
Δz=∇z⋅(Δx,Δy)=∣∣∇z∣∣⋅∣∣(Δx,Δy)∣∣⋅cosα 当固定
∇
z
\nabla z
∇z、
Δ
x
\Delta x
Δx 和
Δ
y
\Delta y
Δy 后,
∠
α
=
0
\angle \alpha = 0
∠α=0 时,
Δ
z
\Delta z
Δz 最大,因此函数
z
z
z 变化率最大的方向与
(
Δ
x
,
Δ
y
)
(\Delta x, \Delta y)
(Δx,Δy) 也就是其梯度的方向是一致的。当函数更多元时,可以证明梯度仍然是函数变化率最大的方向。
黑塞矩阵(Hessian Matrix)
是一个多元函数的二阶偏导数构成的矩阵,描述了该函数的局部曲率。黑塞矩阵最早于19世纪由德国数学家Ludwig Otto Hesse提出,并以其名字命名。该矩阵在判定多元函数极值方面有非常重要的应用。
在工程实际问题的优化设计中,目标函数往往非常复杂,为了使问题简化,往往将目标函数在某点邻域内展开成泰勒多项式来逼近原函数。
二元函数黑塞矩阵
我们知道,若一元函数
f
(
x
)
f(x)
f(x) 在包含
x
=
x
(
0
)
x=x^{(0)}
x=x(0) 点的某个闭区间
[
a
,
b
]
[a,b]
[a,b] 内有
n
n
n 阶导数,并且在开区间
(
a
,
b
)
(a,b)
(a,b) 上有
n
+
1
n + 1
n+1 阶导数,则对闭区间
[
a
,
b
]
[a,b]
[a,b] 上任意一点
x
x
x,则
f
(
x
)
f(x)
f(x) 在
x
(
0
)
x^{(0)}
x(0) 处有泰勒展开式
f
(
x
)
=
f
(
x
(
0
)
)
0
!
+
f
′
(
x
(
0
)
)
1
!
(
x
−
x
(
0
)
)
+
f
′
′
(
x
(
0
)
)
2
!
(
x
−
x
(
0
)
)
+
⋯
+
f
(
n
)
(
x
(
0
)
)
n
!
(
x
−
x
(
0
)
)
n
+
R
n
(
x
)
f(x) = \frac{f(x^{(0)})}{0!} + \frac{f'(x^{(0)})}{1!}(x-x^{(0)}) + \frac{f''(x^{(0)})}{2!}(x - x^{(0)}) + \cdots + \frac{f^{(n)}(x^{(0)})}{n!}(x - x^{(0)})^n + R_n(x)
f(x)=0!f(x(0))+1!f′(x(0))(x−x(0))+2!f′′(x(0))(x−x(0))+⋯+n!f(n)(x(0))(x−x(0))n+Rn(x) 其中,
f
(
n
)
(
x
)
f^{(n)}(x)
f(n)(x) 为
f
(
x
)
f(x)
f(x) 的
n
n
n 阶导数,
R
n
(
x
)
R_n(x)
Rn(x) 是泰勒展开式的余项,是
(
x
−
x
(
0
)
)
n
+
1
(x - x^{(0)})^{n+1}
(x−x(0))n+1 的高阶无穷小。
类似一元函数,若二元函数
f
(
x
1
,
x
2
)
f(x_1,x_2)
f(x1,x2) 在点
(
x
1
(
0
)
,
x
2
(
0
)
)
(x^{(0)}_1, x^{(0)}_2)
(x1(0),x2(0)) 的某个邻域内有
n
+
1
n + 1
n+1 阶连续偏导数,令
(
x
1
(
1
)
,
x
2
(
1
)
)
(x^{(1)}_1, x^{(1)}_2)
(x1(1),x2(1)) 为该邻域内任意一点,令
Δ
x
1
=
x
1
(
1
)
−
x
1
(
0
)
,
Δ
x
2
=
x
2
(
1
)
−
x
2
(
0
)
\Delta x_1 = x^{(1)}_1-x^{(0)}_1, \quad \Delta x_2 = x^{(1)}_2-x^{(0)}_2
Δx1=x1(1)−x1(0),Δx2=x2(1)−x2(0) 令
∂
f
∂
x
1
∣
X
(
0
)
为
∂
f
(
x
1
,
x
2
)
∂
x
1
∣
(
x
1
(
0
)
,
x
2
(
0
)
)
的
简
写
形
式
\left.\frac{\partial f}{\partial x_1}\right|_{X^{(0)}} \ 为 \ \left.\frac{\partial f(x_1,x_2)}{\partial x_1}\right|_{(x^{(0)}_1, x^{(0)}_2)} \ 的简写形式
∂x1∂f∣∣∣∣X(0) 为 ∂x1∂f(x1,x2)∣∣∣∣(x1(0),x2(0)) 的简写形式
则
f
(
x
1
,
x
2
)
f(x_1, x_2)
f(x1,x2) 在点
(
x
1
(
1
)
,
x
2
(
1
)
)
(x^{(1)}_1, x^{(1)}_2)
(x1(1),x2(1)) 处有泰勒展开式
f
(
x
1
,
x
2
)
=
f
(
x
1
(
0
)
,
x
2
(
0
)
)
+
1
1
!
∂
f
∂
x
1
∣
X
(
0
)
⋅
Δ
x
1
+
1
1
!
∂
f
∂
x
2
∣
X
(
0
)
⋅
Δ
x
2
+
1
2
!
[
∂
2
f
∂
x
1
2
∣
X
(
0
)
⋅
Δ
x
1
2
+
2
∂
2
f
∂
x
1
∂
x
2
∣
X
(
0
)
⋅
Δ
x
1
Δ
x
2
+
∂
2
f
∂
x
2
2
∣
X
(
0
)
⋅
Δ
x
2
2
]
+
⋯
+
1
n
!
[
∑
p
=
0
n
(
n
p
)
Δ
x
1
p
Δ
x
2
n
−
p
⋅
∂
n
f
∂
x
1
p
∂
x
2
n
−
p
∣
X
(
0
)
]
+
R
n
(
x
)
\begin{aligned} f(x_1, x_2) & = f(x^{(0)}_1, x^{(0)}_2) \\ & + \frac{1}{1!} \left.\frac{\partial f}{\partial x_1}\right|_{X^{(0)}} \cdot \Delta x_1 + \frac{1}{1!} \left.\frac{\partial f}{\partial x_2}\right|_{X^{(0)}} \cdot \Delta x_2 \\ & + \frac{1}{2!} \left[ \left.\frac{\partial^2 f}{\partial x^2_1}\right|_{X^{(0)}} \cdot \Delta x^2_1 + 2 \left.\frac{\partial^2 f}{\partial x_1 \partial x_2}\right|_{X^{(0)}} \cdot \Delta x_1 \Delta x_2 + \left.\frac{\partial^2 f}{\partial x^2_2}\right|_{X^{(0)}} \cdot \Delta x^2_2 \right] \\ & + \cdots \\ & + \frac{1}{n!} \left[ \sum^n_{p=0} {n \choose p} \Delta x^p_1 \Delta x^{n-p}_2 \cdot \left.\frac{\partial^n f}{\partial x^p_1 \partial x^{n-p}_2}\right|_{X^{(0)}} \right] \\ & + R_n(x) \end{aligned}
f(x1,x2)=f(x1(0),x2(0))+1!1∂x1∂f∣∣∣∣X(0)⋅Δx1+1!1∂x2∂f∣∣∣∣X(0)⋅Δx2+2!1[∂x12∂2f∣∣∣∣X(0)⋅Δx12+2∂x1∂x2∂2f∣∣∣∣X(0)⋅Δx1Δx2+∂x22∂2f∣∣∣∣X(0)⋅Δx22]+⋯+n!1[p=0∑n(pn)Δx1pΔx2n−p⋅∂x1p∂x2n−p∂nf∣∣∣∣X(0)]+Rn(x) 其中,
R
n
(
x
)
R_n(x)
Rn(x) 是泰勒展开式的余项,是
(
Δ
x
1
+
Δ
x
2
)
n
+
1
(\Delta x_1 + \Delta x_2)^{n+1}
(Δx1+Δx2)n+1 的高阶无穷小。
我们将上述二元函数泰勒展开式写成矩阵相乘的形式,令
X
=
(
x
1
,
x
2
)
X=(x_1, x_2)
X=(x1,x2),则泰勒展开式的前几项可以写为
f
(
X
)
=
f
(
X
(
0
)
)
+
1
1
!
(
∂
f
∂
x
1
∣
X
(
0
)
,
∂
f
∂
x
2
∣
X
(
0
)
)
(
Δ
x
1
Δ
x
2
)
+
1
2
!
(
Δ
x
1
,
Δ
x
2
)
(
∂
2
f
∂
x
1
2
∣
X
(
0
)
∂
2
f
∂
x
1
∂
x
2
∣
X
(
0
)
∂
2
f
∂
x
1
∂
x
2
∣
X
(
0
)
∂
2
f
∂
x
2
2
∣
X
(
0
)
)
(
Δ
x
1
Δ
x
2
)
+
⋯
\begin{aligned} f(X) & = f(X^{(0)}) \\ & + \frac{1}{1!} (\left.\frac{\partial f}{\partial x_1}\right|_{X^{(0)}} , \left.\frac{\partial f}{\partial x_2}\right|_{X^{(0)}}) \begin{pmatrix} \Delta x_1 \\[2ex] \Delta x_2 \end{pmatrix} \\ & + \frac{1}{2!} (\Delta x_1, \Delta x_2) \begin{pmatrix} \left.\dfrac{\partial^2 f}{\partial x^2_1}\right|_{X^{(0)}} & \left.\dfrac{\partial^2 f}{\partial x_1 \partial x_2}\right|_{X^{(0)}} \\[4ex] \left.\dfrac{\partial^2 f}{\partial x_1 \partial x_2}\right|_{X^{(0)}} & \left.\dfrac{\partial^2 f}{\partial x^2_2}\right|_{X^{(0)}} \end{pmatrix} \begin{pmatrix} \Delta x_1 \\[2ex] \Delta x_2 \end{pmatrix} \\ & + \cdots \end{aligned}
f(X)=f(X(0))+1!1(∂x1∂f∣∣∣∣X(0),∂x2∂f∣∣∣∣X(0))(Δx1Δx2)+2!1(Δx1,Δx2)⎝⎜⎜⎜⎜⎛∂x12∂2f∣∣∣∣X(0)∂x1∂x2∂2f∣∣∣∣X(0)∂x1∂x2∂2f∣∣∣∣X(0)∂x22∂2f∣∣∣∣X(0)⎠⎟⎟⎟⎟⎞(Δx1Δx2)+⋯ 方阵
(
∂
2
f
∂
x
1
2
∣
X
(
0
)
∂
2
f
∂
x
1
∂
x
2
∣
X
(
0
)
∂
2
f
∂
x
1
∂
x
2
∣
X
(
0
)
∂
2
f
∂
x
2
2
∣
X
(
0
)
)
\begin{pmatrix} \left.\dfrac{\partial^2 f}{\partial x^2_1}\right|_{X^{(0)}} & \left.\dfrac{\partial^2 f}{\partial x_1 \partial x_2}\right|_{X^{(0)}} \\[4ex] \left.\dfrac{\partial^2 f}{\partial x_1 \partial x_2}\right|_{X^{(0)}} & \left.\dfrac{\partial^2 f}{\partial x^2_2}\right|_{X^{(0)}} \end{pmatrix}
⎝⎜⎜⎜⎜⎛∂x12∂2f∣∣∣∣X(0)∂x1∂x2∂2f∣∣∣∣X(0)∂x1∂x2∂2f∣∣∣∣X(0)∂x22∂2f∣∣∣∣X(0)⎠⎟⎟⎟⎟⎞
是函数
f
(
x
1
,
x
2
)
f(x_1, x_2)
f(x1,x2) 在
(
x
1
(
0
)
,
x
2
(
0
)
)
(x^{(0)}_1, x^{(0)}_2)
(x1(0),x2(0)) 处的二阶偏导数矩阵,也即该函数的黑塞矩阵。
多元函数的黑塞矩阵
前述二元函数泰勒展开式的矩阵形式中,我们令
Δ
X
=
(
Δ
x
1
Δ
x
2
)
∇
f
(
X
(
0
)
)
=
(
∂
f
∂
x
1
∣
X
(
0
)
∂
f
∂
x
2
∣
X
(
0
)
)
∇
2
f
(
X
(
0
)
)
=
(
∂
2
f
∂
x
1
2
∣
X
(
0
)
∂
2
f
∂
x
1
∂
x
2
∣
X
(
0
)
∂
2
f
∂
x
1
∂
x
2
∣
X
(
0
)
∂
2
f
∂
x
2
2
∣
X
(
0
)
)
\begin{aligned} \Delta X & = \begin{pmatrix} \Delta x_1 \\[2ex] \Delta x_2 \end{pmatrix} \\[3ex] \nabla f(X^{(0)}) & = \begin{pmatrix} \left.\dfrac{\partial f}{\partial x_1}\right|_{X^{(0)}} \\[4ex] \left.\dfrac{\partial f}{\partial x_2}\right|_{X^{(0)}} \end{pmatrix} \\[7ex] \nabla^2f(X^{(0)}) & = \begin{pmatrix} \left.\dfrac{\partial^2 f}{\partial x^2_1}\right|_{X^{(0)}} & \left.\dfrac{\partial^2 f}{\partial x_1 \partial x_2}\right|_{X^{(0)}} \\[4ex] \left.\dfrac{\partial^2 f}{\partial x_1 \partial x_2}\right|_{X^{(0)}} & \left.\dfrac{\partial^2 f}{\partial x^2_2}\right|_{X^{(0)}} \end{pmatrix} \end{aligned}
ΔX∇f(X(0))∇2f(X(0))=(Δx1Δx2)=⎝⎜⎜⎜⎜⎛∂x1∂f∣∣∣∣X(0)∂x2∂f∣∣∣∣X(0)⎠⎟⎟⎟⎟⎞=⎝⎜⎜⎜⎜⎛∂x12∂2f∣∣∣∣X(0)∂x1∂x2∂2f∣∣∣∣X(0)∂x1∂x2∂2f∣∣∣∣X(0)∂x22∂2f∣∣∣∣X(0)⎠⎟⎟⎟⎟⎞ 则泰勒展开式前几项可以写为
f
(
X
)
=
f
(
X
(
0
)
)
+
1
1
!
(
∇
f
(
X
(
0
)
)
)
T
Δ
X
+
1
2
!
Δ
X
T
(
∇
2
f
(
X
(
0
)
)
)
Δ
X
+
⋯
f(X) = f(X^{(0)}) + \frac{1}{1!} (\nabla f(X^{(0)}))^T \Delta X + \frac{1}{2!} \Delta X^T (\nabla^2f(X^{(0)})) \Delta X + \cdots
f(X)=f(X(0))+1!1(∇f(X(0)))TΔX+2!1ΔXT(∇2f(X(0)))ΔX+⋯ 现在将其推广到多元函数中,令
Δ
X
=
(
Δ
x
1
Δ
x
2
⋮
Δ
x
n
)
∇
f
(
X
(
0
)
)
=
(
∂
f
∂
x
1
∣
X
(
0
)
∂
f
∂
x
2
∣
X
(
0
)
⋮
∂
f
∂
x
n
∣
X
(
0
)
)
∇
2
f
(
X
(
0
)
)
=
(
∂
2
f
∂
x
1
2
∣
X
(
0
)
∂
2
f
∂
x
1
∂
x
2
∣
X
(
0
)
⋯
∂
2
f
∂
x
1
∂
x
n
∣
X
(
0
)
∂
2
f
∂
x
2
∂
x
1
∣
X
(
0
)
∂
2
f
∂
2
x
2
∣
X
(
0
)
⋯
∂
2
f
∂
x
2
∂
x
n
∣
X
(
0
)
⋮
⋮
⋱
⋮
∂
2
f
∂
x
n
∂
x
1
∣
X
(
0
)
∂
2
f
∂
x
n
∂
x
2
∣
X
(
0
)
⋯
∂
2
f
∂
2
x
n
∣
X
(
0
)
)
\begin{aligned} \Delta X & = \begin{pmatrix} \Delta x_1 \\[2ex] \Delta x_2 \\[2ex] \vdots \\[2ex] \Delta x_n \end{pmatrix} \\[9ex] \nabla f(X^{(0)}) & = \begin{pmatrix} \left.\dfrac{\partial f}{\partial x_1}\right|_{X^{(0)}} \\ \left.\dfrac{\partial f}{\partial x_2}\right|_{X^{(0)}} \\ \vdots \\[1ex] \left.\dfrac{\partial f}{\partial x_n}\right|_{X^{(0)}}\end{pmatrix} \\[12ex] \nabla^2f(X^{(0)}) & = \begin{pmatrix} \left.\dfrac{\partial^2 f}{\partial x^2_1}\right|_{X^{(0)}} & \left.\dfrac{\partial^2 f}{\partial x_1 \partial x_2}\right|_{X^{(0)}} & \cdots & \left.\dfrac{\partial^2 f}{\partial x_1 \partial x_n}\right|_{X^{(0)}} \\[4ex] \left.\dfrac{\partial^2 f}{\partial x_2 \partial x_1}\right|_{X^{(0)}} & \left.\dfrac{\partial^2 f}{\partial^2 x_2}\right|_{X^{(0)}} & \cdots & \left.\dfrac{\partial^2 f}{\partial x_2 \partial x_n}\right|_{X^{(0)}} \\[4ex] \vdots & \vdots & \ddots & \vdots \\[4ex] \left.\dfrac{\partial^2 f}{\partial x_n \partial x_1}\right|_{X^{(0)}} & \left.\dfrac{\partial^2 f}{\partial x_n \partial x_2}\right|_{X^{(0)}} & \cdots & \left.\dfrac{\partial^2 f}{\partial^2 x_n}\right|_{X^{(0)}} \end{pmatrix} \end{aligned}
ΔX∇f(X(0))∇2f(X(0))=⎝⎜⎜⎜⎜⎜⎜⎜⎛Δx1Δx2⋮Δxn⎠⎟⎟⎟⎟⎟⎟⎟⎞=⎝⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎛∂x1∂f∣∣∣∣X(0)∂x2∂f∣∣∣∣X(0)⋮∂xn∂f∣∣∣∣X(0)⎠⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎞=⎝⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎜⎛∂x12∂2f∣∣∣∣X(0)∂x2∂x1∂2f∣∣∣∣X(0)⋮∂xn∂x1∂2f∣∣∣∣X(0)∂x1∂x2∂2f∣∣∣∣X(0)∂2x2∂2f∣∣∣∣X(0)⋮∂xn∂x2∂2f∣∣∣∣X(0)⋯⋯⋱⋯∂x1∂xn∂2f∣∣∣∣X(0)∂x2∂xn∂2f∣∣∣∣X(0)⋮∂2xn∂2f∣∣∣∣X(0)⎠⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎟⎞
则多元函数
f
(
x
1
,
x
2
,
…
,
x
n
)
f(x_1, x_2, \ldots, x_n)
f(x1,x2,…,xn) 在点
X
(
0
)
=
(
x
1
(
0
)
,
x
2
(
0
)
,
…
,
x
n
(
0
)
)
X^{(0)} = (x^{(0)}_1, x^{(0)}_2, \ldots, x^{(0)}_n)
X(0)=(x1(0),x2(0),…,xn(0)) 处的泰勒展开式也可以表示为
f
(
X
)
=
f
(
X
(
0
)
)
+
1
1
!
(
∇
f
(
X
(
0
)
)
)
T
Δ
X
+
1
2
!
Δ
X
T
(
∇
2
f
(
X
(
0
)
)
)
Δ
X
+
⋯
f(X) = f(X^{(0)}) + \frac{1}{1!} (\nabla f(X^{(0)}))^T \Delta X + \frac{1}{2!} \Delta X^T (\nabla^2f(X^{(0)})) \Delta X + \cdots
f(X)=f(X(0))+1!1(∇f(X(0)))TΔX+2!1ΔXT(∇2f(X(0)))ΔX+⋯ 我们发现,
∇
f
(
X
(
0
)
)
\nabla f(X^{(0)})
∇f(X(0)) 恰好是该多元函数在点
X
(
0
)
X^{(0)}
X(0) 处的梯度,而方阵
∇
2
f
(
X
(
0
)
)
\nabla^2f(X^{(0)})
∇2f(X(0)) 即是该多元函数在点
X
(
0
)
X^{(0)}
X(0) 处的黑塞矩阵。
思考 为什么黑塞矩阵要用二阶偏导数矩阵?梯度方向的几何意义是函数的变化率最大的方向,梯度的分量则是该函数在各个变量方向上的变化率。二阶偏导数矩阵的几何意义是函数变化率的变化率,也就是梯度的梯度,类似力学中速率的速率,也就是加速度的概念。
黑塞矩阵的应用
利用黑塞矩阵,我们可以判定多元函数的极值。
一元函数极值判断
首先还是来看一元函数的情形,费马(Fermat)定理表明,如果函数
f
(
x
)
f(x)
f(x) 的一个极值点为
x
(
0
)
x^{(0)}
x(0),并且该函数在点
x
(
0
)
x^{(0)}
x(0) 处可导,那么该函数在点
x
(
0
)
x^{(0)}
x(0) 处的导数为
0
0
0,即
f
′
(
x
(
0
)
)
=
0
f'(x^{(0)}) = 0
f′(x(0))=0 。由此我们知道
x
(
0
)
x^{(0)}
x(0) 为极值点的必要条件是函数
f
(
x
)
f(x)
f(x) 在该点的一阶导数为
0
0
0 。但
f
′
(
x
(
0
)
)
=
0
f'(x^{(0)}) = 0
f′(x(0))=0 并不是
x
(
0
)
x^{(0)}
x(0) 为极值点的充分条件,当
f
′
(
x
(
0
)
)
=
0
f'(x^{(0)}) = 0
f′(x(0))=0 时,为确定
x
(
0
)
x^{(0)}
x(0) 是否为极值点,当函数在
x
(
0
)
x^{(0)}
x(0) 处存在二阶导数时,我们还需要考察
f
(
x
)
f(x)
f(x) 的二阶导数,并且有以下判断标准
当
f
′
(
x
(
0
)
)
≠
0
时
,
x
(
0
)
不
是
极
值
点
当
f
′
(
x
(
0
)
)
=
0
且
f
′
′
(
x
)
<
0
时
,
x
(
0
)
为
极
大
值
点
当
f
′
(
x
(
0
)
)
=
0
且
f
′
′
(
x
)
>
0
时
,
x
(
0
)
为
极
小
值
点
当
f
′
(
x
(
0
)
)
=
0
且
f
′
′
(
x
)
=
0
时
,
x
(
0
)
为
鞍
点
\begin{aligned} 当 \ f'(x^{(0)}) \neq 0 \ 时,x^{(0)} 不是极值点 \\ 当 \ f'(x^{(0)}) = 0 \ 且 \ f''(x) < 0 \ 时,x^{(0)} 为极大值点 \\ 当 \ f'(x^{(0)}) = 0 \ 且 \ f''(x) > 0 \ 时,x^{(0)} 为极小值点 \\ 当 \ f'(x^{(0)}) = 0 \ 且 \ f''(x) = 0 \ 时,x^{(0)} 为鞍点 \ \ \ \ \ \ \ \ \\ \end{aligned}
当 f′(x(0))=0 时,x(0)不是极值点当 f′(x(0))=0 且 f′′(x)<0 时,x(0)为极大值点当 f′(x(0))=0 且 f′′(x)>0 时,x(0)为极小值点当 f′(x(0))=0 且 f′′(x)=0 时,x(0)为鞍点
多元函数极值判断
类似一元函数,如果多元函数
f
(
x
1
,
x
2
,
…
,
x
n
)
f(x_1, x_2, \ldots, x_n)
f(x1,x2,…,xn) 二阶连续可导,并在点
X
(
0
)
=
(
x
1
(
0
)
,
x
2
(
0
)
,
…
,
x
n
(
0
)
)
X^{(0)} = (x^{(0)}_1, x^{(0)}_2, \ldots, x^{(0)}_n)
X(0)=(x1(0),x2(0),…,xn(0)) 处梯度
∇
f
(
X
(
0
)
)
=
0
\nabla f(X^{(0)})=0
∇f(X(0))=0,我们计算该点处的二阶偏导数矩阵,即黑塞矩阵
∇
2
f
(
X
(
0
)
)
\nabla^2 f(X^{(0)})
∇2f(X(0)),并有如下判断标准
当
∇
f
(
x
(
0
)
)
≠
0
时
,
X
(
0
)
不
是
极
值
点
当
∇
f
(
x
(
0
)
)
=
0
且
∇
2
f
(
X
(
0
)
)
为
正
定
矩
阵
时
,
X
(
0
)
为
极
小
值
点
当
∇
f
(
x
(
0
)
)
=
0
且
∇
2
f
(
X
(
0
)
)
为
负
定
矩
阵
时
,
X
(
0
)
为
极
大
值
点
当
∇
f
(
x
(
0
)
)
=
0
且
∇
2
f
(
X
(
0
)
)
为
不
定
矩
阵
时
,
X
(
0
)
不
是
极
值
点
\begin{aligned} 当 \ \nabla f(x^{(0)}) \neq 0 \ 时,X^{(0)} 不是极值点 \\ 当 \ \nabla f(x^{(0)}) = 0 \ 且 \ \nabla^2 f(X^{(0)}) \ 为正定矩阵时,X^{(0)} 为极小值点 \\ 当 \ \nabla f(x^{(0)}) = 0 \ 且 \ \nabla^2 f(X^{(0)}) \ 为负定矩阵时,X^{(0)} 为极大值点 \\ 当 \ \nabla f(x^{(0)}) = 0 \ 且 \ \nabla^2 f(X^{(0)}) \ 为不定矩阵时,X^{(0)} 不是极值点 \end{aligned}
当 ∇f(x(0))=0 时,X(0)不是极值点当 ∇f(x(0))=0 且 ∇2f(X(0)) 为正定矩阵时,X(0)为极小值点当 ∇f(x(0))=0 且 ∇2f(X(0)) 为负定矩阵时,X(0)为极大值点当 ∇f(x(0))=0 且 ∇2f(X(0)) 为不定矩阵时,X(0)不是极值点
那么如何判断黑塞矩阵
∇
2
f
(
X
(
0
)
)
\nabla^2 f(X^{(0)})
∇2f(X(0)) 是正定还是负定呢?这就需要计算
∇
2
f
(
X
(
0
)
)
\nabla^2 f(X^{(0)})
∇2f(X(0)) 的特征值。
∇
2
f
(
X
(
0
)
)
\nabla^2 f(X^{(0)})
∇2f(X(0)) 为正定矩阵的充要条件是其所有特征值均大于
0
0
0,
∇
2
f
(
X
(
0
)
)
\nabla^2 f(X^{(0)})
∇2f(X(0)) 为负定矩阵的充要条件是其所有特征值均小于
0
0
0 。
当
∣
∣
Δ
X
∣
∣
||\Delta X||
∣∣ΔX∣∣ 非常小时,我们可以利多元函数在点
X
(
0
)
=
(
x
1
(
0
)
,
x
2
(
0
)
,
…
,
x
n
(
0
)
)
X^{(0)} = (x^{(0)}_1, x^{(0)}_2, \ldots, x^{(0)}_n)
X(0)=(x1(0),x2(0),…,xn(0)) 处的泰勒展开式的第一、二项来近似函数,即
f
(
X
)
≈
f
(
X
(
0
)
)
+
(
∇
f
(
X
(
0
)
)
)
T
Δ
X
f(X) \approx f(X^{(0)}) + (\nabla f(X^{(0)}))^T \Delta X
f(X)≈f(X(0))+(∇f(X(0)))TΔX 当寻找函数极小值时,需要
f
(
X
)
−
f
(
X
(
0
)
)
≈
(
∇
f
(
X
(
0
)
)
)
T
Δ
X
<
0
f(X) - f(X^{(0)}) \approx (\nabla f(X^{(0)}))^T \Delta X < 0
f(X)−f(X(0))≈(∇f(X(0)))TΔX<0 这说明,在寻找极小值时,函数自变量移动的方向,也即向量
Δ
X
\Delta X
ΔX 的方向与梯度
∇
f
(
X
(
0
)
)
\nabla f(X^{(0)})
∇f(X(0)) 的夹角大于
9
0
∘
90^\circ
90∘ 。
拉格朗日乘子法(Lagrange Multiplier Method)
拉格朗日乘子法是求解最优化问题的一个方法。 需要求解的最优化问题为:
给定定义在数域
Ω
⊂
R
n
\Omega \subset R^n
Ω⊂Rn 上的函数
f
,
g
1
,
g
2
,
…
,
g
m
f, g_1, g_2, \ldots, g_m
f,g1,g2,…,gm 和
h
1
,
h
2
,
…
,
h
l
h_1, h_2, \ldots, h_l
h1,h2,…,hl,求如下问题的最优解:
min
x
∈
Ω
f
(
x
)
s
u
b
j
e
c
t
t
o
g
i
(
x
)
≤
0
,
∀
i
a
n
d
h
j
(
x
)
=
0
,
∀
j
\min_{x \in \Omega} f(x) \quad subject \ to \quad g_i(x) \leq 0, \ \forall i \quad and \quad h_j(x) = 0, \ \forall j
x∈Ωminf(x)subject togi(x)≤0, ∀iandhj(x)=0, ∀j
可以看出,我们需要在多元函数 f f f 的变量受另外一个或多个函数限制的情况下寻找该函数的极值。
拉格朗日乘子法将一个有 N N N 个变量和 K K K 个约束的求解极值问题转换为一个有 N + K N+K N+K 个变量的方程组的极值问题,该方程组没有任何变量约束。
定理 1 令
U
⊂
R
n
U \subset {\Bbb R}^n
U⊂Rn 为一开集,并令
f
:
U
→
R
f:U \rightarrow {\Bbb R}
f:U→R,
g
:
U
→
R
g:U \rightarrow {\Bbb R}
g:U→R 为一阶可导函数,令
x
o
∈
U
{\bf x}_o \in U
xo∈U,
c
=
g
(
x
0
)
c=g({\bf x}_0)
c=g(x0),令
S
S
S 为
g
g
g 在
c
c
c 处的水平集(即等高线),假定
∇
g
(
x
0
)
≠
0
\nabla g({\bf x}_0) \neq 0
∇g(x0)=0,如果函数
f
∣
S
f|_S
f∣S 在
x
0
x_0
x0 处有局部极值,则有
λ
∈
R
\lambda \in {\Bbb R}
λ∈R 满足
∇
f
(
x
0
)
=
λ
g
(
x
0
)
\nabla f({\bf x}_0) = \lambda g({\bf x}_0)
∇f(x0)=λg(x0)
定义 1 令
U
⊂
R
n
U \subset {\Bbb R}^n
U⊂Rn 为一开集,并令
g
:
U
→
R
g:U \rightarrow {\Bbb R}
g:U→R 为一阶可导函数,令
x
0
∈
U
{\bf x_0} \in U
x0∈U,
c
=
g
(
x
0
)
c=g({\bf x_0})
c=g(x0),并且
S
S
S 为
g
g
g 在
c
c
c 处的水平集(
l
e
v
e
l
s
e
t
level \ set
level set,即等高线),如果
∇
g
(
x
0
)
≠
0
\nabla g({\bf x_0}) \neq 0
∇g(x0)=0,则我们定义
S
S
S 在
x
0
{\bf x_0}
x0 处的切空间(tangent space)为所有满足
∇
g
(
x
0
)
(
x
−
x
0
)
=
0
\nabla g({\bf x_0})({\bf x - x_0}) = 0
∇g(x0)(x−x0)=0 的向量
x
∈
R
n
{\bf x} \in {\Bbb R}^n
x∈Rn 的集合。
理论上,水平集
S
S
S 的切空间是所有与梯度
∇
g
(
x
0
)
\nabla g({\bf x_0})
∇g(x0) 正交的向量,但如果我们希望该空间真的与
S
S
S “相切”,我们需要平移这些向量,使其从点
x
0
{\bf x_0}
x0 处起始,也就是要给这些向量加上
x
0
{\bf x_0}
x0。
引理 1 令
u
,
v
∈
R
n
{\bf u, v} \in {\Bbb R}^n
u,v∈Rn 且
u
≠
0
{\bf u} \neq 0
u=0,令
T
T
T 表示所有满足
x
∈
R
n
{\bf x} \in {\Bbb R}^n
x∈Rn 且
x
⋅
u
=
0
{\bf x \cdot u} = 0
x⋅u=0 的向量
x
{\bf x}
x 的集合,如果对于所有的
x
∈
T
{\bf x} \in T
x∈T 都有
x
⋅
v
=
0
{\bf x \cdot v} = 0
x⋅v=0,则
v
=
λ
u
{\bf v} = \lambda {\bf u}
v=λu,
λ
\lambda
λ 为一标量。
证明 因为
u
≠
0
{\bf u} \neq 0
u=0,我们可以将
v
{\bf v}
v 分解为
v
1
{\bf v_1}
v1 和
v
2
{\bf v_2}
v2
v
=
v
1
+
v
2
{\bf v} = {\bf v_1} + {\bf v_2}
v=v1+v2 并要求
v
1
=
α
u
{\bf v_1} = \alpha {\bf u}
v1=αu 且
v
2
⋅
u
=
0
{\bf v_2 \cdot u} = 0
v2⋅u=0,即
v
1
{\bf v_1}
v1 为
v
{\bf v}
v 在
u
{\bf u}
u 上的投影,则
α
=
v
⋅
u
/
∣
∣
u
∣
∣
2
\alpha = {\bf v \cdot u} / ||{\bf u}||^2
α=v⋅u/∣∣u∣∣2 。这是因为
∵
v
⋅
u
=
∣
∣
v
∣
∣
∣
∣
u
∣
∣
cos
θ
∴
∣
∣
v
1
∣
∣
=
∣
∣
v
∣
∣
cos
θ
=
v
⋅
u
∣
∣
u
∣
∣
∵
α
=
∣
∣
v
1
∣
∣
∣
∣
u
∣
∣
∴
α
=
v
⋅
u
∣
∣
u
∣
∣
2
\begin{aligned} \because \quad & {\bf v \cdot u} = ||{\bf v}|| ||{\bf u}|| \cos \theta & \\ \therefore \quad & ||{\bf v_1}|| = ||{\bf v}|| \cos \theta = \frac{{\bf v \cdot u} }{||{\bf u}||} \\[4ex] \because \quad & \alpha = \frac{||{\bf v_1}||}{||{\bf u}||} \\[2ex] \therefore \quad & \alpha = \frac{{\bf v \cdot u}}{||{\bf u}||^2} \end{aligned}
∵∴∵∴v⋅u=∣∣v∣∣∣∣u∣∣cosθ∣∣v1∣∣=∣∣v∣∣cosθ=∣∣u∣∣v⋅uα=∣∣u∣∣∣∣v1∣∣α=∣∣u∣∣2v⋅u
接下来,根据我们对
v
{\bf v}
v 的假设(对于所有的
x
∈
T
{\bf x} \in T
x∈T 都有
x
⋅
v
=
0
{\bf x \cdot v} = 0
x⋅v=0),则
0 = v 2 ⋅ v = v 2 ⋅ ( v 1 + v 2 ) = v 2 ⋅ v 1 + ∣ ∣ v 2 ∣ ∣ 2 = α v 2 ⋅ u + ∣ ∣ v 2 ∣ ∣ 2 = 0 + ∣ ∣ v 2 ∣ ∣ 2 \begin{aligned} 0 & = {\bf v_2 \cdot v} \\ & = {\bf v_2 \cdot (v_1 + v_2)} \\ & = {\bf v_2 \cdot v_1} + ||{\bf v_2}||^2 \\ & = \alpha {\bf v_2 \cdot u} + ||{\bf v_2}||^2 \\ & = 0 + ||{\bf v_2}||^2 \end{aligned} 0=v2⋅v=v2⋅(v1+v2)=v2⋅v1+∣∣v2∣∣2=αv2⋅u+∣∣v2∣∣2=0+∣∣v2∣∣2 因此 v 2 = 0 {\bf v_2} = 0 v2=0, v = v 1 = α u {\bf v} = {\bf v_1} = \alpha {\bf u} v=v1=αu 得证。
定理 1 证明
令
T
T
T 为
S
S
S 在
x
0
{\bf x_0}
x0 处的切空间,我们需要证明对于任一
x
∈
T
{\bf x} \in T
x∈T,都有
∇
f
(
x
0
)
⋅
(
x
−
x
0
)
=
0
\nabla f({\bf x_0}) \cdot ({\bf x - x_0}) = 0
∇f(x0)⋅(x−x0)=0,因为
∇
g
(
x
0
)
≠
0
\nabla g({\bf x_0}) \neq 0
∇g(x0)=0,从引理 1 可得知
∇
f
(
x
0
)
=
λ
∇
g
(
x
0
)
\nabla f({\bf x_0}) = \lambda \nabla g({\bf x_0})
∇f(x0)=λ∇g(x0),
λ
\lambda
λ 为一标量。 现在假设有向量
v
{\bf v}
v,使得
∇
g
(
x
0
)
⋅
v
=
0
\nabla g({\bf x_0})\cdot{\bf v} = 0
∇g(x0)⋅v=0,并有 一阶可导函数
c
:
[
−
a
,
a
]
→
R
n
c: [-a, a] \rightarrow {\Bbb R}^n
c:[−a,a]→Rn,使得
(
1
)
c
(
t
)
∈
S
∀
t
∈
[
−
a
,
a
]
(
2
)
c
(
0
)
=
x
0
(
3
)
c
′
(
0
)
=
v
\begin{aligned} (1) \quad & c(t) \in S \quad \forall t \in [-a, a] \\ (2) \quad & c(0) = {\bf x_0} \\ (3) \quad & c'(0) = {\bf v} \end{aligned}
(1)(2)(3)c(t)∈S∀t∈[−a,a]c(0)=x0c′(0)=v 也就是说,我们沿着
S
S
S 定义一个一阶可导的函数(原文为 path,应该也是某种函数),该函数(路径)通过
S
S
S 所有的点并且在
x
0
{\bf x_0}
x0 处导数为
v
{\bf v}
v (可以想象成一个点在沿着
S
S
S 运动,通过
x
0
{\bf x_0}
x0 处时的速率为
v
{\bf v}
v)
现在我们令
x
∈
T
{\bf x} \in T
x∈T,因为
x
−
x
0
{\bf x - x_0}
x−x0 与
∇
g
(
x
0
)
\nabla g({\bf x_0})
∇g(x0) 正交,所以我们可以选择上述的函数(路径)
c
c
c ,令
h
(
t
)
=
f
(
c
(
t
)
)
h(t) = f(c(t))
h(t)=f(c(t)),因为
f
f
f 和
c
c
c 都是一阶可导的,根据微分的链式法则,
h
h
h 也可微,又因
c
(
t
)
∈
S
,
∀
t
c(t) \in S, \forall t
c(t)∈S,∀t 且
f
∣
S
f|_S
f∣S 在
x
0
{\bf x_0}
x0 处有最大或最小值,函数
h
(
t
)
h(t)
h(t) 在
t
=
0
t=0
t=0 处有最大或最小值,这样的话
0
=
d
d
t
h
(
t
)
∣
t
=
0
=
∇
f
(
c
(
0
)
)
⋅
c
′
(
0
)
=
∇
f
(
x
0
)
⋅
(
x
−
x
0
)
\begin{aligned} 0 & = \left.\frac{d}{dt}h(t)\right|_{t=0} \\[3ex] & = \nabla f(c(0)) \cdot c'(0) \\[2ex] & = \nabla f({\bf x_0}) \cdot ({\bf x - x_0}) \end{aligned}
0=dtdh(t)∣∣∣∣t=0=∇f(c(0))⋅c′(0)=∇f(x0)⋅(x−x0)
定理 2 隐函数定理
先来看一个定理 隐函数定理,设
E
E
E 是
R
n
{\Bbb R}^n
Rn 的开子集合(
n
>
1
n > 1
n>1),而
f
:
E
→
R
f:E \rightarrow {\Bbb R}
f:E→R 是连续可微函数,并且设
y
=
(
y
1
,
y
2
,
…
,
y
n
)
{\bf y} = (y_1, y_2, \ldots, y_n)
y=(y1,y2,…,yn) 是
E
E
E 中的一个点,使
f
(
y
)
=
0
,
∂
f
∂
x
n
∣
y
≠
0
f({\bf y}) = 0, \left.\frac{\partial f}{\partial x_n}\right|_{\bf y} \neq 0
f(y)=0,∂xn∂f∣∣∣y=0,那么存在
R
n
−
1
{\Bbb R}^{n-1}
Rn−1 的开子集合
U
U
U,它含有点
(
y
1
,
y
2
,
…
,
y
n
−
1
)
(y_1, y_2, \ldots, y_{n-1})
(y1,y2,…,yn−1),而且存在
E
E
E 的一个含有
y
{\bf y}
y 的开子集
V
V
V,及函数
g
:
U
→
R
g: U \rightarrow {\Bbb R}
g:U→R,使得
g
(
y
1
,
y
2
,
…
,
y
n
−
1
)
=
y
n
g(y_1, y_2, \ldots, y_{n-1}) = y_n
g(y1,y2,…,yn−1)=yn,并且
{
(
x
1
,
x
2
,
…
,
x
n
)
∈
V
:
f
(
x
1
,
x
2
,
…
x
n
)
=
0
}
=
{
(
x
1
,
x
2
,
…
,
x
n
−
1
,
g
(
x
1
,
x
2
,
…
,
x
n
−
1
)
:
(
x
1
,
x
2
,
…
,
x
n
−
1
∈
U
)
}
\{(x_1, x_2, \ldots, x_n) \in V:f(x_1, x_2, \ldots x_n) = 0\} \\ = \{(x_1, x_2, \ldots, x_{n - 1}, g(x_1, x_2, \ldots, x_{n - 1}) :(x_1, x_2, \ldots, x_{n-1} \in U)\}
{(x1,x2,…,xn)∈V:f(x1,x2,…xn)=0}={(x1,x2,…,xn−1,g(x1,x2,…,xn−1):(x1,x2,…,xn−1∈U)} 也就是说,集合
{
x
∈
V
:
f
(
x
)
=
0
}
\{x \in V: f(x) = 0 \}
{x∈V:f(x)=0} 是
U
U
U 上的函数
g
g
g 的图像,还有,
g
g
g 在
(
y
1
,
y
2
,
…
,
y
n
−
1
)
(y_1, y_2, \ldots, y_{n - 1})
(y1,y2,…,yn−1) 处可微,并且
∂
g
∂
x
j
∣
(
y
1
,
y
2
,
…
,
y
n
−
1
)
=
−
∂
f
∂
x
j
∣
y
/
∂
f
∂
x
n
∣
y
,
1
≤
j
≤
n
−
1
\left.\frac{\partial g}{\partial x_j}\right|_{(y_1, y_2, \ldots, y_{n-1})} = - \left.\frac{\partial f}{\partial x_j}\right|_{\bf y} / \left.\frac{\partial f}{\partial x_n}\right|_{\bf y} , \quad 1 \leq j \leq n - 1
∂xj∂g∣∣∣∣(y1,y2,…,yn−1)=−∂xj∂f∣∣∣∣y/∂xn∂f∣∣∣∣y,1≤j≤n−1
隐函数定理的另一种表述 令
F
:
R
n
+
1
→
R
F: {\Bbb R}^{n+1} \rightarrow {\Bbb R}
F:Rn+1→R 为一阶可导函数,令
(
x
,
z
)
({\bf x}, z)
(x,z) 表示
R
n
+
1
{\Bbb R}^{n+1}
Rn+1 中的点,其中
x
∈
R
n
{\bf x} \in {\Bbb R}^n
x∈Rn,
z
∈
R
z \in {\Bbb R}
z∈R,假设有
(
x
0
,
z
0
)
∈
R
n
+
1
({\bf x_0}, z_0) \in {\Bbb R}^{n+1}
(x0,z0)∈Rn+1 满足
F
(
x
0
,
z
0
)
=
0
a
n
d
∂
F
∂
z
(
x
0
,
z
0
)
≠
0
F({\bf x_0}, z_0) = 0 \quad and \quad \frac{\partial F}{\partial z} ({\bf x_0}, z_0) \neq 0
F(x0,z0)=0and∂z∂F(x0,z0)=0 则有球体
U
⊂
R
n
U \subset {\Bbb R}^n
U⊂Rn 包含点
x
0
{\bf x_0}
x0、开区间
V
⊂
R
V \subset {\Bbb R}
V⊂R 包含
z
0
z_0
z0 和单值函数
g
:
U
→
R
g:U \rightarrow {\Bbb R}
g:U→R,当且仅当
z
=
g
(
x
)
z=g({\bf x})
z=g(x) 时有
F
(
x
,
z
)
=
0
,
x
∈
U
,
z
∈
V
F({\bf x}, z) = 0, {\bf x} \in U, z \in V
F(x,z)=0,x∈U,z∈V 。此外,还有
g
g
g 有一阶偏微分
∂
g
∂
x
i
=
−
∂
F
/
∂
x
i
∂
F
/
∂
z
\frac{\partial g}{\partial x_i} = - \frac{\partial F/\partial x_i}{\partial F/\partial z}
∂xi∂g=−∂F/∂z∂F/∂xi 其中
i
=
1
,
2
,
…
n
i = 1, 2, \ldots n
i=1,2,…n 。
F
(
x
,
z
)
=
0
F({\bf x}, z) = 0
F(x,z)=0 隐含着
z
z
z 是
x
{\bf x}
x 的函数的意思,隐函数定理 则告诉我们在符合什么样条件的时候,
F
F
F 可以表示为
z
=
g
(
x
)
z=g({\bf x})
z=g(x),并且我们可以知道,当
F
F
F 一阶可导时
g
g
g 也一阶可导。
引理 2 令
U
⊂
R
n
U \subset {\Bbb R}^n
U⊂Rn 为一开集,并令
g
:
U
→
R
g:U \rightarrow {\Bbb R}
g:U→R 为一阶可导函数,令
x
0
∈
U
,
c
=
g
(
x
0
)
{\bf x_0} \in U, \ c = g({\bf x_0})
x0∈U, c=g(x0) 且
S
S
S 为
g
g
g 在取值为
c
c
c 时的水平集。若
∇
g
(
x
0
)
≠
0
\nabla g({\bf x_0}) \neq 0
∇g(x0)=0,当给定一向量
v
{\bf v}
v 满足
∇
g
(
x
0
)
⋅
v
=
0
\nabla g({\bf x_0}) \cdot {\bf v} = 0
∇g(x0)⋅v=0 时,存在一阶可导函数
c
:
[
−
a
,
a
]
→
R
n
{\bf c}:[-a, a] \rightarrow {\Bbb R}^n
c:[−a,a]→Rn 使得
(
1.
)
c
(
t
)
∈
S
∀
t
∈
[
−
a
,
a
]
(
2.
)
c
(
0
)
=
x
0
(
3.
)
c
′
(
0
)
=
v
\begin{aligned} (1.) \quad & {\bf c}(t) \in S \quad \forall t \in [-a, a] \\ (2.) \quad & {\bf c}(0) = {\bf x_0} \\ (3.) \quad & {\bf c}'(0) = {\bf v}\end{aligned}
(1.)(2.)(3.)c(t)∈S∀t∈[−a,a]c(0)=x0c′(0)=v
证明 因为
∇
g
(
x
0
)
≠
0
\nabla g({\bf x_0}) \neq 0
∇g(x0)=0,从而有
x
i
x_i
xi 使得
∂
g
/
∂
x
i
≠
0
\partial g / \partial x_i \neq 0
∂g/∂xi=0,为方便起见,我们设
∂
g
/
∂
x
n
(
x
0
)
≠
0
\partial g / \partial x_n(\bf x_0) \neq 0
∂g/∂xn(x0)=0,将
x
0
{\bf x_0}
x0 记为
x
0
=
(
y
1
,
y
2
,
…
,
y
n
)
{\bf x_0} = (y_1, y_2, \ldots, y_n)
x0=(y1,y2,…,yn),根据隐函数定理(令
F
=
g
a
n
d
z
=
x
n
F = g \quad and \quad z = x_n
F=gandz=xn),有球体
U
⊂
R
n
−
1
U \subset {\Bbb R}^{n - 1}
U⊂Rn−1 包含点
(
y
1
,
y
2
,
…
,
y
n
−
1
)
(y_1, y_2, \ldots, y_{n - 1})
(y1,y2,…,yn−1),有开集
V
⊂
R
V \subset {\Bbb R}
V⊂R 包含
y
n
y_n
yn,并有定义在
U
U
U 上的一阶可导函数
h
(
y
1
,
y
2
,
…
,
y
n
−
1
)
h(y_1, y_2, \ldots, y_{n - 1})
h(y1,y2,…,yn−1) 满足
g
(
x
1
,
x
2
,
…
,
x
n
−
1
,
x
n
)
=
c
当
且
仅
当
x
n
=
h
(
x
1
,
x
2
,
…
,
x
n
−
1
)
(1)
g(x_1, x_2, \ldots, x_{n-1}, x_{n}) = c \quad 当且仅当 \quad x_n = h(x_1, x_2, \ldots, x_{n - 1}) \tag{1}
g(x1,x2,…,xn−1,xn)=c当且仅当xn=h(x1,x2,…,xn−1)(1) 这就是说,在水平集
S
S
S 上的点
x
0
{\bf x_0}
x0 附近,我们可以利用
x
1
,
x
2
,
…
,
x
n
−
1
x_1, x_2, \ldots, x_{n-1}
x1,x2,…,xn−1 来表示
x
n
x_n
xn。这说明
S
S
S 可以看作某些函数在局部的图。
令
v
=
(
v
1
,
v
2
,
…
,
v
n
)
{\bf v} = (v_1, v_2, \ldots, v_n)
v=(v1,v2,…,vn) 与
∇
g
(
x
0
)
\nabla g({\bf x_0})
∇g(x0) 正交,并令
c
1
(
t
)
=
(
y
1
+
t
v
1
,
y
2
+
t
v
2
,
…
,
y
n
−
1
+
t
v
n
−
1
)
{\bf c}_1(t) = (y_1 + t v_1,y_2 + t v_2, \ldots, y_{n-1} + t v_{n-1})
c1(t)=(y1+tv1,y2+tv2,…,yn−1+tvn−1) 及
c
(
t
)
=
(
c
1
(
t
)
,
h
(
c
1
(
t
)
)
)
{\bf c}(t) = ({\bf c}_1(t), h({\bf c}_1(t)))
c(t)=(c1(t),h(c1(t))) 对于非常小的
t
t
t,
c
1
(
t
)
{\bf c}_1(t)
c1(t) 会落在
U
U
U 内,根据等式
(
1
)
(1)
(1),我们有
g
(
c
(
t
)
)
=
g
(
(
c
1
(
t
)
,
h
(
c
1
(
t
)
)
)
=
c
g({\bf c}(t)) = g(({\bf c}_1(t), h({\bf c}_1(t))) = c
g(c(t))=g((c1(t),h(c1(t)))=c 这表明当
t
t
t 很小时,
c
(
t
)
{\bf c}(t)
c(t) 整个落在水平集
S
S
S 上,这证明了引理 2 的第
(
1.
)
(1.)
(1.) 部分。
对于第
(
2.
)
(2.)
(2.) 部分,我们有
c
(
0
)
=
(
c
1
(
0
)
,
h
(
c
1
(
0
)
)
)
=
(
y
1
+
0
v
1
,
y
2
+
0
v
2
,
…
,
y
n
−
1
+
0
v
n
−
1
,
h
(
y
1
+
0
v
1
,
y
2
+
0
v
2
,
…
,
y
n
−
1
+
0
v
n
−
1
)
)
=
(
y
1
,
y
2
,
…
,
y
n
−
1
,
h
(
y
1
,
y
2
,
…
,
y
n
−
1
)
)
\begin{aligned} {\bf c}(0) & = ({\bf c}_1(0), h({\bf c}_1(0))) \\ & = (y_1 + 0v_1,y_2 + 0v_2, \ldots, y_{n-1} + 0v_{n-1}, h(y_1 + 0v_1,y_2 + 0v_2, \ldots, y_{n-1} + 0v_{n-1})) \\ & = (y_1,y_2, \ldots, y_{n-1}, h(y_1,y_2, \ldots, y_{n-1}) ) \end{aligned}
c(0)=(c1(0),h(c1(0)))=(y1+0v1,y2+0v2,…,yn−1+0vn−1,h(y1+0v1,y2+0v2,…,yn−1+0vn−1))=(y1,y2,…,yn−1,h(y1,y2,…,yn−1)) 因为
c
(
t
)
∈
S
∀
t
∈
[
−
a
,
a
]
{\bf c}(t) \in S \quad \forall t \in [-a, a]
c(t)∈S∀t∈[−a,a],所以
g
(
c
(
0
)
)
=
c
g({\bf c(0)}) = c
g(c(0))=c,又根据等式
(
1
)
(1)
(1),当
c
=
g
(
x
1
,
x
2
,
…
,
x
n
−
1
,
x
n
)
c = g(x_1, x_2, \ldots, x_{n-1}, x_{n})
c=g(x1,x2,…,xn−1,xn) 时,当且仅当
x
n
=
h
(
x
1
,
x
2
,
…
,
x
n
−
1
)
x_n = h(x_1, x_2, \ldots, x_{n - 1})
xn=h(x1,x2,…,xn−1),因此
y
n
=
h
(
y
1
,
y
2
,
…
,
y
n
−
1
)
y_n = h(y_1,y_2, \ldots, y_{n-1})
yn=h(y1,y2,…,yn−1),所以第
(
2.
)
(2.)
(2.) 部分
c
(
0
)
=
x
0
{\bf c}(0) = {\bf x_0}
c(0)=x0 得证。
根据微分链式法制,我们有
d
d
t
h
(
c
1
(
t
)
)
∣
t
=
0
=
∇
h
(
c
1
(
0
)
)
c
1
′
(
0
)
=
∇
h
(
y
1
,
y
2
,
…
,
y
n
−
1
)
⋅
(
v
1
,
v
2
,
…
,
v
n
−
1
)
=
∂
h
∂
x
1
v
1
+
∂
h
∂
x
2
v
2
+
⋯
+
∂
h
∂
x
n
−
1
v
n
−
1
\begin{aligned} \left.\frac{d }{d t} h({\bf c_1}(t))\right|_{t=0} & = \nabla h({\bf c_1}(0)) {\bf c_1}'(0) \\[2ex] & = \nabla h(y_1,y_2, \ldots, y_{n-1}) \cdot (v_1, v_2, \ldots, v_{n-1}) \\[2ex] & = \frac{\partial h}{\partial x_1} v_1 + \frac{\partial h}{\partial x_2} v_2 + \cdots + \frac{\partial h}{\partial x_{n - 1}} v_{n - 1} \end{aligned}
dtdh(c1(t))∣∣∣∣t=0=∇h(c1(0))c1′(0)=∇h(y1,y2,…,yn−1)⋅(v1,v2,…,vn−1)=∂x1∂hv1+∂x2∂hv2+⋯+∂xn−1∂hvn−1 根据 隐函数定理 ,
∂
h
∂
x
i
=
−
∂
g
/
∂
x
i
∂
g
/
∂
x
n
\frac{\partial h}{\partial x_i} = - \frac{\partial g / \partial x_i}{\partial g / \partial x_n}
∂xi∂h=−∂g/∂xn∂g/∂xi 所以
∂
h
∂
x
1
v
1
+
∂
h
∂
x
2
v
2
+
⋯
+
∂
h
∂
x
n
−
1
v
n
−
1
=
−
1
∂
g
/
∂
x
n
(
∂
g
∂
x
1
v
1
+
∂
g
∂
x
2
v
2
+
⋯
+
∂
g
∂
x
n
−
1
v
n
−
1
)
\frac{\partial h}{\partial x_1} v_1 + \frac{\partial h}{\partial x_2} v_2 + \cdots + \frac{\partial h}{\partial x_{n - 1}} v_{n - 1} = - \frac{1}{\partial g / \partial x_n} (\frac{\partial g}{\partial x_1} v_1 + \frac{\partial g}{\partial x_2} v_2 + \cdots + \frac{\partial g}{\partial x_{n - 1}} v_{n - 1} )
∂x1∂hv1+∂x2∂hv2+⋯+∂xn−1∂hvn−1=−∂g/∂xn1(∂x1∂gv1+∂x2∂gv2+⋯+∂xn−1∂gvn−1) 而因为
v
{\bf v}
v 正交于
∇
g
(
x
0
)
\nabla g({\bf x_0})
∇g(x0),所以
∂
g
∂
x
1
v
1
+
∂
g
∂
x
2
v
2
+
⋯
+
∂
g
∂
x
n
−
1
v
n
−
1
=
∇
g
(
x
0
)
⋅
v
−
∂
g
∂
x
n
v
n
=
−
∂
g
∂
x
n
v
n
\frac{\partial g}{\partial x_1} v_1 + \frac{\partial g}{\partial x_2} v_2 + \cdots + \frac{\partial g}{\partial x_{n - 1}} v_{n - 1} = \nabla g({\bf x_0}) \cdot {\bf v} - \frac{\partial g}{\partial x_n} v_n = - \frac{\partial g}{\partial x_n} v_n
∂x1∂gv1+∂x2∂gv2+⋯+∂xn−1∂gvn−1=∇g(x0)⋅v−∂xn∂gvn=−∂xn∂gvn 所以
d
d
t
h
(
c
1
(
t
)
)
∣
t
=
0
=
−
1
∂
g
/
∂
x
n
(
−
∂
g
∂
x
n
v
n
)
=
v
n
\left.\frac{d }{d t} h({\bf c_1}(t))\right|_{t=0} = - \frac{1}{\partial g / \partial x_n} (- \frac{\partial g}{\partial x_n} v_n) = v_n
dtdh(c1(t))∣∣∣∣t=0=−∂g/∂xn1(−∂xn∂gvn)=vn 所以
c
′
(
t
)
=
(
c
1
′
(
t
)
,
h
′
(
c
1
(
t
)
)
)
=
(
v
1
,
v
2
,
…
,
v
n
−
1
,
v
n
)
=
v
{\bf c}'(t) = ({\bf c}_1'(t), h'({\bf c}_1(t))) = (v_1, v_2, \ldots, v_{n-1}, v_n) = {\bf v}
c′(t)=(c1′(t),h′(c1(t)))=(v1,v2,…,vn−1,vn)=v 于是第
(
3.
)
(3.)
(3.) 部分得证。
拉格朗日函数
定义拉格朗日函数为
L
(
x
,
λ
)
=
f
(
x
)
+
λ
(
g
(
x
)
−
c
)
{\frak L}({\bf x}, \lambda) = f({\bf x}) + \lambda (g({\bf x}) - c)
L(x,λ)=f(x)+λ(g(x)−c) 将上式分别对
x
{\bf x}
x 和
λ
\lambda
λ 求导置零,就分别得到
∇
f
(
x
0
)
=
λ
g
(
x
0
)
\nabla f({\bf x}_0) = \lambda g({\bf x}_0)
∇f(x0)=λg(x0) 式和等式约束
g
(
x
)
=
c
g({\bf x})=c
g(x)=c,这样就将原约束优化问题转化为对
L
(
x
,
λ
)
{\frak L}({\bf x}, \lambda)
L(x,λ) 的无约束优化问题。
参考资料
https://zhuanlan.zhihu.com/p/29525538
https://baike.baidu.com/item/拉格朗日乘数法
https://www.zhihu.com/question/38586401
https://www.maixj.net/misc/tidu-17934
https://baike.baidu.com/item/黑塞矩阵
https://baike.baidu.com/item/泰勒公式
https://math.dartmouth.edu/archive/m14f04/public_html/math_14_lagrange.pdf
https://www.cnblogs.com/massquantity/p/10807311.html