您的位置:首页 > 其它

求约束条件下极值的拉格朗日乘子法

2016-10-23 13:29 846 查看
学过中学数学的都知道,对于无约束条件的函数求极值,主要利用导数求解法。
例如求解函数f(x,y)=x3-4x2+2xy-y2+1的极值。步骤如下:

(1)求出f(x,y)的一阶偏导函数f’x(x,y),f’y(x,y)。

f’x(x,y) = 3x2-8x+2y

f’y(x,y) = 2x-2y

(2)令f’x(x,y)=0,f’y(x,y)=0,解方程组。

3x2-8x+2y = 0

2x-2y = 0

得到解为(0,0),(2,2)。这两个解是f(x,y)的驻点。

(3)求出f(x,y)的二阶偏导函数f’’xx(x,y),f’’xy(x,y),f’’yy(x,y)。

f’’xx(x,y) = 6x-8

f’’xy(x,y) = 2

f’’yy(x,y) = -2

(4)确定驻点处的二阶导数值及判断相关符号。

根据二元函数极值存在定理(见后面的附注):

A=f’’xx(0,0) = -8,B=f’’xy(0,0)=2,C=f’’yy(0,0)= -2

B2-AC=-12,所以(0,0)是极大值点,极大值为f(0,0)=1

A=f’’xx(2,2) = 4,B=f’’xy(2,2)=2,C=f’’yy(2,2)= -2

B2-AC=12,(2,2)不是极值点。

(5)因此f(x,y)=x3-4x2+2xy-y2+1的极大值为1

 

       那么对于有约束条件的函数怎样求极值呢?还是上面的函数f(x,y)=x3-4x2+2xy-y2+1,在约束条件x+y=7下极值?

拉格朗日乘子法就是求有约束条件的函数极值问题的方法。主要思想是将约束条件函数与原函数联系到一起,使能配成与变量数量相等的等式方程,从而求出得到原函数极值的各个变量的解。其一般描述为:

 




目标函数:f(x,y) 

约束条件:g(x,y)=0 

求解f(x,y)在约束条件g(x,y)=0下的极值。 

定义拉格朗日函数 : 

L(x,y,λ) = f(x,y)+ λ·g(x,y) 

L(x,y,λ)分别对x,y,λ求偏导数,令偏导数为零。



求出x,y,λ的值,代入f(x,y) 即可得到目标函数的极值。

       举个实际应用中的例子:要设计一款箱子,其容积(体积)有限定,如27升(即27000立方厘米),求其表面积的极值?

 


使用数学表达式就是:箱子长、宽、高分别为x,y,z,单位为厘米,表面积函数为f(x,y,z)=2xy+2xz+2yz,求f(x,y,z)在约束条件g(x,y,z)=xyz-27000=0下的极值?

   (1)定义拉格朗日函数: 

L(x,y,z,λ)=f(x,y,z)+ λ·g(x,y,z)=2xy+2xz+2yz+ λ·(xyz-27000)

   (2)L(x,y,z,λ)分别对x,y,z,λ求偏导数,令偏导数为零:

2y+2z+λyz=0,2x+2z+λxz=0,2x+2y+λxy=0,xyz-27000=0

(3)求出x,y,z,λ的值:

联立方程,得到x=y=z=30,λ=-2/15

代入f(x,y,z) 即可得到目标函数的极值为f(30,30,30)=2*30*30+2*30*30+2*30*30=5400平方厘米。这个是极值,但还不知道是极大值还是极小值,用满足xyz=27000的另一组数,x=30,y=15,z=60计算下,f(30,15,60)=6300平方厘米。

所以f(30,30,30)=5400平方厘米是极小值,即箱子体积一定的情况下(27000立方厘米),x=y=z=30时,表面积最小。

 

       再举个吴军在《数学之美》中的例子:2014年世界杯决赛圈32强,谁夺得冠军的信息熵为:

H=-(p1·logp1+p2·logp2+...p32·logp32)

其中,p1,p2,...,p32分别是这32强球队夺冠的概率。



吴军在书中给出H的值不可能大于5,即H≤5,但没有给出证明。

这里利用拉格朗日乘子法证明下:

根据概率论,p1+p2+...+p32=1。这就是约束条件。

目标函数:f(p1,p2,...,p32)=-(p1·logp1+p2·logp2+...p32·logp32)

约束条件:g(p1,p2,...p32)=p1+p2+...+p32-1=0

   (1)定义拉格朗日函数: 

L(p1,p2,...,p32,λ)=-(p1·logp1+p2·logp2+...p32·logp32)+ λ·(p1+p2+...+p32-1)

   (2)L(p1,p2,...,p32,λ)分别对p1,p2,...,p32,λ求偏导数,令偏导数为零:

    λ-log(e·p1)=0

    λ-log(e·p2)=0

    ......

    λ-log(e·p32)=0

    p1+p2+...+p32-1=0

(4)求出p1,p2,...,p32的值:

联立方程,得到p1=p2=...=p32=1/32

代入f(p1,p2,...,p32) 即可得到目标函数的极值为f(1/32,1/32,...1/32)=-((1/32)·log(1/32)+(1/32)·log(1/32)+...(1/32)·log(1/32))=-log(1/32)=log32=5

 

  

附:二元函数极值判定条件

(x0,y0)为驻点,设f’’xx(x0,y0) = A,f’’xy(x0,y0) = B,f’’yy(x0,y0) = C。则:

 

B2-AC
f(x0,y0)
< 0
A < 0
极大值
A > 0
极小值
> 0
非极值
=0
不定
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: