外观
Lesson 49 Lagrange 乘子法
约 3471 字大约 12 分钟
2025-4-25
最值问题
{f 的极值点}⊆critf. 问:对于 f 的临界点,我们如何判断是否是极值点?
回忆一元的情形,我们可以设 x0∈critf,有:
- 若 f′′(x0)>0 ⟹ x0 极小;
- 若 f′′(x0)<0 ⟹ x0 极大;
- 若 f′′(x0)=0 ⟹ Need more information.
推广至多元的情况,我们使用 Taylor 展开,比较 f(x0) & f(x0+h):
f(x0+h)=f(x0)+Jf(x0)h+21hTHf(x0)h+o(∣h∣2)
在临界点处,Taylor 公式的一次项消失,因为 ∂f(x0)=0. 所以我们判断的主体就是一个二次型,也就是判断:
f(x0+h)−f(x0)=21hTHf(x0)h+o(∣h∣2)
的正负.
回忆线性代数中的知识,对于对称方阵 A=[aij]i,j≤n,对应一个二次型:
Q(x1,⋯,xn)=(x1⋯xn)Ax1⋮xn=i∑j∑aijxixj=i∑aixi2+2i<j∑aiajxixj
/Definition/
称 Q (或者 A) 是正定的,若 ∀x=0 有 Q(x)>0;若 ∀x=0 有 Q(x)<0 则是负定的;若 Q≥0 是半正定的;若 Q≤0 是半负定的.
若上述几种情况均不满足,则是不定的.
/Theorem/
A 正定 ⟺ A 的所有特征值全正 ⟺ A 的所有顺序主子式全正,也即:
det(aij)1≤i≤k,1≤j≤k>0,∀1≤k≤n
A 半正定 ⟺ A 的所有特征值全非负
A 负定 ⟺ −A 正定,也即:
(−1)kdet(aij)1≤i≤k,1≤j≤k>0,∀1≤k≤n
不一定是全为负,而是要区分 k 的奇偶.
/Claim/
正定矩阵在小扰动下保持正定;负定矩阵在小扰动下保持负定,而半正 / 负定、不定的矩阵未必如此.
/Proof/
考虑参数空间 P,可以在其上定义一族矩阵,其间的对应映射为 A:P→Mn×n,满足 A(y) 是对称方阵. 设 A (映射) 连续,A(y0) 正定.
考虑 fk(y)=det[A(y) 的第 k 个顺序主子式],显然 fk 连续,且 1≤k≤n. 由 A(y0) 正定,知 fk(y0)>0,∀k.
取 fk(y0) 在 R+ 中的开邻域 Ik⊆R+,则 fk−1[Ik] 是 y0 在 P 中的开邻域.
令 U=k=1⋂nfk−1[Ik] 是 y0 的开邻域,且 ∀y∈U 有 fk(y)∈Ik,所以 fk(y)>0,∀k,这就证明了 A(y) 正定.
上面的证明太过于形式化,实际上更朴素的表达可以写成:
yy0⟶(detA(y)1⋯detA(y)n)⟶(+⋯+)
而 + 值的附近都是正值,于是得到周围的 A(y) 也正定.
“开条件”:若一个对象 P0 满足此条件,则 P0 中某个开邻域中的对象也皆如此.
/Theorem/
设 f∈C2,x0∈critf,则
- 若 Hf(x0) 正定,则 x0 是 f 的极小值点;
- 若 Hf(x0) 负定,则 x0 是 f 的极大值点;
- 若 Hf(x0) 不定,则 x0 不是 f 的极值点.
/Proof/
前两句相互等价,也比较好证明,最后一句有一点微妙.
我们先来证明 1.,等价于同时证明了 2.. 这里没办法用 Peano 余项,因为不确定余项的正负,用 Lagrange 余项:
由 Hf(x0) 正定,Hf(x0) 关于 x 连续 (f∈C2 导致的),得到 ∃Br(x0) 使得 ∀x∈Br(x0) 都有 Hf(x) 正定 (上面的命题导致的).
进而,∀x∈Br(x0),带 Lagrange 余项的 Taylor 公式是
f(x)=f(x0)+21(x−x0)THf(y)(x−x0)
但是 Hf(y) 在 Hf(x0) 附近,因此正定,所以上式 f(x)−f(x0)>0,得证.
对于 3. 的证明:Hf(x0) 不定,知道:
- ∃v∈Rn 使得 vTHf(x0)v>0;
- ∃w∈Rn 使得 wTHf(x0)w<0.
因此,考虑一个 v 决定的 path 上面 f 的改变:
t→0limt2f(x0+vt)−f(x0)=t→0limt221(vt)THf(x0)(vt)+o(∣v∣2t2)=21vTHf(x0)v>0
可知,∃r1 使得 ∀t∈(−r1,r1)∣{0} 有 [f(x0+vt)−f(x0)]/t2>0.
同理可以计算 w 决定的 path,在这条 path 附近的 f(x)<f(x0). 两个角度结合,就证明了 x0 不是 f 的极值点.
/Theorem/ (极值点的必要条件)
(这个定理在讲义里面忘记写了)
设 x0 是 C2 函数 f 的极小值点,则 Hf(x0) 半正定;若为极大值点,则 Hf(x0) 半负定.
充分条件和必要条件总结起来就是:
- x0 极小 ⟹ Hf(x0) 半正定;
- x0 极小 ⟸ Hf(x0) 正定.
/Proof/ (必要条件的证明)
实际上上面已经证明过一遍.
t→0limt2f(x0+vt)−f(x0)=21vTHf(x0)v
因为极限式中的分子和分母均 ≥0,因此极限非负,得证.
/Corollary/
若 x0 是 C2 函数 f 的极小值点,则:
∂xi2∂2f(x0)≥0,∀i
/Proof/
v=e^i,由上述定理,e^iTHf(x0)e^i≥0,直接写成分量就是:
∂xi2∂2f(x0)≥0,∀i
具体地,我们回到二元情况,设 f(x,y)∈C2,Hessian 的形式是
Hf(x0,y0)=(fxx(x0,y0)fyx(x0,y0)fxy(x0,y0)fyy(x0,y0))=(ABBC)
我们来仔细地刻画这个矩阵什么时候是正定的 / 负定的 / 不定的.
配方法:
Q=Ax2+2Bxy+Cy2=A(x+ABy)2+(C−AB2)y2
将 AC−B2 记作 Δ,得到
=A(x+ABy)2+AΔy2=C(y+CBx)2+CΔx2
这两式是对偶的. 讨论结果如下:
Δ>0 (A,C 同号) | Δ=0 (AC=B2≥0) | Δ<0 |
---|---|---|
A>0,Q 正定 | A>0,半正定 | A>0,不定 |
A<0,Q 负定 | A<0,半负定 | A<0,不定 |
/ | C>0,半正定;C<0,半负定;C=0,恒为零 | C>0,不定;C<0,不定;C=0,不定 |
总结起来,Δ>0 则定;Δ=0 则半定;Δ<0 则不定.
/Corollary/
设 (x0,y0)∈critf,A,B,C 定义如上,有:
- 若 A>0 且 Δ>0,则为极小值;
- 若 A<0 且 Δ>0,则为极大值;
- 若 Δ<0,则不是极值点.
虽然这个判断方式更加具体,但是概念上变得模糊了.
条件极值 / 最值
(带约束的最值问题)
问:要求 (x1,⋯,xn) 满足
⎩⎨⎧g1(x1,⋯,xn)=0⋯gk(x1,⋯,xn)=0
在此基础上,求 f 的最大值 (最小值).
因为我们之前刚刚讲过切空间的概念,因此这里先使用几何语言来处理. 记:
S=⎩⎨⎧(x1,⋯,xn)g1(x1,⋯,xn)=0⋯gk(x1,⋯,xn)=0⎭⎬⎫=(g1)−1(0)∩⋯∩(gk)−1(0)
(闭集 =(开集之补),任意多个闭集之交是闭集,有限个闭集之并是闭集) 可以证明,S 是 Rn 的闭集.
我们的目的是求 f 在 S 上的最值:
最值存在性?
若 S 有界 (需要具体验证) ⟹ S 紧致 ⟹ (最值定理) 存在最值.
“变分”:已知 f(a)≥f(x∈S),提醒我们若 y∈/S,则无法比较 f(a) & f(y).
∀S 上过点 a 的 path,P:(−ε,ε)→S,P(0)=a,有
f(a)≥f(p(t)),∀t∈(−ε,ε)
即 t=0 是 f(p(t)) 的极大值点. 由一元函数的 Fermat 定理,得到
0=dtdt=0f(p(t))=∇f(a)⋅p′(0)
/Claim/
若 a 是 f 在 S 上的最值点 (极值点),则有 ∇f(a)⊥TaS.
/Definition/
称 a∈S 是 f 的极大值点,若 ∃Br(a) 使得 ∀x∈Br(a)∩S 有 f(x)≤f(a) (f(a) 只需要比 S 上附近的 f(x) 要大就可以了).
/Theorem/ (Lagrange 乘子法)
若 a 是 f 在 S={g1=⋯=gk=0} 上的极值点,且 a 是 S 的光滑点,则:
∇f(a)∈span{∇g1(a),⋯,∇gk(a)}
亦即 ∃λ1,⋯,λk∈R 使得
∇f(a)=i=1∑kλi∇gi(a)
/Proof/
由命题,∇f(a)∈(TaS)⊥.
回忆若 a 是 S 的光滑点,则
TaS=(span{∇g1(a),⋯,∇gk(a)})⊥
所以取两次正交补,还原为原来的 span.
/Remark/
这个证明的好处在于把所有的困难都放在中间的 TaS,避免了大量的技术细节.
写出这些 λ:
⎩⎨⎧∂x1∂f(a)−λ1∂x1∂g1(a)−⋯−λk∂xk∂gk(a)=0⋯∂xn∂f(a)−λ1∂xn∂g1(a)−⋯−λk∂xn∂gk(a)=0−g1(a)=0⋯−gk(a)=0
我们发现这些方程可以更简单地写出,只需要引入 Lagrange 辅助函数:
L(x1,⋯,xn,λ1,⋯,λk)=f(x1,⋯,xn)−i=1∑kλigi(x1,⋯,xn)
则上述方程就是 L 的临界点方程.
/Theorem/
设有约束 g1(x1,⋯,xn)=⋯=gk(x1,⋯,xn)=0,设 a 是 f 在上述约束下的条件极值点 (即 a 是 f 在 S 上的极值点).
设 [∂jgi(a)]1≤i≤k,1≤j≤n 的秩为 k (满秩),则 ∃λ1,⋯,λk∈R,使得 (a1,⋯,an,λ1,⋯,λk) 是 Lagrange 辅助函数 L=f−∑λigi 的临界点.
/Remark/
满秩条件是必不可少的,但是微积分教材默认自动成立.
/Proof/ (另外的证明方法,隐函数定理)
只考虑 n=2,k=1 的情况,因为这个方法在一般情况下太难以计算. 这里 S={g(x,y)=0}.
设 a=(a1,a2) 是 f 在 S 上的条件极值点 (不妨假设是极大值). 由假设,(∂1g(a),∂2g(a))=(0,0),不妨假设 ∂2g(a)=0.
由隐函数定理,根据 g=0 可将 y 表示为隐函数 h(x),即 (x,h(x))∈S,∀x∈x0 的某个邻域 U.
⟹ f(x,h(x))≤f(x0,h(x0)),∀x∈U. 这表明 x=a1 是一元函数 f(x,h(x)) 的极大值点 (用隐函数将有约束换成无约束).
所以转化为一元问题,用 Fermat 定理:
0=dtda1f(x,h(x))=fx(a)−fy(a)gy(a)gx(a)
令 λ=fy(a)/gy(a),化为之前的形式,得证.
/Theorem/
实对称矩阵皆有特征根 (可正交对角化).
/Proof/
A=[aij],考虑 Q(x)=xTAx 在 Sn−1 上的最值.
用最值定理知必有最值点 v=(v1,⋯,vn),v 为 Q 在约束 g(x1,⋯,xn)=x12+⋯+xn2−1=0 下的条件极值点. 可以计算 ∇g=(2x1,⋯,2xn),由 Lagrange 乘子法,引入 λ 和 Lagrange 辅助函数:
L=xTAx−λ(x12+⋯+xn2−1)
而临界点方程就是:
Ax1⋮xn−λx1⋮xn=0
可知 v 正是 A 的特征向量. 同时可以知道 ∣∣x∣∣=1max(xTAx) 是最大特征值,min 是最小特征值.
下面来看一些例子.
/Example/
约束为
{x+y+z=0x2+y2+z2=1
求 x3+y3+z3=f(x,y,z) 的最值.
S 是一个圆周,显然 compact,f 在其上有最值点 a,Lagrange 辅助函数是:
L=x3+y3+z3−λ(x+y+z)−μ(x2+y2+z2−1)
所以方程有:
⎩⎨⎧0=∂x∂L=3x2−λ−2μx0=∂y∂L=3y2−λ−2μy0=∂z∂L=3z2−λ−2μz
剩下的是约束方程,一般在实际应用中不写,因为已经在条件里面给出了.
可以看出,a1,a2,a3 是同一个二次方程的两根,一定有两个相等,不妨设 a1=a2,直接用两个约束条件解得答案.
1944 年,Karush,Kuhn 和 Tucker 问:如果约束是不等式,那么怎么求条件极值?
/Theorem/ (KKT 定理)
设 D={g(x,y)≥0},已知 (x0,y0)∈D 是 f 在 D 上的极大值点,且 (x0,y0)∈∂D={g(x,y)=0}.
这个条件给出 (x0,y0) 在整个半空间中都是最大,因此强于 Lagrange 乘子法所要求的条件.
则 ∃λ≤0 使得 ∇f(x0,y0)=λ∇g(x0,y0). (给出了 λ 的符号)
提示
这是多年前的一道期中考试最后一题,但是当时应该没多少人做出来.——艾神
/Proof/
留作练习.
提示
因为我还有一分钟就要下课了,但是我还需要一点时间确定到底是 ≥0 还是 ≤0.——艾神