约束


 

20.1 引言

20.1.1 约束条件下最优解的梯度

很少有“免费的午餐”。如果我们想最大化一个量,通常需要处理约束条件。障碍可能会阻止我们随意改变参数。梯度仍然可以作为指导原则。虽然我们无法使 f 为零,但可以寻找梯度与约束垂直的点。这给出了在限制下的最优点。如果你在山间小径上徒步,常常会在没有到达山顶时就达到局部最大值。在这样的点 x 处, f ( x ) 垂直于曲线,这意味着 f ( x ) 平行于 g ( x )

图 1. 函数 f ( x , y ) 沿曲线 g ( x , y ) = c 优化的情形是一个可以用拉格朗日方法处理的框架。达到最大值的条件意味着 f 的梯度垂直于该曲线。这意味着 f g 的梯度平行。 f = λ g

20.1.2 拉格朗日的魔法:多约束,一解法

拉格朗日方法更为通用。我们可以处理任意多个约束,并仍然使用相同的原理。此时 f : n 的梯度垂直于约束曲面,这意味着它是所有 m 个约束的梯度的线性组合:即 n 个方程 f = j = 1 m λ j g j ,因为向量有 n 个分量。再加上 m 个方程 g j = c j ,我们共有 n + m 个方程,对应 n + n 个变量 x 1 , , x n , λ 1 , , λ m

20.2 讲座

20.2.1 在受限空间中寻找最大值

如果我们想在约束 S = { x m g ( x ) = c } 下最大化函数 f : m ,那么 f g 的梯度都很重要。如果存在某个实数 λ 使得 v = λ w w = λ v ,则称两个向量 v w 平行。零向量与任何向量平行。以下是费马原理的一个变体:

定理 1. 如果 x 0 f 在约束 g = c 下的最大值点,那么 f ( x 0 ) g ( x 0 ) 平行。

证明. 反证法:假设 f ( x 0 ) g ( x 0 ) 不平行,且 x 0 是局部最大值。设 T S = { g = c } x 0 处的切平面。因为 f ( x 0 ) 不垂直于 T ,我们可以将其投影到 T 上,得到 T 中的一个非零向量 v ,该向量不垂直于 f 。实际上, f v 之间的夹角是锐角,因此 cos ( α ) > 0 。取 S 中的一条曲线 r ( t ) ,满足 r ( 0 ) = x 0 。我们有 根据线性近似,我们知道对于足够小的 t > 0 ,有 f ( r ( t ) ) > f ( r ( 0 ) ) 。这与 f S 上的 x 0 = r ( 0 ) 处取得最大值的事实矛盾。 ◻

图 2. 一个拉格朗日问题

20.2.2 探索拉格朗日乘子与必要条件

