拉格朗日乘数法学习笔记
偏导数
偏导数用于描述一个多元函数在某个维度的变化率。
形式化的,如果我们有多元函数 $f(x_1,x_2,\dots,x_n)$,对 $x_i$ 求偏导则有:
$$
f_{x_i}(x_1,x_2,\dots,x_n)=\dfrac{\partial f}{\partial x_i}=\lim_{\Delta x_i\to 0} \frac{f(x_1,\dots,x_i+\Delta x_i,\dots,x_n)-f(x_1,\dots,x_i,\dots,x_n)}{\Delta x_i}
$$
计算时也就是将除了 $x_i$ 之外的自变量都视为常量求导。
举例来说,令 $f(x,y)=x^2+3xy+y^3$,则:
$$
\begin{aligned}
\frac{\partial f}{\partial x}&=2x+3y\\
\frac{\partial f}{\partial y}&=3y^2+3x
\end{aligned}
$$
方向导数
方向导数是一个多元函数延某个方向的变化率。
函数可微时(可微可以理解为光滑)任意方向 $\mathbf{v}$ 的方向导数均存在,且 $f_{\mathbf{v}}(\mathbf{x})=\mathbf{v}\cdot \left(\dfrac{\partial f}{\partial x_1},\dots,\dfrac{\partial f}{\partial x_n}\right)$。
梯度
梯度是函数在某点处值增长最快的方向。
我们只讨论可微函数的梯度。
增长速度最快也即方向导数的值最大,由方向导数的公式我们不难发现 $\mathbf{v}$ 与 $\left(\dfrac{\partial f}{\partial x_1},\dots,\dfrac{\partial f}{\partial x_n}\right)$ 同向时方向导数取到最大值,于是 $f$ 的梯度,记作 $\nabla f$,等于 $\left(\dfrac{\partial f}{\partial x_1},\dots,\dfrac{\partial f}{\partial x_n}\right)$。
拉格朗日乘数法
拉格朗日乘数法用于解决约束下的多元函数极值问题。
若我们有 $f(x_1,x_2,\dots,x_n)$ 与等式形式的限制 $g(x_1,x_2,\dots,x_n)=0$,则构造拉格朗日函数
$$
L(x_1,x_2,\dots,x_n,\lambda)=f(x_1,x_2,\dots,x_n)+\lambda g(x_1,x_2,\dots x_n)
$$
对 $x_1,\dots,x_n$ 分别求偏导并令其等于 $0$,与限制联立得到 $n+1$ 个方程,求解即可得出 $f$ 在限制下的所有极值点,带入计算可以得到最大值和最小值。
这种做法的正确性在于,$f$ 取到极值时一定有 $f$ 的等高线与 $g=0$ 相切,可以说明这等价于 $f$ 与 $g$ 在该点的梯度平行,故每个 $\dfrac{\partial f}{\partial x_i}:\dfrac{\partial g}{\partial x_i}$ 均相等。
多个限制也同理。
需要特殊处理 $\nabla g=0$,或多个限制时 $\nabla g_i$ 线性相关的情况。
扩展
若我们有不等式形式的限制 $h(x_1,x_2,\dots,x_n)\le 0$,那么取到极值只有两种情况,要么 $h(x_1,x_2,\dots x_n)=0$,否则函数在 $h<0$ 限制下的极值点一定也是函数在无限制时的极值点,所以我们只需要忽略 $h$ 的限制计算极值点,然后将解带回 $h$ 看是否满足限制即可。
实际解题时,枚举哪些不等式限制取到边界然后分别进行求解即可。
可以参考 KKT 条件。
References
10幅图帮助理解拉格朗日乘数法的原理 - 知乎 (zhihu.com)
通俗理解方向导数、梯度|学习笔记 - 知乎 (zhihu.com)
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。
@(笑眼)