[ML Notes] 拉格朗日函数:推导过程
Contents [show]
1. 推导过程
以二元函数为例,要寻找 f(x,y) 在约束条件 g(x,y)=0 下的极值,如
minf(x,y)s.t.g(x,y)=0
假设 f(x,y) 在 (x0,y0) 处取得极值,则有
g(x0,y0)=0
假设在 (x0,y0) 的某一邻域内 f(x,y) 和 g(x,y) 都有连续的一阶偏导数,且 gy(x0,y0)≠0,由隐函数存在定理可知,g(x,y) 确定一个连续且具有连续导数的函数 y=ϕ(x),此时 f(x,y) 变为变量 x 的函数
z=f(x,ϕ(x))
由 f(x,y) 在 (x0,y0) 处取得极值,有
dzdx|x=x0=fx(x0,y0)+fy(x0,y0)dydx|x=x0=0
由式 (2) 和隐函数求导公式,有
dydx|x=x0=–gx(x0,y0)gy(x0,y0)
将式 (4) 代入式 (3),得到
fx(x0,y0)–fy(x0,y0)gx(x0,y0)gy(x0,y0)=0
记
fy(x0,y0)gy(x0,y0)=−λ
将式 (6) 代入式 (5),得到
fx(x0,y0)+λgx(x0,y0)=0
由式 (5) 本身,有
fy(x0,y0)+λgy(x0,y0)=0
引进辅助函数
L(x,y)=f(x,y)+λg(x,y)
其中 L(x,y) 称为拉格朗日函数,λ 称为拉格朗日乘子。
结合拉格朗日函数,式 (7)、(8)、(2) 构成方程组
{fx(x0,y0)+λgx(x0,y0)=0fy(x0,y0)+λgy(x0,y0)=0g(x,y)=0
求解上述方程组,即可得到 x0、y0 和 λ。
2. 拉格朗日乘数法
要找函数 z=f(x,y) 在附加条件 g(x,y)=0 下的可能极值点,可以先作拉格朗日函数
L(x,y)=f(x,y)+λg(x,y)
其中 λ 为参数。求其对 x 和 y 的一阶偏导数并使之为零,然后与约束条件 g(x,y)=0 联立起来
{fx(x0,y0)+λgx(x0,y0)=0fy(x0,y0)+λgy(x0,y0)=0g(x,y)=0
由该方程组解出 x、y 和 λ,由此得到的 (x,y) 就是函数 f(x,y) 在附加条件 g(x,y)=0 下的可能的极值点。
对于有多个自变量的场景,如要求函数
u=f(x,y,z,t)
在附加条件
g(x,y,z,t)=0h(x,y,z,t)=0
下的极值,可以先作拉格朗日函数
L(x,y,z,t)=f(x,y,z,t)+λg(x,y,z,t)+μh(x,y,z,t)
其中 λ、μ 均为参数。求上式的一阶偏导数并使之为零,与两个约束条件联立求解即可。
隐函数存在定理 设函数 F(x,y) 在点 (x0,y0) 的某一邻域内具有连续偏导数,且 F(x0,y0)=0,Fy(x0,y0)≠0,则方程 F(x,y)=0 在点 (x0,y0) 的某一邻域内恒能唯一确定一个连续且具有连续导数的函数 y=f(x),它满足条件 y0=f(x0),并有
dydx=–FxFy