这立即意味着:(区分 g 0 g = 0

定理 2. 对于 f S = { g = c } 上的最大值,要么拉格朗日方程 f ( x 0 ) = λ g ( x 0 ) g = c 成立,要么 g ( x 0 ) = 0 g = c 成立。

对于两个变量的函数 f ( x , y ) , g ( x , y ) ,这意味着我们必须求解一个包含三个方程和三个未知数的方程组:

20.2.3 寻找真正的最大值

要找到最大值,解拉格朗日方程,并加上约束上 g 的临界点列表。然后在所有点中选择 f 最大的点。我们不用二阶导数检验。但这里有一个可能的陈述:如果对于所有垂直于 g ( x 0 ) v ,有 d 2 d t 2 D t v D t v f ( x 0 ) | t = 0 < 0 ,那么 x 0 是局部最大值。

当然,最大值和最小值的情况是类似的。如果 f g = c 上有最大值,那么 f g = c 上有最小值。我们可能在光滑约束 S = { g = c } 下得到 f 的最大值,而拉格朗日方程并不满足。一个例子是 f ( x , y ) = x g ( x , y ) = x 3 y 2 ,如图 (20.3) 所示。

图 3. 一个函数示例,其中拉格朗日方程未能给出最小值,此处为 ( 0 , 0 ) 。这是一个 g = 0 的情况。

20.2.4 拉格朗日的攀登:多约束下的最大化

拉格朗日方法可以在多个约束下最大化函数 f 。我们以三个变量的函数 f ( x , y , z ) 和两个约束 g ( x , y , z ) = c h ( x , y , z ) = d 为例进行说明。费马原理的类似表述是:在 f 的最大值点处, f 的梯度位于由 g h 张成的平面内。这导出了关于 5 个未知数 x , y , z , λ , μ 拉格朗日方程

例如,如果 那么我们会在椭圆 g = 1 h = 4 上找到到原点距离最小或最大的点。

图 4. 我们看到一个试图在两个约束下最大化函数 f 的情形。此时交集 g = c h = d 是一个椭圆。

20.3 示例

例 1. 问题:在约束 g ( x , y ) = x + y 2 = 1 下最小化 f ( x , y ) = x 2 + 2 y 2
解:拉格朗日方程为 2 x = λ 4 y = λ 2 y 。如果 y = 0 ,则 x = 1 。如果 y 0 ,我们可以将第二个方程除以 y ,得到 2 x = λ 4 = λ 2 ,再次表明 x = 1 。点 x = 1 y = 0 是唯一解。

例 2. 问题:对于固定体积 V ,高度为 h 、半径为 r 的圆柱形汽水罐,何时表面积 A 最小?
解:我们有 V ( r , h ) = h π r 2 = 1 A ( r , h ) = 2 π r h + 2 π r 2 。令 x = h π y = r ,则需要在约束 g ( x , y ) = x y 2 = 1 下优化 f ( x , y ) = 2 x y + 2 π y 2 。我们将在课堂上完成。

例 3. 问题:如果 0 p k 1 是骰子显示 k 的概率,那么我们有 g ( p ) = p 1 + p 2 + + p 6 = 1 。这个向量 p 称为一个 概率分布 p 的香农熵定义为

找出使熵 S 最大化的分布 p
解: f = ( 1 log ( p 1 ) , , 1 log ( p n ) ) , g = ( 1 , , 1 ) . 拉格朗日方程为 1 log ( p i ) = λ , p 1 + + p 6 = 1 , 由此得到 p i = e ( λ + 1 ) 。最后一个方程 1 = i exp ( ( λ + 1 ) ) = 6 exp ( ( λ + 1 ) ) 确定 λ = log ( 1 / 6 ) 1 ,因此 p 1 = p 2 = = p 6 = 1 / 6 。这是一个公平的骰子,具有最大熵。最大熵意味着 最少的信息量

例 4. 假设一个物理或化学系统处于状态 k 的概率为 p k ,且状态 k 的能量为 E k 。如果能量 E i 固定,自然界会最小化 自由能 F ( p 1 , , p n ) = i [ p i log ( p i ) E i p i ] 。满足 i p i = 1 且使自由能最小化的概率分布 p i 称为 吉布斯分布。在给定 E i 的一般情况下,找出这个分布。
解: f = ( 1 log ( p 1 ) E 1 , , 1 log ( p n ) E n ) , g = ( 1 , , 1 ) . 拉格朗日方程为 log ( p i ) = 1 λ E i ,或 p i = exp ( E i ) C ,其中 C = exp ( 1 λ ) 。约束 p 1 + + p n = 1 给出 C ( i exp ( E i ) ) = 1 ,因此 C = 1 / ( i e E i ) 吉布斯解 p k = exp ( E k ) / i exp ( E i ) 1

例 5. 如果 f m 上的二次函数,而 g 是线性的,即 f ( x ) = B x x / 2 ,其中 B M ( m , m ) ,且约束 g ( x ) = A x = c 是线性的, A M ( 1 , m ) ,那么 f ( x ) = B x g ( x ) = A T 。记 b = A T M ( m , 1 ) m 。拉格朗日方程则为 B x = λ b A x = c 。我们看到,对于二次的 f 和线性的 g ,最终会得到一个 线性方程组

例 6. 与前述评论相关的是以下观察。通常可以将拉格朗日问题简化为无约束问题。这是经济学中常采用的观点。我们以二维情况为例,在约束 g ( x , y ) = 0 下求 f ( x , y ) 的极值。定义 F ( x , y , λ ) = f ( x , y ) λ g ( x , y ) 。此时 f , g 的拉格朗日方程等价于三维中的 F ( x , y , λ ) = 0

练习

练习 1. 求顶部敞开的圆柱形篮子,在固定面积为 π 时具有最大体积。设 x 为半径, y 为高,我们需要在约束条件下最大化 f ( x , y ) = π x 2 y g ( x , y ) = 2 π x y + π x 2 = π . 使用拉格朗日乘数法。

练习 2. 给定一个 n × n 对称矩阵 B ,考察函数 f ( x ) = x B x ,并在约束条件 g ( x ) = x x = 1 下求 f 的极值。这引出一个方程 B x = λ x . x 称为特征向量。拉格朗日常数 λ 特征值。若 B 是一个 2 × 2 矩阵,求 B x = λ x | x | = 1 的解,其中 f ( x , y ) = a x 2 + ( b + c ) x y + d y 2 , g ( x , y ) = x 2 + y 2 . 然后求解 a = 4 b = 1 c = 1 d = 4 时的问题。

练习 3. 一个高为 h 、底面为正方形 [ a , a ] × [ a , a ] 的棱锥,其表面积为 4 a h 2 + a 2 + 4 a 2 = 4 ,何时体积最大 V ( h , a ) = 4 h a 2 / 3 ?通过引入新变量 ( x , y ) 并将 V 乘以一个常数,我们得到等价问题:在约束条件下最大化 f ( x , y ) = y x 2 g ( x , y ) = x y 2 + x 2 + x 2 = 1. 使用后面的变量。

练习 4. 受迪士尼电影《魔发奇缘》的启发,我们想建造一个热气球,其长方体框架尺寸为 x y z ,加上顶部和底部的加固,使用的金属丝总长为 g ( x , y , z ) = 6 x + 6 y + 4 z = 32. 求体积最大时的气球,体积为 f ( x , y , z ) = x y z

练习 5. 一颗由半球和圆柱组成的实心子弹,体积为 V = 2 π r 3 / 3 + π r 2 h ,表面积为 A = 2 π r 2 + 2 π r h + π r 2 。曼哈顿博士设计了一颗体积固定而表面积最小的子弹。设 g = 3 V / π = 1 f = A / π ,因此他在约束条件下最小化 f ( h , r ) = 3 r 2 + 2 r h g ( h , r ) = 2 r 3 + 3 r 2 h = 1. 使用拉格朗日方法求 f 在约束条件 g = 1 下的局部最小值。

附录:数据示例:柯布-道格拉斯生产函数

20.3.1 柯布-道格拉斯:经济增长的一个公式

阿默斯特学院的数学家、经济学家查尔斯·W·柯布与同样在阿默斯特任教的经济学家、政治家保罗·H·道格拉斯于1928年根据经验发现了一个公式 F ( K , L ) = L α K β ,该公式将经济体系的总产出 F 拟合为资本投入 K 劳动力 L 的函数。两位作者使用了对数变量并假设线性关系来求 α , β 。以下数据已归一化,使得1899年的数据值为 100

年份 K L P
1899100100100
1900107105101
1901114110112
1902122118122
1903131123124
1904138116122
1905149125143
1906163133152
1907176138151
1908185121126
1909198140155
1910208144159
1911216145153
1912226152177
1913236154184
1914244149169
1915266154189
1916298182225
1917335196227
1918366200223
1919387193218
1920407193231
1921417147179
1922431161240
图 5. 函数 F ( L , K ) = L 3 / 4 K 1 / 4 的图像与该数据集拟合得相当好。从数据中可以看到存在一个离群值。

20.3.2 可视化生产限制

假设劳动力和资本投入受到额外约束 G ( L , K ) = L 3 / 4 + K 1 / 4 = 50 。(此函数 G 与函数 F ( L , K ) 无关,因为我们是在处理拉格朗日问题。)在该约束下,产出 P 在何处最大?绘制两个函数 F ( L , K ) G ( L , K ) 的图像。


  1. 此例来自鲁弗斯·鲍恩,《数学讲义笔记》,470,1978年↩︎