多元函数极值(微分法的应用)
初三用小号写的总结。
搬到大号来。
搬过来的时候删掉了涉及到大量微积分和线性代数的证明和拓展。
只留下简单实用的东西。
文章长度直接变成原来的五分之一。
一、无约束下多元函数求极值
1、极值的定义
这里以二元函数为例。
设函数
z = f(x , y) 的定义域为D ,P_0(x_0 , y_0) 为D 的内点,若存在P_0 的某个领域U(P_0) \subset D , 使得该领域内异于P_0 的任何点(x , y) 都有f(x_0 , y_0) > f(x , y) 则称函数
f(x , y) 在点(x_0 , y_0) 有极大值f(x_0 , y_0) , 点(x_0 , y_0) 称为函数f(x , y) 的极大值点;若对于该领域内异于任何点
(x , y) 都有f(x_0 , y_0) < f(x , y) 则称函数
f(x , y) 在点(x_0 , y_0) 有极小值f(x_0 , y_0) , 点(x_0 , y_0) 称为函数f(x , y) 的极小值点。
可以推广到多元,只需改变一下定义即可。
2、定理(必要条件)
设函数
z = f(x , y) 在点(x_0 , y_0) 处有偏导数,且在点(x_0 , y_0) 处有极值 , 则f_x(x_0 , y_0) = 0 , f_y(x_0 , y_0) = 0 。
从几何角度上看,此时点
类似于一元函数,我们称使得
3、定理(充分条件)
设函数
z = f(x ,y) 在点(x_0, y_0) 的某领域内连续且有一阶及二阶连续偏导数,又f_x(x_0 , y_0) = 0 , f_y(x_0 , y_0) = 0 ,令f_{xx}(x_0 , y_0) = A , f_{xy}(x_0 , y_0) = B , f_{yy}(x_0 , y_0) = C 则
f(x , y) 在(x_0 , y_0) 处是否取得极值的条件如下:
实际上此处
(用行列式考虑)。
推广至多元函数:
构造函数的 Hessian 矩阵:
能否取得极值的条件如下:
当函数的 Hessian 矩阵正定时,函数取到最小值。
当函数的 Hessian 矩阵负定时,函数取到最大值。
当函数的 Hessian 矩阵不定时不取极值。
当函数的 Hessian 矩阵半正定或者半负定时不能判断。
4、解决无约束下多元函数极值问题的一般步骤
解
\frac{\partial f}{\partial x} = 0\\ \frac{\partial f}{\partial y} = 0\\ \end{cases} ,求出所有驻点。
代入每一个驻点比较其函数值。
对每个驻点,求其对应的二阶偏导数值(也就是求
确定每一个驻点对应的
AC - B^2 的符号,结合第二个定理来判定。
(如果嫌麻烦的话,一般情况下,第三步和第四步可以省略)
(注意考虑边界情况,极值点不一定是驻点)
5、简单的例题
求二元函数
f(x , y) = x^2 - 3xy - y^2 + 2y 的最小值。
令
解得唯一驻点
将其代入原函数,则原函数的最小值为
由于该函数在定义域内连续且处处有偏倒数,故不用考虑边界情况。
二、约束下多元函数求极值
1、拉格朗日定理
函数
f 和g 拥有连续的一阶偏导,使得f 在光滑曲线g(x , y) = c 上一点(x_0 , y_0) 存在一个极值。如果\nabla g(x , y) \neq 0 , 则存在一个实数\lambda 使得\nabla f(x_0 , y_0) = \lambda \nabla g(x_0 , y_0) 。这个实数\lambda 称为拉格朗日乘子。
(
换句话说,就是两个曲线的梯度向量平行时,两曲线相切(显然极值在两曲线相切时取得)。
拉格朗日定理给出了拉格朗日乘子存在的必要条件。
2、拉格朗日乘数法
在数学最优问题中,拉格朗日乘数法是一种寻找变量受一个或多个条件所限制的多元函数的极值的方法。这种方法将一个有
一般流程(以二元函数为例):
函数
f 与g 满足拉格朗日定理,并且函数f 在约束条件g(x , y) = 0 下存在最大值或者最小值。 现在通过下列步骤确定f :
通过求解下列方程组来同时对
\nabla f(x_0 , y_0) = \lambda \nabla g(x_0 , y_0) 和g(x , y) = 0 进行求解。用第一步中计算出的每一个驻点分别计算
f 得出f_{max} 或f_{min} ,用 Hessian 矩阵验证其是否为最大值或最小值。
不难发现求解 $\begin{cases} \nabla f(x_0 , y_0) = \lambda \nabla g(x_0 , y_0)\ g(x , y) = 0\ \end{cases}