拉格朗日方法端到端算例(等式约束)
上级:lagrangian · 前置:lagrangian
一个有代表性的等式约束实例——只用拉格朗日乘数,不含不等式约束(所以没有互补松弛条件)。注意该方法一次性给出所有约束驻点:这里同时得到一个最小值和一个最大值。
问题。 在圆 h(x,y)=x²+y²−1=0 上求 f(x,y)=x+2y 的极值。几何上说:线性函数 x+2y 在保持落在单位圆上的前提下,能取到多远。
1. 拉格朗日函数与驻点条件
∇ₓL=0 给出 1+2λx=0、2+2λy=0 ⟹ x=−1/(2λ)、y=−1/λ;而 ∂L/∂λ=0 还原出约束 x²+y²=1。
2. 求解——两个驻点
代入约束:1/(4λ²)+1/λ²=1 ⟹ 5/(4λ²)=1 ⟹ λ=±√5/2。
λ=+√5/2:(x,y)=(−1/√5,−2/√5),f=−√5—— 最小值;λ=−√5/2:(x,y)=(+1/√5,+2/√5),f=+√5—— 最大值。
3. 几何校验
已知结果:在 ‖x‖=1 的约束下,min aᵀx 等于 −‖a‖,在 x=−a/‖a‖ 处取得。此处 a=(1,2),‖a‖=√5,于是 x*=−(1,2)/√5 ✓。在 x* 处,∇f=(1,2) 与 ∇h=(2x,2y) 平行(∇f=−λ∇h)——f 的水平线与圆相切。
4. 影子价格
将约束放松为 x²+y²=c。由缩放关系可得 p*(c)=−√(5c),于是 dp*/dc=−√5/(2√c)。在 c=1 处:=−√5/2=−λ。因此 ∂p*/∂c=−λ——乘数正是约束水平的边际价值,与一般情形下的推导完全一致。✓
含互补松弛条件的不等式版本 → kkt-worked-example。