拉格朗日乘子法

与原点的最短距离

假如有方程:

x2y=3

图像是这个样子滴:

现在我们想求其上的点与原点的最短距离:

这里介绍一种解题思路。首先,与原点距离为a的点全部在半径为a的圆上:

那么,我们逐渐扩大圆的半径:

显然,第一次与x2y=3相交的点就是距离原点最近的点:

此时,圆和曲线相切,也就是在该点切线相同:

至此,我们分析出了:

在极值点,圆与切片相切

等高线

为了继续解题,需要引入等高线。这些同心圆:

可以看作函数f(x,y)=x2+y2的等高线:

根据梯度的性质(关于梯度可以查看如何通俗地理解梯度?),梯度向量:

f=(fxfy)=(2x2y)

是等高线的法线:

另外一个函数g(x,y)=x2y的等高线为:

之前的曲线x2y=3就是其中值为3的等高线:

因此,梯度向量:

g=(gxgy)=(2xyx2)

也垂直于等高线x2y=3

梯度向量是等高线的法线,更准确地表述是:

梯度与等高线的切线垂直

拉格朗日乘子法

求解

根据之前的两个分析:

{线线线

综合可知,在相切点,圆的梯度向量和曲线的梯度向量平行

也就是梯度向量平行,用数学符号表示为:

(1)f=λg

还必须引入x2y=3这个条件,否则这么多等高线,不知道指的是哪一根:

因此联立方程:

{f=λgx2y=3

求一下试试:

{(2x2y)=λ(2xyx2)x2y=3{x±1.61y1.1λ0.87

这就是拉格朗日乘子法。

定义

要求函数fg约束下的极值这种问题可以表示为:

minmax fs.t. g=0

s.t. 意思是subject to,服从于,约束于的意思。

可以列出方程组进行求解:

{f=λgg=0

用这个定义来翻译下刚才的例子,要求:

令:

{f(x,y)=x2+y2g(x,y)=x2y3

求:

min f(x,y)s.t. g(x,y)=0

联立方程进行求解:

{f=λgg(x,y)=0

变形

这个定义还有种变形也比较常见,要求:

minmax fs.t. g=0

定义:

F=fλg

求解下面方程组即可得到答案:

(FxFyFλ)=(fxλgxfyλgyg=0)=(000)

把等式左边的偏导算出来就和上面的定义是一样的了。

λ的含义

(1)式可知λ在共线的基础上描述了目标函数和约束函数的梯度的长度比值。

我们取其中对x偏导的分量进行分析,另外对该式子取绝对值:

|λ|=|f(x)g(x)|

如图,这里首先补充一点知识,当取消近似垂直上升或者垂直下降的时候,梯度较大,当梯度进行平行的时候,梯度较小。

可以发现,当|λ|越小,g(x)的模就越大于f(x)。极端情况下,|λ0|,此时|g(x)|。这意味着在x点,g(x)几乎是垂直的,对增量非常敏感:当最优值不小心变一点点,条件g(x)=0将严重偏离;若|λ|很大,g(x)几乎是水平的,则其对增量不敏感(若g(x)的轻微偏离不会造成太大的损失,可以适当牺牲约束条件的精确性,来换取更优的解)。

换句话说,|λ|越小,其求得的结果灵敏度越高,反之越低;可以说|λ|是衡量最优解灵敏度的一种方法。(当然也可以直接求g(x)来衡量灵敏度,这样更绝对一点)

多个约束条件

如果增加一个约束条件呢?比如说:

xy3=0

求:

min x2+y2s.t. {x2y3=0xy3=0

从图上看约束条件是这样的:

很显然所求的距离是这样的:

那这三者的法线又有什么关系呢?x2+y2的法线是x2y3xy3的法线的线性组合:

假设:

{f(x,y)=x2+y2g(x,y)=x2y3h(x,y)=xy3

那么线性组合就表示为:

f=λg+μh

联立方程:

{f=λg+μhg(x,y)=0h(x,y)=0

即可求解。

往更高纬度走的话,多约束条件的情况下,问题变为了g1,g2 围成的曲线Cf 相切,直观上看f 必然在g1,g2 张成的空间中:

这点的严格性这里就不证明了。

参考

如何理解拉格朗日乘子法?

------ 本文结束------
坚持原创技术分享,您的支持将鼓励我继续创作!

欢迎关注我的其它发布渠道

Related Issues not found

Please contact @zdaiot to initialize the comment