拉格朗日乘子法

拉格朗日乘子法

这一节主要描述约束条件下的函数极值,涉及拉格朗日乘子法及等高线相关知识。

问题引出

求双曲线xy=3上离原点最近的点
我们根据问题的描述来提炼出问题对应的数学模型,即:
minf(x,y) = x^2 + y^2(两点之间的欧氏距离应该还要进行开方,但是这并不影响最终的结果,所以进行了简化,去掉了平方)
s.t. xy=3(s.t.表示约束条件)
根据上式我们可以知道这是一个典型的约束优化问题,其实我们在解这个问题时最简单的解法就是通过约束条件将其中的一个变量用另外一个变量进行替换,然后代入优化的函数就可以求出极值。(即将y=\frac{3}{x}待会原式,求解原式一阶导等于0的x值,再代入)。在这里,引出拉格朗日乘子法,并利用其思想进行求解。
x^2+y^2=C的曲线族画出来,如下图所示,当曲线族中的圆与xy=3曲线进行相切时,切点到原点的距离最短。也就是说,当f(x,y)=C的等高线(这里先暂时用一下等高线的概念,后面会再进行解释)和双曲线g(x,y)相切时,我们可以得到上述优化问题的一个极值。(有可能是极大值,也有可能是极小值)。

Contour.png

现在原问题可以转化为求当
f(x,y)
g(x,y)
相切时,
x
y
的值是多少?
如果两个曲线相切,那么它们的切线相同,即法向量是相互平行的,
\nabla f//\nabla g

\nabla f//\nabla g
可以得到
\nabla f = \lambda * \nabla g

这时,我们将原有的约束优化问题转化为了一种对偶的无约束的优化问题,如下所示:
Pair.jpg

通过求解右边的方程组我们可以获取原问题的解,即:
2x=\lambda * y

2y=\lambda * x

xy=3

通过求解上式可得,
\lambda=2
或者是-2;当
\lambda=2
时,(x,y)=(sqrt(3), sqrt(3))或者(-sqrt(3), -sqrt(3)),而当
\lambda=-2
时,无解。所以原问题的解为(x,y)=(sqrt(3), sqrt(3))或者(-sqrt(3), -sqrt(3))。
通过举上述这个简单的例子就是为了体会拉格朗日乘数法的思想,即通过引入拉格朗日乘子(
\lambda
)将原来的约束优化问题转化为无约束的方程组问题。

拉格朗日乘子法基本形态

求函数z = f(x,y)在满足\varphi(x,y) = 0下的条件极值,可以转化为函数F(x,y,\lambda) = f(x,y) + \lambda \varphi(x,y)的无条件极值问题。

GradientParallel.png

绿线标出的是约束
g(x,y) = c
的点的轨迹。蓝线是
f(x,y)
的等高线。箭头表示梯度,和等高线的法线平行。
从图上可以直观地看出存在可能的极值点
M(x_0,y_0)
处,目标函数的梯度
{f'_x(x_0,y_0),f'_y(x_0,y_0)}
与约束条件的梯度
{\varphi'_x(x_0,y_0),\varphi'_y(x_0,y_0)}
平行,即
\frac{f'_x(x0,y0)}{\varphi'_x(x_0,y_0)} = \frac{f'_y(x_0,y_0)}{\varphi'_x(x_0,y_0)}

也就是说,存在实数
\lambda
,使下式成立:
{f'_x(x_0,y_0),f'_y(x_0,y_0)} + \lambda{\varphi'_x(x_0,y_0),\varphi'_y(x_0,y_0)} = 0

<font color=##ff0000>上式推导过程中,所说的两函数在极值点处的梯度平行,是如何得出的?</font>
Intuition.png

<font color=##ff0000>把拉格朗日乘子法的数学化抽象表达直观化,那就是,当函数上某点的梯度在约束曲线切向没有分量时,你就到达局部最高点了;换句话说,如果函数的梯度在约束曲线切向有分量,那么你就可以继续顺着这个分量移动以达到一个更高的高度。我们知道,约束曲线的切向是垂直于法向量的,所以这实际就是说函数的梯度要和曲线的法向量平行。</font>
约束曲线的法向是什么?假如一个约束曲线表达为g(x,y) = 0, 那么所谓曲线的法向量,其实就是曲面G在等高线g(x,y) = 0处的梯度!
为什么梯度的方向与等高线的切线方向垂直,或者就是曲线的法向量?
假设我们的函数为
f(x,y)
,在几何上表示是一个曲面,该曲面被平面
c
c
为常数)所截得的曲线l方程为:
\begin{align} z &= f(x,y),\\ z &= c. \end{align}

这条曲线
l
xy
轴面上的投影是一条平面曲线Q,它在
xy
平面中的方程为:
f(x,y) = c

则我们称平面曲线
Q
为函数
f(x,y)
的等高线。
由于等高线
f(x,y) = c
上任一一点的切线斜率用
\frac{dy}{dx}
来求。
则等高线
f(x,y) = c
上任一一点
(x,y)
处的法线的斜率为:
-\frac{1}{\frac{dy}{dx}} = -\frac{1}{-\frac{f_x}{f_y}} = \frac{f_y}{f_x}

\frac{dy}{dx} = -\frac{f_x}{f_y}的由来如下:
假设函数y = f(x)由方程F(x,y) = 0所确定,那么两边对x求导,即得:
\frac{\partial F}{\partial x} + (\frac{\partial F}{\partial y})(\frac{dy}{dx}) = 0
所以\frac{dy}{dx} = -\frac{\frac{\partial F}{\partial x}}{\frac{\partial F}{\partial y}} = - \frac{f_x}{f_y}。)

又因为梯度的计算式子为:
\frac{\partial f}{\partial x}i + \frac{\partial f}{\partial y}j

则可以得到梯度的方向为:
\frac{\frac{\partial f}{\partial y}}{\frac{\partial f}{\partial x}} = \frac{f_y}{f_x}

以上可以看出梯度的方向与等高线
f(x,y) = c
与法线方向是相同的,也就是梯度方向与等高线切线方向垂直。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容