[ML Notes] 拉格朗日函数:推导过程

1. 推导过程

  以二元函数为例,要寻找 $f(x, y)$ 在约束条件 $g(x, y) = 0$ 下的极值,如

$$
\begin{aligned}
\min \; & f(x, y) \\
\text{s.t.} \; & g(x, y) = 0
\end{aligned} \tag{1}
$$

  假设 $f(x, y)$ 在 $(x_0, y_0)$ 处取得极值,则有

$$
g(x_0, y_0) = 0 \tag{2}
$$

  假设在 $(x_0, y_0)$ 的某一邻域内 $f(x, y)$ 和 $g(x, y)$ 都有连续的一阶偏导数,且 $g_y(x_0, y_0) \neq 0$,由隐函数存在定理可知,$g(x, y)$ 确定一个连续且具有连续导数的函数 $y = \phi(x)$,此时 $f(x, y)$ 变为变量 $x$ 的函数

$$
z = f(x, \phi(x))
$$

由 $f(x, y)$ 在 $(x_0, y_0)$ 处取得极值,有

$$
\left. \frac{\mathrm{d}z}{\mathrm{d}x} \right\vert_{x=x_0} = f_x(x_0, y_0) + f_y(x_0, y_0) \left.\frac{\mathrm{d} y}{\mathrm{d} x}\right\vert_{x=x_0} = 0 \tag{3}
$$

由式 $(2)$ 和隐函数求导公式,有

$$
\left.\frac{\mathrm{d} y}{\mathrm{d} x}\right\vert_{x=x_0} = – \frac{g_x(x_0, y_0)}{g_y(x_0, y_0)} \tag{4}
$$

将式 $(4)$ 代入式 $(3)$,得到

$$
f_x(x_0, y_0) – f_y(x_0, y_0) \frac{g_x(x_0, y_0)}{g_y(x_0, y_0)} = 0 \tag{5}
$$

$$
\frac{f_y(x_0, y_0)}{g_y(x_0, y_0)} = -\lambda \tag{6}
$$

将式 $(6)$ 代入式 $(5)$,得到

$$
f_x(x_0, y_0) + \lambda g_x(x_0, y_0) = 0 \tag{7}
$$

由式 $(5)$ 本身,有

$$
f_y(x_0, y_0) + \lambda g_y(x_0, y_0) = 0 \tag{8}
$$

  引进辅助函数

$$
L(x, y) = f(x, y) + \lambda g(x, y) \tag{9}
$$

其中 $L(x, y)$ 称为拉格朗日函数,$\lambda$ 称为拉格朗日乘子。

  结合拉格朗日函数,式 $(7)$、$(8)$、$(2)$ 构成方程组

$$
\begin{cases}
f_x(x_0, y_0) + \lambda g_x(x_0, y_0) = 0 \\
f_y(x_0, y_0) + \lambda g_y(x_0, y_0) = 0 \\
g(x, y) = 0
\end{cases} \tag{10}
$$

求解上述方程组,即可得到 $x_0$、$y_0$ 和 $\lambda$。

2. 拉格朗日乘数法

  要找函数 $z = f(x, y)$ 在附加条件 $g(x, y) = 0$ 下的可能极值点,可以先作拉格朗日函数

$$
L(x, y) = f(x, y) + \lambda g(x, y)
$$

其中 $\lambda$ 为参数。求其对 $x$ 和 $y$ 的一阶偏导数并使之为零,然后与约束条件 $g(x, y) = 0$ 联立起来

$$
\begin{cases}
f_x(x_0, y_0) + \lambda g_x(x_0, y_0) = 0 \\
f_y(x_0, y_0) + \lambda g_y(x_0, y_0) = 0 \\
g(x, y) = 0
\end{cases}
$$

由该方程组解出 $x$、$y$ 和 $\lambda$,由此得到的 $(x, y)$ 就是函数 $f(x, y)$ 在附加条件 $g(x, y) = 0$ 下的可能的极值点。

  对于有多个自变量的场景,如要求函数

$$
u = f(x, y, z, t)
$$

在附加条件

$$
\begin{aligned}
g(x, y, z, t) = 0 \\
h(x, y, z, t) = 0
\end{aligned}
$$

下的极值,可以先作拉格朗日函数

$$
L(x, y, z, t) = f(x, y, z, t) + \lambda g(x, y, z, t) + \mu h(x, y, z, t)
$$

其中 $\lambda$、$\mu$ 均为参数。求上式的一阶偏导数并使之为零,与两个约束条件联立求解即可。


  隐函数存在定理 设函数 $F(x, y)$ 在点 $(x_0, y_0)$ 的某一邻域内具有连续偏导数,且 $F(x_0, y_0) = 0$,$F_y(x_0, y_0) \neq 0$,则方程 $F(x, y) = 0$ 在点 $(x_0, y_0)$ 的某一邻域内恒能唯一确定一个连续且具有连续导数的函数 $y = f(x)$,它满足条件 $y_0 = f(x_0)$,并有

$$
\frac{\mathrm{d} y}{\mathrm{d} x} = – \frac{F_x}{F_y}
$$