拉格朗⽇乘数法是⽤于求条件极值的⽅法。对于条件极值,通常是将条件⽅程转换为单值函数,再代⼊待求极值的函数中,从⽽将问题转化为⽆条件极值问题进⾏求解。但是如果条件很复杂不能转换,就要⽤到拉格朗⽇乘数法了。拉格朗⽇乘数法使⽤条件极值的⼀组必要条件来求出⼀些可能的极值点(不是充要条件,说明求出的不⼀定是极值,还需要验证)。 如寻求函数
z=f(x,y)
在条件
φ(x,y)=0
下取得极值的必要条件。
如果在(x0,y0)下取得z的极值,则⾸先应该有:
φ(x0,y0)=0
另外,假定在(x0,y0)的某⼀领域内f(x,y)与φ(x,y)均有连续的⼀阶偏导数(没有连续导数让导数为0求极值就没有意义φx(x,y)dy
φ(x,y)
了),并且φy(x0,y0)≠0。由隐函数存在定理(对于z=φ(x,y)若∃φy(x,y)≠0与φx(x,y)则dx=−y)可知,条件⽅程φ(x,y)=0在(x0,y0)某领域确定具有连续偏导数的函数y=ψ(x),代⼊z得:
z=f[x,ψ(x)]
于是这个极值可以直接由⼀个变量x来确定,由⼀元可导函数取极值必要条件得:
dz
dx
即:
φx(x0,y0)
fx(x0,y0)−fy(x0,y0)
fy(x0,y0)
设
φy(x0,y0)
=−λ。
φy(x0,y0)
=0
dy
=fx(x0,y0)+fy(x0,y0)dx
|x=x0
|x=x0
=0
为什么要这么设呢?我觉得是因为它本⾝就是未知的,但⼜不是完全未知,是两个偏导数之商,在这⾥⾯⾸先不容易计算,其次这个偏导数商的条件也没什么⽤,因此就直接设为完全未知的参数λ了。
结合以上可以获得条件极值(x0,y0)应该满⾜的必要条件(第⼆⾏式⼦直接代⼊λ可以发现就等于0):
{ 为了⽅便表达,引⼊辅助函数 必要条件就变成
fx(x0,y0)+λφx(x0,y0)=0fy(x0,y0)+λφy(x0,y0)=0φ(x0,y0)=0
L(x,y)=f(x,y)+λφ(x,y)
{Lx(x0,y0)=0Ly(x0,y0)=0Lλ(x0,y0)=0
于是通过这个联⽴式求得的(x,y)就是可能的条件极值点。当然,是在(x,y)的某领域内有连续偏导数的假设下。 对于多维情况(⾃变量多于2个,条件多于1个),如求
u=f(x,y,z,t)
在附加条件
φ(x,y,z,t)=0,ψ(x,y,z,t)=0
下的极值。作类似的辅助函数(拉格朗⽇函数)
L(x,y,z,t)=f(x,y,z,t)+λφ(x,y,z,t)+µψ(x,y,z,t)
其中λ,µ都为参数,求它的偏导数的联⽴⽅程即可:
{Processing math: 100%Lx(x,y,z,t)=0Ly(x,y,z,t)=0Lz(x,y,z,t)=0Lt(x,y,z,t)=0Lλ(x,y,z,t)=0Lµ(x,y,z,t)=0
因篇幅问题不能全部显示,请点此查看更多更全内容