先摆公式,再说推导。

求二元函数z=f(x,y)z=f(x,y)z=f(x,y)在条件φ(x,y)=0\varphi(x,y)=0φ(x,y)=0下的极值。

(1)作Lagrange函数

F(x,y,λ)=f(x,y)+λφ(x,y);F(x,y,\lambda)=f(x,y)+\lambda\varphi(x,y);F(x,y,λ)=f(x,y)+λφ(x,y);

(2)求F(x,y,λ)F(x,y,\lambda)F(x,y,λ)的驻点(x0,y0,λ0)(x_0,y_0,\lambda_0)(x0​,y0​,λ0​)
Fx=fx(x,y)+λ⋅φx(x,y)=0;Fy=fy(x,y)+λ⋅φy(x,y)=0;Fλ=φ(x,y)=0\begin{aligned} F_x&=f_x(x,y)+\lambda\cdot\varphi_x(x,y)=0; \\ F_y&=f_y(x,y)+\lambda\cdot\varphi_y(x,y)=0; \\ F_{\lambda}&=\varphi(x,y)=0 \end{aligned} Fx​Fy​Fλ​​=fx​(x,y)+λ⋅φx​(x,y)=0;=fy​(x,y)+λ⋅φy​(x,y)=0;=φ(x,y)=0​
(3)(x0,y0)(x_0,y_0)(x0​,y0​)便是可能的条件极值点

拉格朗日乘数法所得的极点会包含原问题的所有极值点,但并不保证每个极值点都是原问题的极值点。(维基百科)


例如,目标函数:z=xyz=xyz=xy,约束条件:x+y=1x+y=1x+y=1

解: 作Lagrange函数

F(x,y,λ)=xy+λ(x+y−1)F(x,y,\lambda)=xy+\lambda(x+y-1)F(x,y,λ)=xy+λ(x+y−1)

求F的驻点:
Fx=y+λ=0Fy=x+λ=0Fλ=x+y−1=0⟹x=12;y=12;λ=−12\begin{aligned} F_x&=y+\lambda=0\\ F_y&=x+\lambda=0\\ F_{\lambda}&=x+y-1=0\\ \implies &x=\frac{1}{2};y=\frac{1}{2};\lambda=-\frac{1}{2} \end{aligned} Fx​Fy​Fλ​⟹​=y+λ=0=x+λ=0=x+y−1=0x=21​;y=21​;λ=−21​​


公式推导

条件极值: 在一定约束条件下(一般为方程)的极值就称为条件极值。

条件极值的几何解释:

约束条件φ(x,y)=0\varphi(x,y)=0φ(x,y)=0是指,在曲线φ(x,y)\varphi(x,y)φ(x,y)上取一点,使得f(x,y)f(x,y)f(x,y)有极值(由图可知为极大值)

条件极值的必要条件:

