拉格朗日乘子法——分析推导:https://blog.csdn.net/hao5335156/article/details/82320082
拉格朗日乘子法:https://blog.csdn.net/qq_33829547/article/details/100152556
带约束条件的极值问题
具体运用
分析推导
拉格朗日乘子法的几何认识
现在,我们来感性地认识一下,为什么拉格朗日认为相切才能找到最低点(只是感性认识,不添加任何数学推导)。
在橙点这个位置,由于两条曲线不相切,所以橙线的梯度(上图橙色箭头)和蓝线的切线(蓝色虚线)肯定不垂直。在这种情况下,蓝线的两个切线方向,必定有一个往函数高处走(与梯度的夹角小于 90 度),有一个往函数低处走(与梯度的夹角大于 90 度)。所以,在两条曲线相交时,我们肯定不在最低点或最高点的位置。
那么,反过来想,如果两条曲线相切(上图),那么在切点这个位置,蓝线的切线和橙线的梯度是垂直的,这个时候,蓝线的切线方向都指向橙线的等高线方向。换句话说,在切点的位置沿蓝线移动很小的一步,都相当于在橙线的等高线上移动,这个时候,可以认为函数值已经趋于稳定了。所以,我们认为这个点的值“可能”是最低(高)的(之后解释为什么是“可能“。另外,个人觉得拉格朗日乘子法最好用反证法从不相切的点入手思考,从相切的点思考总有点别扭)。
既然相切可以帮助我们找到最低点,那么接下来我们要研究的便是如何利用相切来找出最低点。
相切,意味着在切点的位置,两条曲线的等高线方向是平行的,考虑到梯度与等高线垂直, 我们可以用两条曲线的梯度平行来求出切点位置(最低点)。
因此,根据梯度平行,我们能够得到一个方程组:,其中 表示一个标量,因为我们虽然能保证两个梯度平行,但不能保证它们的长度一样(或者方向相同)。在高维函数中, 表示的是函数在各个自变量方向的偏导。对于上面的例子,我们可以求出函数 和 的偏导,再根据方程组:
求出切点。由于总共有三个方程和三个未知数,一般都能找到解(也可能存在多个解或无解的情况,之后会简单讨论)。
在实际求解时,人们会使用一个统一的拉格朗日函数:,令这个函数偏导为 0,我们可以得到:
结果和上面的方程组是一样的。
多个约束条件
多个约束条件和单个约束条件是一样的。如果是多个约束条件,那么这些约束函数肯定是相交的,否则无解。多个约束条件一般会把变量约束到一个更低维的空间,例如,下图中,紫色球面和黄色平面将变量约束到黑色线的位置。
求解过程和单个约束条件是一样的,我们定义一个新的拉格朗日函数:
然后同样令这个函数的导数 ,最后可以得到 个方程以及 个未知数,一般也能求解出来。
总结
根据拉格朗日乘子法的定义,这是一种寻找极值的策略,换句话说,该方法并不能保证找到的一定是最低点或者最高点。事实上,它只是一种寻找极值点的过程,而且,拉格朗日乘子法找到的切点可能不只一个(也就是上面的方程组可能找到多个解),例如下图:
图中相切的点有两个,而红点的函数值明显比黑点小。事实上,要想判断找到的点是极低点还是极高点,我们需要将切点代入原函数再进行判断。