拉格朗日乘数法

2025年2月28日 | 阅读 6 分钟

在约束优化问题中,意大利数学家约瑟夫-路易斯·拉格朗日提出的拉格朗日乘子定理被用来处理该问题,使其可以从无约束问题的导数检验中推导出算法。这种方法常用于数学优化,例如在線性規劃中,目标是在可能的约束下优化多个变量的线性函数。它是确定函数如 f(x,y,z) 的局部最大值和最小值的重要方法,同时满足 g(x,y,z) = k 或 g(x,y,z) = 0 等约束。换句话说,该方法保证一个或多个方程将在特定变量集合定义的特定值上满足。

拉格朗日函数

这导致问题通过所谓的拉格朗日函数进行重构,该函数取决于函数斜率与约束斜率之间的关系。拉格朗日方法可以总结如下:

为了找到函数 f(x) 在约束 g(x) = 0 下的最小值或最大值,拉格朗日函数形式如下:

L(x, λ) = f(x) - λ * g(x),

其中

L = 变量 x 的拉格朗日函数

λ = 拉格朗日乘子。

拉格朗日乘子法

可以用几种方式来描述拉格朗日乘子法。让我们探讨一种方法:

我们假设 f 和 g 是函数,并且它们都具有连续的偏导数。

假设存在一个点 (x0, y0, z0) ∈ S:= {(x, y, z) : g(x, y, z) = 0} 且 ∇(g) ≠(x0, y0, z0)。

如果函数 f 在点 (x0, y0, z0) 处具有局部极值,则存在常数 λ 使得 grad f(x0, y0, z0) = λ*∇g(x0, y0, z0)。

为了找到极值点,我们使用以下方程:f(x0, y0, z0) = λ*∇g(x0, y0, z0)。

G(x, y, z) = 0

在本例中,可以认为 g(x, y, z) = 0。

通过这些方程,现在可以找到未知变量 x、y、z 和 lambda 的值,从而得到局部极值点。

单约束的拉格朗日乘子定理

单约束的拉格朗日乘子定理涉及给定单一约束的多变量函数的极值条件。

在这种情况下,我们将使用的函数每次将涉及两个变量。

优化问题如下:

最大化 f(x, y)

受限于

g(x, y) = 0

(或)

即 g(x, y) = k,其中 k 是常数。

假设 f 和 g 具有一阶偏导数,则拉格朗日函数可以写成:

L(x, y, λ)= f(x, y) - λ g (x, y)

如果 f(x0, y0) 定义了函数 f(x, y) 在约束条件下的最大值,并且 g 在点 (x0, y0) 处的梯度不为零,那么存在一个 lambda (λ0),使得点 (x0, y0, λ0) 是拉格朗日函数的驻点。

为了找到 f(x, y) 在约束 g(x, y) = 0 下的最大值和最小值,请使用以下涉及偏导数的方程:

让我们对 y 求导,得到 (∂f/∂y),并将 λ(∂g/∂y) 等于零。

  1. (∂f/∂x) - λ(∂g/∂x) = 0
  2. (∂f/∂y) - λ(∂g/∂y) = 0
  3. g(x, y) = 0

在许多情况下,无需估计 λ 的值,因为它们是明确的。

对于三个变量 (x, y, z) 的函数,确定 f 的最大值和最小值值的方程为:

(∂f/∂x) - λ(∂g/∂x) = 0

(∂f/∂y) - λ(∂g/∂y) = 0

(∂f/∂z) - λ(∂g/∂z) = 0

g(x, y, z) = 0

已解决的示例

问题

给定函数 f(x, y) = x^2 + y^2,证明最大值和最小值发生在约束 g(x,y) = x + y = 5 的边界上。

解决方案

步骤 1:借助分析媒体建立可以执行的函数。

给定

f(x, y) 代表一个标量场,并且此函数 f(x, y) = x^2 + y^2 ### 指令

目标是创建一个标量场,其中偏导数不为零,这与上述标量场 f(x, y) = x^2 + y^2 不同。

g(x,y) = x+y-5=0

步骤 2:建立用于插值的拉格朗日函数。

拉格朗日函数为:L(x, y, λ) = f(x, y) - λ g (x, y)

因此,

L(x, y, λ) = x^2 + y^2, λ(x + y - 5)

步骤 3:此步骤涉及计算拉格朗日函数的偏导数。

接下来,我们找到偏导数:接下来,我们找到偏导数

∂f/∂x = 2x

∂f/∂y = 2y

∂g/∂x = 1

∂g/∂y = 1

步骤 4:作为最后阶段,您需要设置方程。

根据拉格朗日乘子法,我们建立以下方程:

其中:∂f/∂x - 'f' 相对于 'x' 的一阶偏导数 ∂g/∂x - 'g' 相对于 'x' 的一阶偏导数 λ - 拉格朗日乘子。

第一个特征方程由下式给出:2x - λ(1) = 0

λ = 2x …(1)

∂f/∂y - λ∂g/∂y = 0

我们设 y = mx + c,其中 m 和 c 是某些常数,而 λ(1) 是关于 y 的线性函数;我们希望 λ(1) = 2y,则方程变为:

λ = 2y …(2)

g(x, y) = 0

x + y- 5= 0 …(3)

步骤 5:按以下方式求解方程:

令方程 (1) 和 (2) 相等

给出方程:2x = 2y

这简化为:

x = y …(4)

步骤 6:将方程 (4) 代入方程 (3)

在此步骤中,进行以下代入:Y = 800 + 4.5X。将 Y 代入方程 (3) 会简化方程,得到 X = (Y-800)/4.5

将 x = y 代入方程 (3):x + x - 5 = 0

2x = 5

x = 2. 5

根据方程 (4),我们还有:y = 2. 5

步骤 7:定义该点的位置。

因此,感兴趣的点是 x = 2. 5, y = 2. 5。

步骤 8:找出函数在该点的值。

现在,我们计算 f 在 (2. 5, 2. 5) 的值:f(2.5;2.5) = 2.5^2 + 2.5^2 = 6. 25 + 6. 25 = 12. 5。

步骤 9:结论。

由于约束是线性的并且测量的是一条直线,因此没有其他可以讨论的临界点。因此,最大值和最小值发生在区间中的同一点。

我们还发现 f(x, y) 的最大值是 12. 5,位于点 (2. 5, 2. 5)。

在这种情况下,下界是未定义的,因为优化问题是针对给定约束求极值,在本例中,约束是线性函数,并且只产生一个接触点。

最终结果

在这种情况下,函数 f 的值最大;它在点 (2. 5, 2. 5) 处等于 12. 5。

结论

因此,拉格朗日乘子法是解决条件优化问题的一种技术,它能够根据特定条件定义最大值和最小值。利用拉格朗日函数和偏导数,我们现在能够确定函数的极值点。该方法侧重于函数目标与定义它的限制之间的交互作用,以便人们能够学习如何即使在函数集存在限制的情况下也能解决具有最佳解决方案的问题。

最后,这种方法在包括经济学、工程学和数据科学在内的众多部门和行业中至关重要,在这些领域,优化是大多数决策和资源利用的关键。