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
() (,(),()),(,)xfxyxzx xOxΦ ρ= ∈
的无条件极值问题,
0
x 是函数 ()xΦ 的极值点,因此
0
()0xΦ

=,即
000 000 000
dd
(,,) (,,) (,,) 0
xy z
yz
fxyz fxyz fxyz
xx
+ +=。
这说明向量
0 00 0 00 0 00 0 00
(,,) (,,) (,,) (,,)
xy z
f x y z f x y z f x y z f x y z= ++grad i j k
与向量
dd
1,,
dd
yz
xx
τ

=


正交,即与曲线在 ),,(
000
zyx 点的切向量正交,因此
000
(,,)f xyzgrad 可看作是曲线在 ),,(
000
zyx 点处的法平面上的向量。 由定理 12.5.1,这个法平面是由
000
(,,)Gx y zgrad 与
000
(,,)Hx y zgrad 张成的,
因此
000
(,,)f xyzgrad 可以由
000
(,,)Gx y zgrad 和
000
(,,)Hx y zgrad 线性表出,
或者说,存在常数
00
,μλ,使得
000
(,,)f xyzgrad =
0
λ
000
(,,)Gx y zgrad +
0
μ
000
(,,)Hx y zgrad,
这就是点 ),,(
000
zyx 为条件极值点所满足的必要条件。
将这个方程按分量写出就是
=
=
=
.0),,(),,(),,(
,0),,(),,(),,(
,0),,(),,(),,(
00000000000
00000000000
00000000000
zyxHzyxGzyxf
zyxHzyxGzyxf
zyxHzyxGzyxf
zzz
yyy
xxx
μλ
μλ
μλ
于是,如果构造 Lagrange 函数
(,,,,) (,,) (,,) (,,)Lxyz f xyz Gxyz Hxyzλ μλμ=
( μλ,称为 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 点成立
112 2 mm
f gg gλ λλ= +++grad grad grad grad" 。
于是可以将 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 )
在闭区域
22
{(,) | 1}xy x y=+≤D 上的最大值和最小值。
解 首先考察函数 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 )(),,(?=
在约束条件
0
e,
ln
v
xM
cc k x
α?
=
=?
下的极值问题。
作 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 )(),,(?=
在约束条件
0
e,
ln
v
xM
cc k x
α?
=
=?
下的极值问题。
由方程组中第二和第四式得到
,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 (元 / 台) 。