拉格朗日乘子法简介
函数\(y=f(x)\)在平面直角坐标系中的图像是一条曲线
函数\(z=f(x,y)\)在空间直角坐标系中的图像是一个曲面
那么如何表示一个在空间直角坐标系中的图像是空间曲线的函数呢
这个时候就需要增加一个约束\(g(x,y)=0\)与原函数\(z=f(x,y)\)进行联立,将函数定义域限制在\(g(x,y)=0\)这个范围中。
可以发现,因为这个约束条件是一个关于\((x,y)\)的二元方程,所以\(g(x,y)=0\)在\((x,y)\)平面中表示一条曲线。
也就是约束\(g(x,y)=0\)在与原函数\(z=f(x,y)\)进行联立时,将原函数的定义域由二维降维到了一维。
其实,含有\(n-1\)个自变量的函数\(y=f(x_1,x_2,\cdots ,x_{n-1})\)在\(n\)维空间中的形状都是\(n-1\)维的,\(n\)维空间的剩下的一维表示因变量\(y\)。
而要想在\(n\)维空间表示一个\(n-1\)维、\(n-1\)维或者更低维度的函数图像,就需要像上文\(g(x,y)=0\)那样的关于原函数自变量的约束方程,对函数定义域的维度加以限制,每个约束会导致原函数的维度降低一维。
拉格朗日乘子法是一种用于在约束条件下寻找函数极值点的方法,这里的约束条件的含义是:在n维空间中,需要求解极值的函数维度是\(n-2\)维、\(n-3\)维等。
拉格朗日乘子法的实用价值在于可以在高维空间中存在多个约束条件的情况下求函数的极值。
使用拉格朗日乘子法求解极值问题的原理理解及一般步骤
拉格朗日乘子法的主要依据是:
- 极值点所在等高线(面、超平面)在定义域的投影与约束相切。
- 在等高线上的点的梯度与等高线垂直。
- 约束\(g(x,y)=0\)可以看作函数\(z=g(x,y)\)在\(z\)=0时的等高线。
- 因此函数\(z=f(x,y)\)的梯度与\(z=g(x,y)\)在极值点处的梯度共面,且这个面垂直于z轴。
- 第4条意味着:对\(z=g(x,y)\)在z轴方向上放缩,即\(z=k\cdot g(x,y)\),在极值点的梯度的变化范围只在这个面中。
- 因此,总可以找到一个\(k\)值,使\(z=k\cdot g(x,y)\)与\(z=f(x,y)\)共线。
- 梯度共线代表增长率相同,因此\(f(x,y)-k\cdot g(x,y)\)在极值点处的增长率为0
- 将\(-K\)写作\(\lambda \),并联立上述条件中的已知信息,即可大致理解拉格朗日乘子法的求解步骤。
单个约束的情况
求函数\(y=f(x_1,x_2,\cdots ,x_n)\)在约束条件\(g(x_1,x_2,\cdots ,x_n)=0\)下的极值
使用拉格朗日法求解的步骤如下:
(1)构建拉格朗日函数,将目标函数和约束结合成一个新的函数:\(F(x_1,x_2,\cdots ,x_n,\lambda)=f(x_1,x_2,\cdots ,x_n)+\lambda \cdot g(x_1,x_2,\cdots ,x_n)\)
(2)对\(F(x_1,x_2,\cdots ,x_n,\lambda)\)求偏导,并构建如下方程组:
$$\left\{\begin{aligned}\frac{\partial F}{\partial x_1} &= 0\\ \frac{\partial F}{\partial x_2} &= 0 \\ & \cdots \\ \frac{\partial F}{\partial x_n} &= 0 \\ \frac{\partial F}{\partial \lambda} &= 0 \end{aligned}\right.$$
(3)求解上面的方程组,即可求出\(x_1,x_2,\cdots ,x_n, \lambda\)的值,将解出来的自变量\(x_1,x_2,\cdots ,x_n\)代入原函数\(f(x_1,x_2,\cdots ,x_n)\)即可求出目标函数\(f(x_1,x_2,\cdots ,x_n\)的极值。
多个约束的情况
多个约束的构造函数如下:
$$F(x_1,x_2,\cdots ,x_n,\lambda)=f(x_1,x_2,\cdots ,x_n)+\lambda_1 \cdot g_1(x_1,x_2,\cdots ,x_n)+\lambda_2 \cdot g_2(x_1,x_2,\cdots ,x_n)+\cdots$$
之后的解法与单个约束的方法相同。
暂无评论内容