目录
一、拉格朗日乘数法求极值
二、拉格朗日函数法的数学表述
三、对拉格朗日乘数法的理解
3.1引例
3.2等式约束优化
一、拉格朗日乘数法求极值
例如:
求解,在,条件下的极值。
我们通常作拉格朗日函数:
分别对求导即:
联立前三个方程就可以解得,从而代入第四方程得
得到拉格朗日函数位唯一驻点,求得极值。
二、拉格朗日函数法的数学表述
目标函数:
约束条件:
构造Lagrange函数:
求偏导:
三、对拉格朗日乘数法的理解
3.1引例
通过下图直观理解:
图为matlab绘制,代码如下:
% 定义图像范围
figure;
hold on;
axis equal;
% 绘制 x^2 + y^2 = 4
fimplicit(@(x,y) x.^2 + y.^2 - 4, 'r', 'LineWidth', 1.5);
% 绘制 x^2 + y^2 = 2
fimplicit(@(x,y) x.^2 + y.^2 - 2, 'g', 'LineWidth', 1.5);
% 绘制 x^2 + y^2 = 8
fimplicit(@(x,y) x.^2 + y.^2 - 8, 'b', 'LineWidth', 1.5);
% 绘制 xy = 2
fimplicit(@(x,y) x.*y - 2, 'k', 'LineWidth', 1.5);
% 设置图例
legend('x^2 + y^2 = 4', 'x^2 + y^2 = 2', 'x^2 + y^2 = 8', 'xy = 2');
% 设置图像标题和坐标轴标签
title('Implicit Plots of Equations');
xlabel('x');
ylabel('y');
grid on;
hold off;
在上面的图形中
目标函数
约束条件
显然在没有约束条件的情况下,目标函数的最小值为0,即在(0,0)点。而在约束条件下,目标函数取得最小值的取值点必定在约束条件的图形上。
对于目标函数可以把其当做一圈圈等高线,目标函数的值越大,等高线围起来的面积就越大,表现在图中就是圆的半径越大;
从中心处出发,做半径不断增大的圆,当圆的半径较小的时,目标函数和约束条件图像没有交点,没有符合条件的点;当圆的半径比较大的时候目标函数和约束条件有四个交点,但在这四个点时目标函数不是取得最小值;
当且仅当图形相切时,才能取得约束条件下的最小值,即在最值处,目标函数和等式约束条件形成的图形是相切的。
3.2等式约束优化
将上节结论推广到其他等式优化,如果存在最值点,那么在该最值点处,目标函数和等式约束形成的图像是相切的。那么他们就具有共线的切向量和法向量。
而在代数中,我们可以用一个函数的梯度来表示其法向量。梯度的方向在代数中规定为:函数值最增的方向。进而,我们就知道目标函数和约束条件的梯度方向一定是共线的。所以我们可以得到这样的表示:
如果有多个约束,则表示为:
仔细观察,可以发现这个式子等价于拉格朗日乘数法中的式子:
所以我们把目标函数和约束条件放在一起并引入参数构造一个拉格朗日函数,然后求导。就是通过梯度共线的约束,确保目标函数和约束条件相切与某一点,这个时候才可能取到最值。