Lagrange 乘数法 在考虑函数的极值或最值问题时, 经常需要对函数的自变量附加 一定的条件。例如,求原点到直线 ? ? ? =++ =++ 632 ,1 zyx zyx 的距离,就是在限制条件 1=++ zyx 和 632 =++ zyx 的情况下,计算函 数 222 ),,( zyxzyxf ++= 的最小值。这就是所谓的 条件极值 问题。 § 7 条件极值问题与 Lagrange乘数法 以三元函数为例,条件极值问题的提法是:求目标函数 ),,( zyxf 在 约束条件 ? ? ? = = 0),,( ,0),,( zyxH zyxG 下的极值。 假定 GFf ,, 具有连续偏导数,且 Jacobi 矩阵 ? ? ? ? ? ? ? ? = zyx zyx HHH GGG J 在满足约束条件的点处是满秩的,即 2rank =J 。 先考虑条件极值点所满足的必要条件。 上述约束条件可看成是空 间曲线的方程。设曲线上一点 ),,( 000 zyx 为条件极值点,由于在该点 2rank =J ,不妨假设在 ),,( 000 zyx 点 0 ),( ),( ≠ ? ? zy HG ,则由隐函数存在定理, 在 ),,( 000 zyx 附近由该方程可以唯一确定 ),(),(),( 0 ρxOxxzzxyy ∈== ( )(),( 0000 xzzxyy == )。 它是曲线方程的参数形式。 将它们代入目标函数,原问题就转化为函数 ),()),(),(,()( 0 ρxOxxzxyxfx ∈=Φ 的无条件极值问题, 0 x 是函数 )(xΦ 的极值点,因此 0)( 0 =Φ ′ x ,即 0),,(),,(),,( 000000000 =++ dx dz zyxf dx dy zyxfzyxf zyx 。 这说明向量 kji ),,(),,(),,(),,(grad 000000000000 zyxfzyxfzyxfzyxf zyx ++= 与向量 ? ? ? ? ? ? = dx dz dx dy ,,1τ 正交,即与曲线在 ),,( 000 zyx 点的切向量正交,因 此 ),,(grad 000 zyxf 可看作是曲线在 ),,( 000 zyx 点处的法平面上的向量。 由 定理 12.5.1,这个法平面是由 ),,(grad 000 zyxG 与 ),,(grad 000 zyxH 张成的, 因此 ),,(grad 000 zyxf 可以由 ),,(grad 000 zyxG 和 ),,(grad 000 zyxH 线性表出, 或者说,存在常数 00 ,μλ ,使得 ),,(grad 000 zyxf = 0 λ ),,(grad 000 zyxG + 0 μ ),,(grad 000 zyxH , 这就是点 ),,( 000 zyx 为条件极值点所满足的必要条件。 将这个方程按分量写出就是 ? ? ? ? ? =?? =?? =?? .0),,(),,(),,( ,0),,(),,(),,( ,0),,(),,(),,( 00000000000 00000000000 00000000000 zyxHzyxGzyxf zyxHzyxGzyxf zyxHzyxGzyxf zzz yyy xxx μλ μλ μλ 于是,如果构造 Lagrange 函数 ),,(),,(),,(),,( zyxHzyxGzyxfzyxL μλ ??= ( μλ, 称为 Lagrange 乘数 ),则条件极值点就在方程组 ? ? ? ? ? ? ? ? ? = = =??= =??= =??= 0 ,0 ,0 ,0 ,0 H G HGfL HGfL HGfL zzzz yyyy xxxx μλ μλ μλ 的所有解 ),,,,( 00000 μλzyx 所对应的点 ),,( 000 zyx 中。用这种方法来求可 能的条件极值点的方法,称为 Lagrange 乘数法 。 作为一个例子,现在用 Lagrange 乘数法来解决本节开始提出的 问题,即求函数 222 ),,( zyxzyxF ++= 在约束条件 ? ? ? =++ =++ 632 ,1 zyx zyx 下的最小值(最小值的平方根就是距离)。为此,作 Lagrange 函数 )632()1(),,,,( 222 ?++??++?++= zyxzyxzyxzyxL μλμλ , 在方程组 ? ? ? ? ? ? ? ? ? =?++ =?++ =??= =??= =??= .0632 ,01 ,032 ,022 ,02 zyx zyx zL yL xL z y x μλ μλ μλ 中,把方程组中的第一、第二和第三式相加,再利用第四式得 263 =+ μλ 。 把第一式、第二式的两倍和第三式的三倍相加,再利用第五式得 12146 =+ μλ 。 从以上两个方程解得 4, 3 22 =?= μλ , 由此可得唯一的可能极值点 3 7 , 3 1 , 3 5 ==?= zyx 。 由于点到直线的距离,即这个问题的最小值必定存在,因此这个 唯一的可能极值点 ? ? ? ? ? ? ? 3 7 , 3 1 , 3 5 必是最小值点,也就是说,原点到直线 ? ? ? =++ =++ 632 ,1 zyx zyx 的距离为 3 25 3 7 , 3 1 , 3 5 = ? ? ? ? ? ? ?F = 3 5 。 一般地,考虑目标函数 ),,,( 21 n xxxf " 在 m 个约束条件 );,,2,1(0),,,( 21 nmmixxxg ni <== "" 下的极值,这里 ),,2,1(, migf i "= 具有连续偏导数,且 Jacobi 矩阵 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? = n mmm n n x g x g x g x g x g x g x g x g x g J " ### " " 21 2 2 2 1 2 1 2 1 1 1 在满足约束条件的点处是满秩的,即 mJ =rank 。那么我们有下述类似 的结论: 定理 12.7.1(条件极值的必要条件) 若点 0 x ),,,( 00 2 0 1 n xxx "= 为函数 )(xf 满足约束条件的条件极值点, 则必存在 m 个常数 m λλλ ,,, 21 " , 使 得在 0 x 点成立 mm gggf gradgradgradgrad 2211 λλλ +++= " 。 于是可以将 Lagrange 乘数法推广到一般情形。同样地构造 Lagrange 函数 ∑ = ?= m i niinmn xxxgxxxfxxxL 1 21212121 ),,,(),,,(),,,,,,,( """" λλλλ , 那么条件极值点就在方程组 ( *) ),,2,1;,,2,1( ,0 ,0 1 mlnk g x g x f x L l m i k i i kk "" == ? ? ? ? ? = = ? ? ? ? ? = ? ? ∑ = λ 的所有解 ),,,,,,,( 2121 mn xxx λλλ "" 所对应的点 ),,,( 21 n xxx " 中。 判断如上所得的点是否为极值点有以下的一个充分条件, 我们不 加证明地给出。 定理 12.7.2 设点 0 x ),,,( 00 2 0 1 n xxx "= 及 m 个常数 m λλλ ,,, 21 " 满足方 程组( *) ,则当方阵 nn m lk xx L × ? ? ? ? ? ? ? ? ?? ? ),,,( 210 2 λλλ "x 为正定(负定)矩阵时, 0 x 为满足约束条件的条件极小(大)值点 , )( 0 xf 为满足约束条件的条件极小(大)值。 注 当定理中的方阵为不定时,并不能说明 )( 0 xf 不是极值。例 如,在求函数 222 ),,( zyxzyxf ?+= 在约束条件 0=z 下的极值时,构造 Lagrange 函数 zzyxzyxL λ??+= 222 ),,( ,并解方程组 ? ? ? ? ? ? ? = =??= == == 0 ,02 ,02 ,02 z zL yL xL z y x λ 得 0==== λzyx 。而在 )0,0,0,0( 点,方阵 ? ? ? ? ? ? ? ? ? ? ? = ? ? ? ? ? ? ? ? ? ? 200 020 002 zzzyzx yzyyyx xzxyxx LLL LLL LLL 是不定的。但在约束条件 0=z 下, 0)0,0,0(),,( 22 =≥+= fyxzyxf ,即 )0,0,0(f 是条件极小值。 在实际问题中往往遇到的是求最值问题,这时可以根据问题本身 的性质判定最值的存在性。这样的话,只要把用 Lagrange 乘数法所解 得的点的函数值加以比较,最大的(最小的)就是所考虑问题的最大 值(最小值) 。 例 12.7.1 要制造一个容积为 a立方米的无盖长方形水箱,问这 个水箱的长、宽、高为多少米时,用料最省? 解 设水箱的长为 x 、宽为 y 、高为 z(单位:米) ,那么问题就变 成在水箱容积 axyz = 的约束条件下,求水箱的表面积 yzxzxyzyxS 22),,( ++= 的最小值。 作 Lagrange 函数 )(22),,,( axyzyzxzxyzyxL ??++= λλ , 从方程组 ? ? ? ? ? ? ? =? =?+= =?+= =?+= 0 ,022 ,02 ,02 axyz xyyxL xzzxL yzzyL z y x λ λ λ 得到唯一解 2 2 ,2,2 3 33 a zayax === 。 由于问题的最小值必定存在,因此它就是最小值点。也就是说,当水 箱的底为边长是 3 2a 米的正方形,高为 22 3 a 米时,用料最省。 例 12.7.2 求平面 0=++ zyx 与椭球面 14 222 =++ zyx 相交而成的 椭圆的面积。 z O y x 图 12.7.1 解 椭圆的面积为 abπ ,其中 ba, 分别为椭圆的两个半轴,因为椭 圆的中心在原点,所以 ba, 分别是椭圆上的点到原点的最大距离与最 小距离。 于是,可以将问题表述为,求 222 ),,( zyxzyxf ++= 在约束条件 ? ? ? =++ =++ 14 ,0 222 zyx zyx 下的最大值与最小值。 作 Lagrange 函数 )14()(),,,,( 222222 ?++?++?++= zyxzyxzyxzyxL μλμλ , 得到相应的方程组 ? ? ? ? ? ? ? ? ? =?++ =++ =??= =??= =??= .014 ,0 ,0)41(2 ,0)1(2 ,0)1(2 222 zyx zyx zL yL xL z y x λμ λμ λμ 解法一 :. 将以上方程组中的第一式乘以 μ41? ,第二式乘以 μ41? ,第三式乘以 μ?1 后相加,得到 0)31(3 =? μλ , 因此 0=λ 或 031 =? μ 。 分两种情况讨论: ( 1) 当 0=λ 时,将以上方程组中的前三个式子相加得 06 =zμ 。 但此时 0≠μ (否则从 0,0 == μλ 得到 0=== zyx , 这不是椭圆上的点) , 因此 0=z 。代入方程组 0=++ zyx , 014 222 =?++ zyx 就得到 ),,( zyx 的 两组解 ? ? ? ? ? ? ? 0, 2 1 , 2 1 与 ? ? ? ? ? ? ? 0, 2 1 , 2 1 , f 在这两个点的值都是 1。 ( 1) 当 031 =? μ 时,从方程组中的前三个式子得到 λλλ 2 3 , 4 3 , 4 3 ?=== zyx 。 代入 014 222 =?++= zyxL x 得到 9 22 ±=λ 。它对应 ),,( zyx 的两组解为 ? ? ? ? ? ? ? ? ? 3 2 , 6 2 , 6 2 和 ? ? ? ? ? ? ? ? ?? 3 2 , 6 2 , 6 2 , f 在这两个点的值都是 3 1 。 由于椭圆的长轴与短轴必存在, 因此 f 在椭圆 ? ? ? =++ =++ 14 ,0 222 zyx zyx 上的 最大值与最小值必存在,于是立即得到该椭圆的半长轴为 1,半短轴 为 3 1 ,面积为 3 π 。 解法二 : 将以上方程组中的第一式乘以 x ,第二式乘以 y ,第三 式乘以 z 后相加,再利用 0=++ zyx 和 14 222 =++ zyx 得到 μ=++= 222 ),,( zyxzyxf 。 这说明椭圆的半长轴与半短轴的平方包含在方程组关于 μ的解中,所 以问题转化为求 μ 的值。 如解法一得到 0)31(3 =? μλ ,也分两种情况: ( 1) 当 031 =? μ 时,得 3 1 =μ 。 ( 1) 当 0=λ 时,原方程组就是 ? ? ? ? ? ? ? ? ? =?++ =++ =? =? =? .014 ,0 ,0)41( ,0)1( ,0)1( 222 zyx zyx z y x μ μ μ 此时 1=μ (否则从以上方程组的第一,第二和第四式得到 0=== zyx , 这不是椭圆上的点) 。 于是同样得到,该椭圆的半长轴为 1,半短轴为 3 1 ,面积为 3 π 。 许多实际问题并不需要完全解出方程组来求得最值,解法二就是 一种常用的方法,可以使解决问题的方法与计算简化。 例12.7.3 求函数 22 2),( cybxyaxyxf ++= ( 0,,;0 2 ><? cbaacb ) 在闭区域 }1|),{( 22 ≤+= yxyxD 上的最大值和最小值。 解 首先考察函数 f 在 D 的内部 }1|),{( 22 <+ yxyx 的极值,这是无 条件极值问题。为此解线性方程组 ? ? ? =+= =+= .022 ,022 cybxf byaxf y x 由假设 0 2 <? acb 知道方程组的系数行列式不等于零,因此只有零解 0,0 == yx ,即 )0,0( 点是驻点。易计算在 )0,0( 点 cfbfaf yyxyxx 2)0,0(,2)0,0(,2)0,0( === , 因此 0)(4)0,0()0,0()0,0( 2 2 >?=? bacfff xyyyxx 。而 0> xx f ,所以 )0,0( 点是函 数 f 的极小值点,极小值为 0)0,0( =f 。 再考察函数 f 在 D 的边界 }1|),{( 22 =+ yxyx 上的极值, 这是条件极 值问题。为此作 Lagrange 函数 )1(2),,( 2222 ?+?++= yxcybxyaxyxL λλ , 并得方程组 ? ? ? ? ? =?+ =?+ =+? .01 ,0)( ,0)( 22 yx ycbx byxa λ λ 将方程组中的第一式乘以 x ,第二式乘以 y 后相加,再用第三式代入 就得到 λλ =+=++= )(2),( 2222 yxcybxyaxyxf , 这说明 ),( yxf 在 }1|),{( 22 =+ yxyx 上的极大值与极小值包含在方程组 关于 λ的解中。 下面来求 λ的值。 由联立方程组中的 01 22 =?+ yx ,可知二元一次方程组 ? ? ? =?+ =+? 0)( 0)( ycbx byxa λ λ 有非零解,因此系数行列式等于零,即 0)( 22 =?++? bacca λλ 。 解这个关于 λ的方程,得到 [ ])(4)()( 2 1 22 baccaca ??+±+=λ (注意根号中 04)()(4)( 2222 >+?=??+ bcabacca )。 由于连续函数 f 在紧集 }1|),{( 22 =+ yxyx 上必可取到最大值与最 小值,因此 f 在 D 的边界上的最大值为 [])(4)()( 2 1 22 1 baccaca ??+++=λ ; 最小值为 )(4)()( 2 1 22 2 baccaca ??+?+=λ 。 再与 f 在 D 内部的极值 0)0,0( =f 比较, 就得到 f 在 D 上的最大值 为 =λ }0,max{ 1 [])(4)()( 2 1 22 baccaca ??+++ ; 最小值为 0}0,min{ 2 =λ 。 例12.7.4 设 0,0 >> i aa ( ni ,,2,1 "= ) 。求 n元函数 n a n aa n xxxxxxf "" 21 2121 ),,,( = 在约束条件 axxx n =+++ " 21 ( nix i ,,2,1,0 "=> )下的最大值。 解 作辅助函数 nnnn xaxaxaxxxfxxxg lnlnln),,,(ln),,,( 22112121 +++== """ , 因为函数 uln 严格单调,所以只要考虑函数 g 的极值就可以得到 f 的 极值。 作 Lagrange 函数 )(lnlnln 212211 axxxxaxaxaL nnn ?+++?+++= "" λ 。 由极值的必要条件得到 ? ? ? ? ? =+++ ==?= ? ? . ,,,2,1,0 21 axxx ni x a x L n i i i " "λ 由前 n个方程得到 λ i i a x = , ni ,,2,1 "= ,再代入最后一个方程得到 a aaa n +++ = " 21 λ , 所以 n i i aaa aa x +++ = " 21 , ni ,,2,1 "= 。 于是 ),,,( 21 n xxx " 是函数 g 的唯一可能条件极值点。 由于 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? = ? ? ? ? ? ? ? ? ?? ? × 2 2 2 2 2 1 1 21 2 00 00 00 ),,,,( n n nn n lk x a x a x a xxx xx L " % ## " " λ 为负定矩阵 , 由定理 12.7.2 可知 ),,,( 21 n xxx " 为 g 的条件极大值点。 它也是 f 的唯一条件极大值点,显然它就是 f 的条件最大值点。于是 f 在约束条件下的最大值为 ∏ = +++ ? ? ? ? ? ? ? ? +++ = ? ? ? ? ? ? ? ? +++ n i aaa n a n aa a n i n n i aaa a aaa aaa aa 1 21 21 21 21 21 " " " " 。 特别地,当 1 21 ==== n aaa " 及 1=a 时, f 的最大值为 n n ? ? ? ? ? ? 1 ,即当 1 21 =+++ n xxx " 及 ),,2,1(0 nix i "=> 时成立 n n n xxx ? ? ? ? ? ? ≤ 1 21 " 。 对于任意正数 n yyy ,,, 21 " ,只要令 n i i yyy y x +++ = " 21 ( ni ,,2,1 "= ), 就得到 n n i n i nyyy y ? ? ? ? ? ? ≤ +++ ∏ = 1 1 21 " , 即 n yyy yyy n n n +++ ≤ " " 21 21 。 这就是熟知的平均值不等式。 特别地,当 1 21 ==== n aaa " 及 1=a 时, f 的最大值为 n n ? ? ? ? ? ? 1 ,即当 1 21 =+++ n xxx " 及 ),,2,1(0 nix i "=> 时成立 n n n xxx ? ? ? ? ? ? ≤ 1 21 " 。 一个最优价格模型 在生产和销售商品的过程中,销售价格上涨将使厂家在单位商品 上获得的利润增加,但同时也使消费者的购买欲望下降,造成销售量 下降,导致厂家削减产量。而在规模生产中,单位商品的生产成本是 随着产量的增加而降低的。因此销售量、成本与售价是相互影响的。 厂家要选择合理的销售价格才能获得最大利润, 这个价格称为 最优价 格 。 例如, 一家电视机厂在对某种型号电视机的销售价格决策时面对 如下数据: (1 )根据市场调查,当地对该种电视机的年需求量为 100 万台; (2 )去年该厂共售出 10 万台,每台售价为 4000 元; (3 )仅生产 1 台电视机的成本为 4000 元;但在批量生产后,生 产 1 万台时成本降低为每台 3000 元。 问:在生产方式不变的情况下,今年的最优销售价格是多少? 下面先建立一个一般的数学模型。 设这种电视机的总销售量为 x , 每台生产成本为 c,销售价格为 v,那么厂家的利润为 xcvxvcu )(),,( ?= 。 根据市场预测,销售量与销售价格之间有下面的关系: v Mx α? = e , 0,0 >> αM , 这里 M 为市场的最大需求量, α是价格系数(这个公式也反映出,售 价越高,销售量越少) 。同时,生产部门对每台电视机的成本有如下 测算: xkcc ln 0 ?= , 0,, 0 >xkc , 这里 0 c 是只生产 1 台电视机时的成本, k 是规模系数(这也反映出, 产量越大即销售量越大,成本越低) 。 于是,问题化为求利润函数 xcvxvcu )(),,( ?= 在约束条件 ? ? ? ?= = α? xkcc Mex v ln , 0 下的极值问题。 作 Lagrange 函数 )ln()e()(),,,,( 0 xkccMxxcvxvcL v +?????= ? μλμλ α , 就得到最优化条件 ? ? ? ? ? ? ? ? ? =+? =? =???= =?= =??= ? ? .0ln ,0e ,0 ,0e ,0 0 xkcc Mx x k cvL MxL xL v x v v c α α μλ αλ μ 于是,问题化为求利润函数 xcvxvcu )(),,( ?= 在约束条件 ? ? ? ?= = α? xkcc Mex v ln , 0 下的极值问题。 由方程组中第二和第四式得到 ,1=λα 即 α λ 1 = 。 将第四式代入第五式得到 )(ln 0 vMkcc α??= 。 再由第一式知 x?=μ 。 将所得的这三个式子代入方程组中第三式,得到 0 1 ))(ln( 0 =+???? kvMkcv α α , 由此解得最优价格为 k kMkc v α α ? ?+? = 1 1 ln 0 * 。 只要确定了规模系数 k 与价格系数 α,问题就迎刃而解了。 现在利用这个模型解决本段开始提出的问题。此时 1000000=M , 4000 0 =c 。 由于去年该场共售出 10 万台,每台售价为 4000 元,因此得到 00058.0 4000 100000ln1000000lnlnln = ? = ? = v xM α ; 又由于生产 1 万台时成本就降低为每台 3000 元,因此得到 57.108 10000ln 30004000 ln 0 = ? = ? = x cc k 。 将这些数据代入 * v 的表达式,就得到今年的最优价格应为 4392 57.10800058.01 57.108 00058.0 1 1000000ln57.1084000 * ≈ ×? ?+? =v (元 / 台) 。