教案
条件极值问题与 Lagrange 乘数法
1. 教学内容
讲解 Lagrange 乘数法的原理,并介绍如何应用 Lagrange 乘数法求解条件极值问
题。
2. 指导思想
条件极值问题是实践中经常遇到的应用问题, Lagrange 乘数法是解决条件极值
问题的一个有效的工具,也是数学分析课程教学上的一个难点,讲好这一节课程,
对提高学生分析问题、并利用微积分这一工具解决问题的能力具有重要意义。
3. 教学安排
1. 在考虑函数的极值或最值问题时,经常需要对函数的自变量附加一定的条
件。例如,求原点到直线
?
?
?
=++
=++
632
,1
zyx
zyx
的距离,就是在限制条件 1=++ zyx 和 632 =++ zyx 的情况下,计算函数
222
),,( zyxzyxf ++= 的最小值。这就是所谓的条件极值问题。
以三元函数为例,条件极值问题的提法是:求目标函数
),,( zyxf
在约束条件
?
?
?
=
=
0),,(
,0),,(
zyxH
zyxG
下的极值。
假定 具有连续偏导数,且 Jacobi 矩阵 GFf ,,
?
?
?
?
?
?
?
?
=
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
。
这说明向量
1
kji ),,(),,(),,(),,(grad
000000000000
zyxfzyxfzyxfzyxf
zyx
++=
与向量
?
?
?
?
?
?
=
dx
dz
dx
dy
,,1τ 正交,即与曲线在 点的切向量正交,因此
可看作是曲线在 点处的法平面上的向量。由定理
12.5.1 ,这个法平面是由 与 张成的,因此
可以由 和 线性表出,或者说,
存在常数
),,(
000
zyx
),,(grad
000
zyxf ),,(
000
zyx
),,(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 所对应的点 中 。用这种方法来求可能的条件
极值点的方法,称为 Lagrange 乘数法。
),,(
000
zyx
2.作为一个例子,现在用 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
μλ
μλ
μλ
把方程组中的第一、第二和第三式分别乘以 zyx 、、 后相加,再利用第四、第五
式得到
2
μλ 6)(2
222
+=++ zyx
。
请同学思考,从上式我们能得出什么结论?
答案:从方程组解出 λ 和 μ ,如果只有一组解,则
2
6μλ+
就是原点到直线距
离的平方!
为此我们只要从方程组解出 λ 和 μ 即可。
把方程组中的第一、第二和第三式相加,再利用第四式得
263 =+ μλ ;
把第一式、第二式的两倍和第三式的三倍相加,再利用第五式得
12146 =+ μλ 。
从以上两个方程解得
4,
3
22
=?= μλ 。
于是原点到直线 的距离为
?
?
?
=++
=++
632
,1
zyx
zyx
3
5
)24
3
22
(
2
1
=+? 。
注 解出 λ 和 μ 后,容易得到本题的唯一可能条件极值点为
3
7
,
3
1
,
3
5
==?= zyx ,
因此原点到直线 的距离为
?
?
?
=++
=++
632
,1
zyx
zyx
3
25
3
7
,
3
1
,
3
5
=
?
?
?
?
?
?
?F =
3
5
。
3.一般地,考虑目标函数 在 m 个约束条件 ),,,(
21 n
xxxf L
);,,2,1(0),,,(
21
nmmixxxg
ni
<== LL
下的极值,这里 具有连续偏导数,且 Jacobi 矩阵 ),,2,1(, migf
i
L=
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
=
n
mmm
n
n
x
g
x
g
x
g
x
g
x
g
x
g
x
g
x
g
x
g
J
L
MMM
L
L
21
2
2
2
1
2
1
2
1
1
1
在满足约束条件的点处是满秩的,即 mJ =rank 。那么我们有下述类似的结论:
定理 1(条件极值的必要条件) 若点 为函数 满足约束
条件的条件极值点,则必存在 个常数
0
x ),,,(
00
2
0
1 n
xxx L= )(xf
m
m
λλλ ,,,
21
L ,使得在 点成立
0
x
mm
gggf gradgradgradgrad
2211
λλλ +++= L 。
于是可以将 Lagrange 乘数法推广到一般情形。同样地构造 Lagrange 函数
∑
=
?=
m
i
niinmn
xxxgxxxfxxxL
1
21212121
),,,(),,,(),,,,,,,( LLLL λλλλ ,
那么条件极值点就在方程组
( *) ),,2,1;,,2,1(
,0
,0
1
mlnk
g
x
g
x
f
x
L
l
m
i k
i
i
kk
LL ==
?
?
?
?
?
=
=
?
?
?
?
?
=
?
?
∑
=
λ
的所有解 ),,,,,,,(
2121 mn
xxx λλλ LL 所对应的点 中。 ),,,(
21 n
xxx L
3
判断如上所得的点是否为极值点有以下的一个充分条件,我们不加证明地给
出,请有兴趣的读者将证明补上。
定理 2 设点 及 m 个常数
0
x ),,,(
00
2
0
1 n
xxx L=
m
λλλ ,,,
21
L 满足方程组( *) ,则
当方阵
nn
m
lk
xx
L
×
?
?
?
?
?
?
?
?
??
?
),,,(
210
2
λλλ Lx
为正定(负定)矩阵时, 为满足约束条件的条件极小(大)值点,因此
为满足约束条件的条件极小(大)值。
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
4.例题
在实际问题中往往遇到的是求最值问题,这时可以根据问题本身的性质判定
最值的存在性(如前面的例子) 。这样的话,只要把用 Lagrange 乘数法所解得的
点的函数值加以比较,最大的(最小的)就是所考虑问题的最大值(最小值)。
例1 要制造一个容积为 立方米的无盖长方形水箱,问这个水箱的长、宽、
高为多少米时,用料最省?
a
解 设水箱的长为 x 、宽为 、高为 (单位:米),那么问题就变成在水箱
容积
y z
axyz =
的约束条件下,求水箱的表面积
yzxzxyzyxS 22),,( ++=
的最小值。
作 Lagrange 函数
)(22),,,( axyzyzxzxyzyxL ??++= λλ ,
从方程组
?
?
?
?
?
?
?
=?
=?+=
=?+=
=?+=
0
,022
,02
,02
axyz
xyyxL
xzzxL
yzzyL
z
y
x
λ
λ
λ
4
得到唯一解
2
2
,2,2
3
33
a
zayax === 。
由于问题的最小值必定存在,因此它就是最小值点。也就是说,当水箱的底为边
长是
3
2a 米的正方形,高为 22
3
a 米时,用料最省。
例2 求平面 与椭球面 相交而成的椭圆的面积。 0=++ zyx 14
222
=++ zyx
解 椭圆的面积为 abπ ,其中 分别为椭圆的两个半轴,因为椭圆的中心在
原点,所以 分别是椭圆上的点到原点的最大距离与最小距离。
ba,
ba,
z
O y
x
图 12.7.1
于是,可以将问题表述为,求
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
λμ
λμ
λμ
将方程组中的第一式乘以 x ,第二式乘以 ,第三式乘以 后相加,再利用
和 得到
y z
0=++ zyx 14
222
=++ zyx
μ=++=
222
),,( zyxzyxf 。
请同学思考,从上式我们能得出什么结论?
答案:从方程组解出 μ ,如果只有二个解
1
μ 和
2
μ ,则它们就是该椭圆的半长
轴与半短轴的平方!
所以问题转化为求 μ 的值。
将以上方程组中的第一式乘以 μ41? ,第二式乘以 μ41? ,第三式乘以 μ?1 后
相加,得到
5
0)31(3 =? μλ 。
分两种情况:
( 1) 当 031 =? μ 时,得
3
1
=μ 。
( 2) 当 0=λ 时,原方程组就是
?
?
?
?
?
?
?
?
?
=?++
=++
=?
=?
=?
.014
,0
,0)41(
,0)1(
,0)1(
222
zyx
zyx
z
y
x
μ
μ
μ
此时 1=μ (否则从以上方程组的第一,第二和第四式得到 0=== zyx ,这不是
椭圆上的点)。
于是得到该椭圆的半长轴为 1,半短轴为
3
1
,面积为
3
π
。
许多实际问题并不需要完全解出方程组来求得最值,上述解法是一种常用的
方法,可以使解决问题的方法与计算简化。
例3 求函数 ( )在闭区域
上的最大值和最小值。
22
2),( cybxyaxyxf ++= 0,,;0
2
><? cbaacb
}1|),{(
22
≤+= yxyxD
解 首先考察函数 在 D 的内部 的极值,这是无条件极值
问题。为此解线性方程组
f }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(
22
>?=? bacfff
xyyyxx
0>
xx
f )0,0( f
0)0,0( =f 。
再考察函数 在 D 的边界 上的极值,这是条件极值问题。
为此作 Lagrange 函数
f }1|),{(
22
=+ yxyx
)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
λ
λ
6
非零解,因此系数行列式等于零,即
0)(
22
=?++? bacca λλ 。
解这个关于 λ 的方程,得到
[])(4)()(
2
1
22
baccaca ??+±+=λ
(注意根号中 )。 04)()(4)(
2222
>+?=??+ bcabacca
由于连续函数 在紧集 上必可取到最大值与最小值,因此
在 D 的边界上的最大值为
f }1|),{(
22
=+ yxyx
f
[])(4)()(
2
1
22
1
baccaca ??+++=λ ;
最小值为
)(4)()(
2
1
22
2
baccaca ??+?+=λ 。
再与 在 D 内部的极值f 0)0,0( =f 比较,就得到 在 D 上的最大值为 f
=λ }0,max{
1
[ ])(4)()(
2
1
22
baccaca ??+++ ;
最小值为
0}0,min{
2
=λ 。
例 4 设 ( )。求 n元函数 0,0 >>
i
aa ni ,,2,1 L=
n
a
n
aa
n
xxxxxxf LL
21
2121
),,,( =
在约束条件 (axxx
n
=+++ L
21
nix
i
,,2,1,0 L=> )下的最大值。
解 作辅助函数
nnnn
xaxaxaxxxfxxxg lnlnln),,,(ln),,,(
22112121
+++== LLL ,
因为函数 严格单调,所以只要考虑函数 uln g 的极值就可以得到 的极值。 f
作 Lagrange 函数
)(lnlnln
212211
axxxxaxaxaL
nnn
?+++?+++= LL λ 。
由极值的必要条件得到
?
?
?
?
?
=+++
==?=
?
?
.
,,,2,1,0
21
axxx
ni
x
a
x
L
n
i
i
i
L
Lλ
由前 个方程得到 n
λ
i
i
a
x = , ,再代入最后一个方程得到 ni ,,2,1 L=
a
aaa
n
+++
=
L
21
λ ,
所以
n
i
i
aaa
aa
x
+++
=
L
21
, ni ,,2,1 L= 。
于是 是函数 的唯一可能条件极值点。由于 ),,,(
21 n
xxx L g
7
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
=
?
?
?
?
?
?
?
?
??
?
×
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
L
O
MM
L
L λ
为负定矩阵, 由定理2可知 为),,,(
21 n
xxx L 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
L
L
L
L
。
特别地,当 1
21
====
n
aaa L 及 1=a 时, 的最大值为f
n
n
?
?
?
?
?
?
1
,即当
及1
21
=+++
n
xxx L ),,2,1(0 nix
i
L=> 时成立
n
n
n
xxx
?
?
?
?
?
?
≤
1
21
L 。
对于任意正数 ,只要令
n
yyy ,,,
21
L
n
i
i
yyy
y
x
+++
=
L
21
( ni ,,2,1 L= ),
就得到
n
n
i n
i
nyyy
y
?
?
?
?
?
?
≤
+++
∏
=
1
1 21
L
,
即
n
yyy
yyy
n
n
n
+++
≤
L
L
21
21
。
这就是熟知的平均值不等式。
4. 注意点
应用 Lagrange 乘数法求解条件极值问题,产生的方程组变量个数可能比较大,
似乎解这个方程组往往是很困难的。但注意我们可以利用变量之间的关系(也就
是问题给出的条件),找到解方程组的简便的方法,而不要用死板的方法去解方
程组。
8