第八节 多元函数的极值及其求法

一、多元函数的极值及最大值与最小值

定理1(必要条件)设函数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

此定理对应一元函数的费马引理:函数y=f(x)x=x_0的某个邻域内有定义,且在x=x_0处有极值,则f_{}^{'}(x_0)=0

定理2(充分条件)设函数z=f(x,y)在点(x_0,y_0) 的某邻域内有连续且有一阶及二阶连续偏导数,又f_{x}^{'}(x_0,y_0)=0f_{y}^{'}(x_0,y_0)=0,令

f_{xx}^{'}(x_0,y_0)=A ,f_{xy}^{'}(x_0,y_0)=Bf_{yy}^{'}(x_0,y_0)=C,则f(x,y)(x_0,y_0)处是否取得极值的条件如下:

        (1)\Delta =AC-B^2>0  时具有极值,且当A>0时有极小值,当A<0时有极大值 (大小小大);

        (2)\Delta =AC-B^2<0 时没有极值;

        (3)\Delta =AC-B^2=0时可能有极值,也可能没有极值。

         例如:f(x,y)=x^2+y^2 在 (0,0) 处有极小值,而f(x,y)=x^3+y^3在 (0,0) 处就

                   没有极值。

对于具有二阶连续偏导数的函数 z=f(x,y)的极值求法:

        (1)解方程组                f_{x}^{'}(x_0,y_0)=0f_{y}^{'}(x_0,y_0)=0        求驻点(对每个未知数的偏导数都为0的点)

        (2)对于每一个驻点(x_0,y_0)求出二阶偏导数 A B C 的值。

        (3)根据\Delta的符号,再按照定理2来判定(x_0,y_0)是不是极值点、是极大值点还是极小值点。

如果函数在个别点的偏导数不存在,这些点虽不是驻点,但可能是极值点。因此,在求函数的极值的时候,除了考虑函数的驻点外,还应考虑偏导数不存在的点。

最值产生于边界值和极值,只要找出极值,再找出边界值的最值,便可取出函数的最大最小值。

二、条件极值  拉格朗日乘数法

        在(一)中讨论的都是无条件极值,但在实际生活中的问题多数是对自变量加有条件的,这时我们便使用拉格朗日乘数法

        证明过程省略······

        引进辅助函数 L(x,y,\lambda )=f(x,y)+\lambda\varphi(x,y)                   f(x,y)为函数   \varphi (x,y)为约束条件

                这时L(x,y,\lambda)分别对x,y,\lambda 求偏导数   令这些偏导数都等于0,求出来点坐标。

                至于求出来的点是不是极值点,在实际问题中往往根据问题本身的性质来判定。

注:本文大部分内容来源于同济版高等数学 第七版下册。

本文加入了本人的少许理解,难免有所疏漏和错误,还请读者指出。

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
好的,针对您的问题,我可以给出以下 Matlab 代码实现: 假设有多元函数 $f(x_1,x_2,\cdots,x_n)$,同时有 $m$ 个约束条件 $g_i(x_1,x_2,\cdots,x_n)=0$,则可以通过拉格朗日乘数法解其条件极值。 具体地,我们构造拉格朗日函数: $$L(x_1,x_2,\cdots,x_n,\lambda_1,\lambda_2,\cdots,\lambda_m)=f(x_1,x_2,\cdots,x_n)+\sum_{i=1}^m\lambda_i g_i(x_1,x_2,\cdots,x_n)$$ 其中 $\lambda_i$ 是拉格朗日乘数。然后,我们解以下方程组: $$\begin{cases}\dfrac{\partial L}{\partial x_1}=0\\\dfrac{\partial L}{\partial x_2}=0\\\vdots\\\dfrac{\partial L}{\partial x_n}=0\\\dfrac{\partial L}{\partial \lambda_1}=0\\\dfrac{\partial L}{\partial \lambda_2}=0\\\vdots\\\dfrac{\partial L}{\partial \lambda_m}=0\end{cases}$$ 得到 $n+m$ 个方程,解出 $n+m$ 个未知数 $x_1,x_2,\cdots,x_n,\lambda_1,\lambda_2,\cdots,\lambda_m$,即可得到条件极值点。 下面是 Matlab 代码实现: ```matlab syms x y lambda; f = x^2 + y^2; % 定义多元函数 g = x + y - 1; % 定义约束条件 L = f + lambda * g; % 构造拉格朗日函数 eq1 = diff(L, x) == 0; % 解偏导数为 0 的方程组 eq2 = diff(L, y) == 0; eq3 = diff(L, lambda) == 0; [xSol, ySol, lambdaSol] = solve([eq1, eq2, eq3], [x, y, lambda]); % 解方程组 xSol % 输出 x 的解 ySol % 输出 y 的解 lambdaSol % 输出 lambda 的解 ``` 以上代码中,我们以 $f(x,y)=x^2+y^2$,$g(x,y)=x+y-1$ 为例,解其条件极值点。运行代码后,可以得到以下结果: ``` xSol = 1/2 - lambdaSol/2 ySol = 1/2 - lambdaSol/2 lambdaSol = 1/2 ``` 因此,条件极值点为 $(\frac{1}{2},\frac{1}{2})$。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值