拉格朗日乘子法
如何求极值?
- 给定函数:z=f(x,y)z=f(x, y)z=f(x,y),如何求其极值点?
- 简单来说,直接求它的偏导即可,满足以下条件的点即为极值点候选:
fx(x,y)=0,fy(x,y)=0f_{x}(x, y)=0, f_{y}(x, y)=0fx(x,y)=0,fy(x,y)=0
约束条件下的极值问题
现在问题难度加大:若函数存在约束条件,该如何求极值?
示例:已知长方体表面积固定,求其体积最大值。
- 体积函数(目标函数):V(x,y,z)=xyzV(x,y,z)=xyzV(x,y,z)=xyz
- 表面积约束条件:2xy+2yz+2zx=S2xy + 2yz + 2zx = S2xy+2yz+2zx=S(SSS为固定表面积)
拉格朗日乘子法的核心原理
问题本质
- 若将目标函数z=f(x,y)z=f(x, y)z=f(x,y)看作“山峰的高度”,约束条件g(x,y)=Cg(x, y)=Cg(x,y)=C(CCC为常数)看作“镶嵌在山上的一条曲线”,则问题转化为:找到曲线上的最低点(或最高点)。
关键条件:法向量平行
曲线g(x,y)=Cg(x,y)=Cg(x,y)=C上的极值点,需满足目标函数的梯度与约束函数的梯度平行,即:
∇f(x,y)=−λ∇g(x,y)\nabla f(x, y)=-\lambda \nabla g(x, y)∇f(x,y)=−λ∇g(x,y)
其中:
- ∇\nabla∇为梯度算子(∇f=(∂f∂x,∂f∂y)\nabla f = \left( \frac{\partial f}{\partial x}, \frac{\partial f}{\partial y} \right)∇f=(∂x∂f,∂y∂f)),
- λ\lambdaλ为拉格朗日乘数(非零常数)。
等价变形
由∇f(x,y)=−λ∇g(x,y)\nabla f(x, y)=-\lambda \nabla g(x, y)∇f(x,y)=−λ∇g(x,y)可推得:
∇(f(x,y)+λg(x,y))=0\nabla(f(x, y)+\lambda g(x, y))=0∇(f(x,y)+λg(x,y))=0
约束极值的求解步骤
以“二元函数z=f(x,y)z=f(x, y)z=f(x,y)在约束条件φ(x,y)=0\varphi(x, y)=0φ(x,y)=0下的极值”为例:
-
构造拉格朗日函数
引入拉格朗日乘数λ\lambdaλ,构造新函数:
F(x,y)=f(x,y)+λφ(x,y)F(x, y)=f(x, y)+\lambda \varphi(x, y)F(x,y)=f(x,y)+λφ(x,y) -
求解偏导方程组
对F(x,y)F(x,y)F(x,y)分别求关于xxx、yyy的偏导,并结合约束条件,联立方程组:
{fx(x,y)+λφx(x,y)=0,fy(x,y)+λφy(x,y)=0,φ(x,y)=0\begin{cases} f_{x}(x, y)+\lambda \varphi_{x}(x, y)=0, \\ f_{y}(x, y)+\lambda \varphi_{y}(x, y)=0, \\ \varphi(x, y)=0 \end{cases}⎩⎨⎧fx(x,y)+λφx(x,y)=0,fy(x,y)+λφy(x,y)=0,φ(x,y)=0 -
确定极值点
解上述方程组,得到的(x,y)(x, y)(x,y)即为目标函数在约束条件下的极值点候选。
多自变量与多约束条件下的拉格朗日乘子法
当自变量多于2个且约束条件多于1个时,方法可直接推广:
问题场景
- 目标函数:u=f(x,y,z,t)u=f(x, y, z, t)u=f(x,y,z,t)(4个自变量)
- 约束条件:φ(x,y,z,t)=0\varphi(x, y, z, t)=0φ(x,y,z,t)=0、ψ(x,y,z,t)=0\psi(x, y, z, t)=0ψ(x,y,z,t)=0(2个约束)
求解步骤
-
构造拉格朗日函数
引入2个拉格朗日乘数λ1\lambda_1λ1、λ2\lambda_2λ2,构造函数:
F(x,y,z,t)=f(x,y,z,t)+λ1φ(x,y,z,t)+λ2ψ(x,y,z,t)F(x, y, z, t)=f(x, y, z, t)+\lambda_1 \varphi(x, y, z, t)+\lambda_2 \psi(x, y, z, t)F(x,y,z,t)=f(x,y,z,t)+λ1φ(x,y,z,t)+λ2ψ(x,y,z,t) -
求解偏导方程组
对F(x,y,z,t)F(x,y,z,t)F(x,y,z,t)分别求关于xxx、yyy、zzz、ttt的偏导,并结合两个约束条件,联立方程组,解出的(x,y,z,t)(x, y, z, t)(x,y,z,t)即为极值点候选。
实例分析
实例1:三元函数的约束最大值
问题
已知函数u=x3y2zu=x^3 y^2 zu=x3y2z,约束条件为x+y+z=12x + y + z = 12x+y+z=12(x,y,z>0x, y, z > 0x,y,z>0),求uuu的最大值。
求解过程
-
构造拉格朗日函数
约束条件变形为φ(x,y,z)=x+y+z−12=0\varphi(x,y,z)=x + y + z - 12 = 0φ(x,y,z)=x+y+z−12=0,构造函数:
F(x,y,z)=x3y2z+λ(x+y+z−12)F(x, y, z)=x^3 y^2 z + \lambda(x + y + z - 12)F(x,y,z)=x3y2z+λ(x+y+z−12) -
求偏导并联立方程
分别对xxx、yyy、zzz求偏导并令其为0,结合约束条件:
{Fx=3x2y2z+λ=0,Fy=2x3yz+λ=0,Fz=x3y2+λ=0,x+y+z=12\begin{cases} F_x = 3x^2 y^2 z + \lambda = 0, \\ F_y = 2x^3 y z + \lambda = 0, \\ F_z = x^3 y^2 + \lambda = 0, \\ x + y + z = 12 \end{cases}⎩⎨⎧Fx=3x2y2z+λ=0,Fy=2x3yz+λ=0,Fz=x3y2+λ=0,x+y+z=12 -
求解极值点与最大值
解方程组得唯一驻点(6,4,2)(6, 4, 2)(6,4,2),代入目标函数得最大值:
umax=63⋅42⋅2=6912u_{max}=6^3 \cdot 4^2 \cdot 2 = 6912umax=63⋅42⋅2=6912
实例2:椭球面切平面与最小体积四面体
问题
在第一卦限内作椭球面x2a2+y2b2+z2c2=1\frac{x^2}{a^2}+\frac{y^2}{b^2}+\frac{z^2}{c^2}=1a2x2+b2y2+c2z2=1的切平面,使切平面与三个坐标面所围成的四面体体积最小,求切点坐标。
求解过程
-
设切点与切平面方程
设椭球面上的切点为P(x0,y0,z0)P(x_0, y_0, z_0)P(x0,y0,z0)(x0>0,y0>0,z0>0x_0 > 0, y_0 > 0, z_0 > 0x0>0,y0>0,z0>0)。
令F(x,y,z)=x2a2+y2b2+z2c2−1F(x, y, z)=\frac{x^2}{a^2}+\frac{y^2}{b^2}+\frac{z^2}{c^2}-1F(x,y,z)=a2x2+b2y2+c2z2−1,则FFF在PPP点的偏导为:
Fx′∣P=2x0a2F_x'|_P = \frac{2x_0}{a^2}Fx′∣P=a22x0,Fy′∣P=2y0b2F_y'|_P = \frac{2y_0}{b^2}Fy′∣P=b22y0,Fz′∣P=2z0c2F_z'|_P = \frac{2z_0}{c^2}Fz′∣P=c22z0。过PPP点的切平面方程为:
x0a2(x−x0)+y0b2(y−y0)+z0c2(z−z0)=0\frac{x_0}{a^2}(x - x_0) + \frac{y_0}{b^2}(y - y_0) + \frac{z_0}{c^2}(z - z_0) = 0a2x0(x−x0)+b2y0(y−y0)+c2z0(z−z0)=0结合椭球面方程x02a2+y02b2+z02c2=1\frac{x_0^2}{a^2}+\frac{y_0^2}{b^2}+\frac{z_0^2}{c^2}=1a2x02+b2y02+c2z02=1,化简切平面方程为:
x⋅x0a2+y⋅y0b2+z⋅z0c2=1\frac{x \cdot x_0}{a^2} + \frac{y \cdot y_0}{b^2} + \frac{z \cdot z_0}{c^2} = 1a2x⋅x0+b2y⋅y0+c2z⋅z0=1 -
求切平面在坐标轴上的截距
切平面与xxx、yyy、zzz轴的截距分别为:
x=a2x0x = \frac{a^2}{x_0}x=x0a2,y=b2y0y = \frac{b^2}{y_0}y=y0b2,z=c2z0z = \frac{c^2}{z_0}z=z0c2 -
确定目标函数(四面体体积)
切平面与三个坐标面围成的四面体体积为:
V=16⋅x⋅y⋅z=a2b2c26x0y0z0V = \frac{1}{6} \cdot x \cdot y \cdot z = \frac{a^2 b^2 c^2}{6 x_0 y_0 z_0}V=61⋅x⋅y⋅z=6x0y0z0a2b2c2由于a2b2c2a^2 b^2 c^2a2b2c2、666为常数,最小化VVV等价于最大化x0y0z0x_0 y_0 z_0x0y0z0,故可令目标函数为u=lnx0+lny0+lnz0u = \ln x_0 + \ln y_0 + \ln z_0u=lnx0+lny0+lnz0(对数函数单调递增,最大化uuu即最大化x0y0z0x_0 y_0 z_0x0y0z0)。
-
构造拉格朗日函数并求解
约束条件为x02a2+y02b2+z02c2−1=0\frac{x_0^2}{a^2}+\frac{y_0^2}{b^2}+\frac{z_0^2}{c^2}-1 = 0a2x02+b2y02+c2z02−1=0,构造拉格朗日函数:
L(x0,y0,z0)=lnx0+lny0+lnz0+λ(x02a2+y02b2+z02c2−1)L(x_0, y_0, z_0) = \ln x_0 + \ln y_0 + \ln z_0 + \lambda\left( \frac{x_0^2}{a^2} + \frac{y_0^2}{b^2} + \frac{z_0^2}{c^2} - 1 \right)L(x0,y0,z0)=lnx0+lny0+lnz0+λ(a2x02+b2y02+c2z02−1)对x0x_0x0、y0y_0y0、z0z_0z0求偏导并令其为0,结合约束条件:
{Lx0′=1x0+λ⋅2x0a2=0,Ly0′=1y0+λ⋅2y0b2=0,Lz0′=1z0+λ⋅2z0c2=0,x02a2+y02b2+z02c2=1\begin{cases} L_{x_0}' = \frac{1}{x_0} + \lambda \cdot \frac{2x_0}{a^2} = 0, \\ L_{y_0}' = \frac{1}{y_0} + \lambda \cdot \frac{2y_0}{b^2} = 0, \\ L_{z_0}' = \frac{1}{z_0} + \lambda \cdot \frac{2z_0}{c^2} = 0, \\ \frac{x_0^2}{a^2} + \frac{y_0^2}{b^2} + \frac{z_0^2}{c^2} = 1 \end{cases}⎩⎨⎧Lx0′=x01+λ⋅a22x0=0,Ly0′=y01+λ⋅b22y0=0,Lz0′=z01+λ⋅c22z0=0,a2x02+b2y02+c2z02=1解方程组得切点坐标:
x0=a3x_0 = \frac{a}{\sqrt{3}}x0=3a,y0=b3y_0 = \frac{b}{\sqrt{3}}y0=3b,z0=c3z_0 = \frac{c}{\sqrt{3}}z0=3c
最终结论
使四面体体积最小的切点坐标为:(a3,b3,c3)\left( \frac{a}{\sqrt{3}}, \frac{b}{\sqrt{3}}, \frac{c}{\sqrt{3}} \right)(3a,3b,3c)