函数z=f(x,y)z=f(x,y)z=f(x,y)在条件φ(x,y)=0\varphi(x,y)=0φ(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,那么函数f(x,y)f(x,y)f(x,y)在哪里取得条件最大值?

推导:

设z0=f(x0,y0)z_0=f(x_0,y_0)z0​=f(x0​,y0​)是z=f(x,y)z=f(x,y)z=f(x,y)在条件φ(x,y)=0\varphi(x,y)=0φ(x,y)=0下的条件极值。设y=y(x)y=y(x)y=y(x)是约束条件φ(x,y)=0\varphi(x,y)=0φ(x,y)=0所确定的隐函数。

则:z=f(x,y(x))z=f(x,y(x))z=f(x,y(x))此时就变成了一个一元函数,且在x=x0x=x_0x=x0​处取得极值。

(1)由一元函数极值的必要条件可知:(若f(x)f(x)f(x)在x=x0x=x_0x=x0​处取得极值,且f′(x0)f'(x_0)f′(x0​)存在,则有f′(x0)=0f'(x_0)=0f′(x0​)=0)

所以有:
dzdx=fx⋅1+fy⋅dydx=0⟹fx(x0,y0)+fy(x0,y0)⋅y′(x0)=0⟹y′(x0)=−fx(x0,y0)fy(x0,y0)(1)\begin{aligned} \frac{dz}{dx}&=f_x\cdot1+f_y\cdot\frac{dy}{dx}=0 \\ \implies&f_x(x_0,y_0)+f_y(x_0,y_0)\cdot y'(x_0)=0 \\ \implies&y'(x_0)=-\frac{f_x(x_0,y_0)}{f_y(x_0,y_0)} \tag 1 \end{aligned} dxdz​⟹⟹​=fx​⋅1+fy​⋅dxdy​=0fx​(x0​,y0​)+fy​(x0​,y0​)⋅y′(x0​)=0y′(x0​)=−fy​(x0​,y0​)fx​(x0​,y0​)​​(1)

(2)由隐函数求导公式可知
y′(x0)=−φx(x0,y0)φy(x0,y0)由(1)(2)⟹fx(x0,y0)fy(x0,y0)=φx(x0,y0)φy(x0,y0)⟹fx(x0,y0)φx(x0,y0)=fy(x0,y0)φy(x0,y0)(2)\begin{aligned} y'(x_0)&=-\frac{\varphi_x(x_0,y_0)}{\varphi_y(x_0,y_0)}\tag 2\\ \\ 由(1)(2) \implies&\frac{f_x(x_0,y_0)}{f_y(x_0,y_0)}=\frac{\varphi_x(x_0,y_0)}{\varphi_y(x_0,y_0)}\\\\ \implies&\frac{f_x(x_0,y_0)}{\varphi_x( x_0,y_0)}=\frac{f_y(x_0,y_0) }{\varphi_y(x_0,y_0)} \end{aligned} y′(x0​)由(1)(2)⟹⟹​=−φy​(x0​,y0​)φx​(x0​,y0​)​fy​(x0​,y0​)fx​(x0​,y0​)​=φy​(x0​,y0​)φx​(x0​,y0​)​φx​(x0​,y0​)fx​(x0​,y0​)​=φy​(x0​,y0​)fy​(x0​,y0​)​​(2)
那么此时我们可以理解成{fx(x0,y0),fy(x0,y0)}//{φx(x0,y0),φy(x0,y0)}\{f_x(x_0,y_0),f_y(x_0,y_0)\}//\{\varphi_x( x_0,y_0),\varphi_y( x_0,y_0)\}{fx​(x0​,y0​),fy​(x0​,y0​)}//{φx​(x0​,y0​),φy​(x0​,y0​)},即两个向量平行

⟹Δf(x0,y0)//Δφ(x0,y0)\implies\Delta f(x_0,y_0)//\Delta \varphi(x_0,y_0)⟹Δf(x0​,y0​)//Δφ(x0​,y0​)

我们知道某一点的梯度就是,该点所在平面对应的一个法向量。(知道的可以略过这点,不知道的接着往下看)


证明:

设二元函数F(x,y)=0F(x,y)=0F(x,y)=0,则其在点x=x0x=x_0x=x0​处的斜率k=−Fx(x0,y0)Fy(x0,y0)k=-\frac{F_x(x_0,y_0)}{F_y(x_0,y_0)}k=−Fy​(x0​,y0​)Fx​(x0​,y0​)​.设A(x1,y1),B(x2,y2)A(x_1,y_1),B(x_2,y_2)A(x1​,y1​),B(x2​,y2​)为该切线上的两个点,则k又可以写成k=y2−y1x2−x1k=\frac{y_2-y_1}{x_2-x_1}k=x2​−x1​y2​−y1​​
⟹AB→=(x2−x1,y2−y1)⟹1x2−x1⋅AB→=(1,y2−y1x2−x1)⟹λ⋅AB→=(1,k)=(1,−Fx(x0,y0)Fy(x0,y0))⟹λ⋅Fy(x0,y0)⋅AB→=(Fy(x0,y0),−Fx(x0,y0))⟹μ⋅AB→=(Fy(x0,y0),−Fx(x0,y0))\begin{aligned} \implies& \overrightarrow{AB}=(x_2-x_1,y_2-y_1)\\\\ \implies&\frac{1}{x_2-x_1}\cdot\overrightarrow{AB}=(1,\frac{y_2-y_1}{x_2-x_1})\\ \\ \implies&\lambda\cdot\overrightarrow{AB}=(1,k)=(1,-\frac{F_x(x_0,y_0)}{F_y(x_0,y_0)})\\ \\ \implies&\lambda\cdot F_y(x_0,y_0)\cdot\overrightarrow{AB}=(F_y(x_0,y_0),-F_x(x_0,y_0))\\ \\ \implies&\mu\cdot\overrightarrow{AB}=(F_y(x_0,y_0),-F_x(x_0,y_0)) \end{aligned} ⟹⟹⟹⟹⟹​AB=(x2​−x1​,y2​−y1​)x2​−x1​1​⋅AB=(1,x2​−x1​y2​−y1​​)λ⋅AB=(1,k)=(1,−Fy​(x0​,y0​)Fx​(x0​,y0​)​)λ⋅Fy​(x0​,y0​)⋅AB=(Fy​(x0​,y0​),−Fx​(x0​,y0​))μ⋅AB=(Fy​(x0​,y0​),−Fx​(x0​,y0​))​
于是我们可以得到的结论就是,若直线斜率为k,则他的一个方向向量为a⃗=(1,k)\vec{a}=(1,k)a=(1,k)

我们又知道,F(x,y)=0F(x,y)=0F(x,y)=0在点(x0,y0)(x_0,y_0)(x0​,y0​)处,所在平面(曲面在某一点的切平面)的法向量,垂直于该点所在平面的任意直线,当然也就包括切于该点的所有切线。于是该点法线的斜率k′=−1kk'=-\frac{1}{k}k′=−k1​。
法线的一个方向向量为a⃗=(1,−1k)=(1,Fy(x0,y0)Fx(x0,y0))a⃗⋅Fx(x0,y0)=(Fx(x0,y0),Fy(x0,y0))\begin{aligned} 法线的一个方向向量为\vec{a}&=(1,-\frac{1}{k})=(1,\frac{F_y(x_0,y_0)}{F_x(x_0,y_0)})\\\\ \vec{a}\cdot F_x(x_0,y_0)&=(F_x(x_0,y_0),F_y(x_0,y_0))\\ \\ \end{aligned} 法线的一个方向向量为aa⋅Fx​(x0​,y0​)​=(1,−k1​)=(1,Fx​(x0​,y0​)Fy​(x0​,y0​)​)=(Fx​(x0​,y0​),Fy​(x0​,y0​))​
所以取a⃗=(Fx(x0,y0),Fy(x0,y0))=ΔF(x0,y0)\vec{a}=(F_x(x_0,y_0),F_y(x_0,y_0))=\Delta F(x_0,y_0)a=(Fx​(x0​,y0​),Fy​(x0​,y0​))=ΔF(x0​,y0​), Fx(x0,y0)F_x(x_0,y_0)Fx​(x0​,y0​)为常数,不影响。

证毕


由Δf(x0,y0)//Δφ(x0,y0)\Delta f(x_0,y_0)//\Delta \varphi(x_0,y_0)Δf(x0​,y0​)//Δφ(x0​,y0​)可知:

∃λ0,使得Δf(x0,y0)=−λ0⋅Δφ(x0,y0)⟹Δf(x0,y0)+λ0⋅Δφ(x0,y0)=0⃗⟹Δ{f(x0,y0)+λ0⋅φ(x0,y0)}=0⃗⟹Δ(f+λ0φ)=0⃗\begin{aligned} \exists \lambda_0,使得&\Delta f(x_0,y_0)=-\lambda_0\cdot\Delta \varphi(x_0,y_0) \\ \\ \implies&\Delta f(x_0,y_0)+\lambda_0\cdot\Delta \varphi(x_0,y_0) =\vec{0}\\ \\ \implies&\Delta \{f(x_0,y_0)+\lambda_0\cdot\varphi(x_0,y_0)\} =\vec{0}\\ \\ \implies&\Delta(f+\lambda_0\varphi)=\vec{0} \end{aligned} ∃λ0​,使得⟹⟹⟹​Δf(x0​,y0​)=−λ0​⋅Δφ(x0​,y0​)Δf(x0​,y0​)+λ0​⋅Δφ(x0​,y0​)=0Δ{f(x0​,y0​)+λ0​⋅φ(x0​,y0​)}=0Δ(f+λ0​φ)=0​

此时我们可以用最原始的定义来求解上面的例题,即:
Δz(x,y)+λ⋅Δφ(x,y)=0⃗⟹(y,x)+λ(1,1)=0⃗(分别求梯度)⟹y+λ=0,x+λ=0⟹x=y=−λx+y=1,⟹x=y=12,λ=−12\begin{aligned} &\Delta z(x,y)+\lambda\cdot\Delta \varphi(x,y) =\vec{0}\\ \implies&(y,x)+\lambda(1,1)=\vec{0}\text{(分别求梯度)}\\ \implies&y+\lambda=0,x+\lambda=0\\ \implies&x=y=-\lambda\\ x+y=1,\implies&x=y=\frac{1}{2},\lambda=-\frac{1}{2} \end{aligned} ⟹⟹⟹x+y=1,⟹​Δz(x,y)+λ⋅Δφ(x,y)=0(y,x)+λ(1,1)=0(分别求梯度)y+λ=0,x+λ=0x=y=−λx=y=21​,λ=−21​​
由此我们可以得到的结论是:

令函数F(x,y,λ)=f(x,y)+λφ(x,y)F(x,y,\lambda)=f(x,y)+\lambda\varphi(x,y)F(x,y,λ)=f(x,y)+λφ(x,y),若ΔF(x0,y0,λ0)=0⃗\Delta F(x_0,y_0,\lambda_0)=\vec{0}ΔF(x0​,y0​,λ0​)=0,则(x0,y0,λ0)(x_0,y_0,\lambda_0)(x0​,y0​,λ0​)是函数F(x,y,λ)F(x,y,\lambda)F(x,y,λ)的驻点,通过如下步骤,就可以就得驻点的值。
{Fx=0Fy=0Fλ=0\begin{aligned} \begin{cases}F_x=0\\ F_y=0\\ F_\lambda=0 \end{cases} \end{aligned} ⎩⎪⎨⎪⎧​Fx​=0Fy​=0Fλ​=0​​

F(x,y,λ)F(x,y,\lambda)F(x,y,λ)称为拉格朗日函数,λ\lambdaλ称为拉格朗日乘数(Lagrange multiplier)


另外,由下图也可以直观的看出,在约束条件下,z=xye−(x2+y2)z=xye^{-(x^2+y^2)}z=xye−(x2+y2)取得极值。且此时,z=xye−(x2+y2)z=xye^{-(x^2+y^2)}z=xye−(x2+y2)在点P处的法向量与xy=1xy=1xy=1在P处的法向量平行。

更正:等值线xye−(x2+y2)=z0xye^{-(x^2+y^2)}=z_0xye−(x2+y2)=z0​在(x0,y0)(x_0,y_0)(x0​,y0​)(条件极值)处的法向量平行于xy−1=0xy-1=0xy−1=0在(x0,y0)(x_0,y_0)(x0​,y0​)处的法向量。

易知 z=xye−(x2+y2)z=xye^{-(x^2+y^2)}z=xye−(x2+y2) 在(1,1,e−2)(1,1,e^{-2})(1,1,e−2)处取得极值另一个为((−1,−1,e−2)(-1,-1,e^{-2})(−1,−1,e−2)),则等值线xye−(x2+y2)=e−2xye^{-(x^2+y^2)}=e^{-2}xye−(x2+y2)=e−2 处的法向量为 (−e−2,−e−2)(-e^{-2},-e^{-2})(−e−2,−e−2);且xy−1=0xy-1=0xy−1=0在(1,1)(1,1)(1,1)处的法向量为(1,1)(1,1)(1,1),显而可见两者平行。

从等高线图来看:

总结一句话,拉格朗日乘除法就是根据在P点出两个法向量平行这个条件推导出来的。

感谢徐小湛老师的《高等数学》视频

拉格朗日乘数法(Lagrange multiplier)相关推荐

  1. 拉格朗日乘数法Lagrange Multipier

    前言: 通过拉格朗日乘数法可以将原来带约束的优化问题转换为无约束的优化问题. 阅读目录 1. 拉格朗日乘数法的基本思想 2. 数学实例 3. 拉格朗日乘数法的基本形态 4. 拉格朗日乘数法与KKT条件 ...

  2. 拉格朗日乘数法怎么判断极大极小_最优化方法:拉格朗日乘数法

    解决约束优化问题--拉格朗日乘数法 拉格朗日乘数法(Lagrange Multiplier Method)应用广泛,可以学习麻省理工学院的在线数学课程. 拉格朗日乘数法的基本思想 作为一种优化算法,拉 ...

  3. 数学基础知识总结 —— 9. 什么是拉格朗日乘数法(Lagrange Multiplier,有约束条件的多元函数求极值)

    文章目录 定义 理解「拉格朗日乘数法」 一些例题 定义 拉格朗日乘数法(Lagrange multiplier,以数学家约瑟夫·拉格朗日命名),在数学中的最优化问题中,是一种寻找多元函数在其变量受到一 ...

  4. Lagrange multiplier method (拉格朗日乘数法)

    The Lagrange multiplier method is used to solve the problem that find the extremum of a function z=f ...

  5. 拉格朗日乘数法 —— 通俗理解

    拉格朗日乘数法(Lagrange Multiplier Method)在数学最优问题中,是一种寻找变量受一个或多个条件所限制的多元函数的极值的方法.记得以前大学高数.数模等课程多次提到过,在求解最有问 ...

  6. [Math Algorithm] 拉格朗日乘数法

    https://www.cnblogs.com/maybe2030/p/4946256.html 阅读目录 1. 拉格朗日乘数法的基本思想 2. 数学实例 3. 拉格朗日乘数法的基本形态 4. 拉格朗 ...

  7. 对拉格朗日乘数法的理解

    参考 百度百科 拉格朗日乘数法:https://www.cnblogs.com/maybe2030/p/4946256.html 拉格朗日乘数法的一种几何解释:https://zhuanlan.zhi ...

  8. 最优化方法:拉格朗日乘数法

    http://blog.csdn.net/pipisorry/article/details/52135854 解决约束优化问题--拉格朗日乘数法 拉格朗日乘数法(Lagrange Multiplie ...

  9. KKT 拉格朗日乘数法

    在求解最优化问题中,拉格朗日乘子法(Lagrange Multiplier)和KKT(Karush Kuhn Tucker)条件是两种最常用的方法.在有等式约束时使用拉格朗日乘子法,在有不等约束时使用 ...

最新文章

  1. illegal base64 character 3a_双11华硕多款产品再送豪礼 高端硬件通吃最新3A大作
  2. js全选 复选框的问题
  3. cocos2d-x游戏实例(15)-纵版射击游戏(2)
  4. 如何修改elementUI里面Dialog组件标题的样式
  5. 寻找两个正序数组的中位数Python解法
  6. vs2013创建及使用DLL
  7. 计算机科学导论(第一次阅读)
  8. 根据输入网络服务名称取得端口号
  9. 二叉树遍历(深度优先+广度优先)
  10. Apache配置访问控制、禁用php解析、rewrite伪静态、限定user_agent
  11. Word:公式编辑器亲密接触(转)
  12. 大容量网盘才是王道?看看坚果云这类的小容量网盘的生存之道
  13. 人脸关键点检测PFLD论文解读
  14. TeXmacs Bibtex文献排序
  15. 基于Docker从零搭建Prometheus监控报警系统
  16. 一起avi文件播放时没有图像问题的解决(tscc.exe)
  17. 电磁兼容入门篇之辐射发射(辐射骚扰)试验
  18. leetcode 561
  19. vue自定义日历小组件
  20. delta-normal var的公式推导

热门文章

  1. 任意重循环(循环阶数不定、循环层数不定)
  2. EntityFramework安装失败
  3. photoshop批处理改变图片大小
  4. maven complie报错汇总
  5. Tk/Tkx滚动条的使用
  6. docker网络原理及cgroup
  7. Gitea配置文件说明
  8. python定义一个dog类 类属性有名字毛色体重_全面了解python中的类,对象,方法,属性...
  9. Java mybatis-plus详解
  10. 思购臻选模式,秒杀的底层逻辑—微三云贺心悦