ML(附录4)——拉格朗日乘数法
基本的拉格朗日乘子法(又称为拉格朗日乘数法),就是求函数 f(x1,x2,...) 在 g(x1,x2,...)=C 的约束条件下的极值的方法。其主要思想是引入一个新的参数 λ (即拉格朗日乘子),将约束条件函数与原函数联系到一起,使能配成与变量数量相等的等式方程,从而求出得到原函数极值的各个变量的解。拉格朗日乘子是数学分析中同一名词的推广。
什么是拉格朗日乘数法
简单地说,拉格朗日乘数法是用来最小化或最大化多元函数的。如果有一个方程f(x,y,z),在这个方程里的变量之间不是独立的,也就是说这些变量之间是有联系的,这个联系可能是某个方程g(x,y,z) = C;也就是g(x,y,z) = C定义了x,y,z之间的关系,这个关系对变量做出了一定的的限制,我们需要在这个限制下来最小化或最大化f(x,y,z)。
这里的最值不能简单地使用临界点,因为临界点通常不满足关系方程g。如何解决这个问题呢?当这个限制g(x,y,z)非常简单的时候,我们可以解出其中一个变量的表达式,把这个表达式代入f(x,y,z)后求得最值,这也是中学阶段常用的方法。但问题是,很多时候我们并不能解出x,y,z,因为关系方程g太复杂了,这就需要一个全新的方法求解,拉格朗日乘数法就是其中一种。
寻找最值
示例:找出双曲线xy = 3上离原点最近的点。
如果(x, y)是曲线上的点,原点到该点的距离是:

求离原点最近的点实际上是求f(x,y)的最小值。可以使用一个更容易的方程去掉根号:

在计算最小值时候有一个限制是:

把这个较为简单的例子用等高线图表示:

很明显,当f和g相切的时候,能得到f的最小值。如果把双曲线看作自身的等高线,那么当f的等高线和g的等高线相切时,f值最小。实际上这也是找到最值的一般情形。
如果两个等高线相切,则二者在切点处的切线也相同,也就是说它们的梯度向量平行,即:

如果两个向量平行,则其中一个向量是另一个向量的倍数,由此得到:

这里的λ是一个常数,我们需要做的是找到这个λ和特定的(x,y)使得上式成立。这实际上是把2个变量加一个关系限制的最值问题转换为一个含有3个变量的方程组。

现在已经通过梯度向量平行,将原来的最值问题转换为一般的方程组,这个方程组被称为拉格朗日方程组,它的解就是最值点。
接下来就是解方程组,可以将其看作是关于xy的矩阵方程:

一个满足方程组的解是x = 0, y = 0,但这个解不满约束条件g(x,y) = xy = 3;此外,只有当系数行列式的值是0时,方程才有多个解:

把两个值分别代入方程组:

现在可以回答原问题,双曲线xy = 3距离原点最近的点有两个:(31/2, 31/2)和(-31/2, -31/2)。
在这个例子中,λ就是拉格朗日乘子。
最小值和最大值
拉格朗日乘数法并不会告诉我们最值的类型,结果可能是最大值、最小值或鞍点,由于存在限制条件,这里也不能像《多变量微积分3——二元函数的极值》那样使用二阶导数判断。那么如何判断是最大值还是最小值呢?只能通过将拉格朗日方程组的解代入问题方程f来判断。举例来说,如果有三组解,代入f后分别是4,6,9,在不存在边界值时,4就是最小值,9就是最大值;如果存在边界,还需要比较边界值。在双曲线的例子中,由于能够确定边界在无穷远处,所以其结果就是最小值。
表面积最小的金字塔
给定金字塔的体积和底面积(底面的三边确定,分别是a1,a2,a3),如何建造一个表面积最小的金字塔?

如上图所示,将金字塔模型放入三维坐标系中,底面对应xy轴。由于体积和底面积已知,根据体积公式,高也是定值,那么实际问题就是回答Q点的位置。一种思路是利用向量的叉积计算三角形的面积(参考《线性代数笔记4——向量3(叉积)》):

展开后将得到一个很长的式子,看起来并不是什么好方法。现在换一种思路,利用三角形面积的几何公式,如下图所示:

h1是三角形PP1P2的高,设点Q是(x,y,0),则:

这就转换成了有三个变量的函数,目标是求得f的最小值:

接下来需要寻找约束条件g。由于a1⊥h1且a1⊥h,所以a1垂直于h1和h所在的平面,a1⊥u1。

上图可知:

这就是约束条件g:

知道了f和g,就可以使用拉格朗日乘数法:

当Q点的位置距离三边距离相等时,金字塔的表面积最小。
备注:
f对u1偏导将u2和u3看作常数,这相当于求f(u)的导数,

综合示例
示例1
在椭圆x2 + 4y2 = 4中有内接的矩形,该矩形的边平行于x轴和y轴,找出这些矩形中周长最大的一个。

如上图所示,长方形的周长函数是f(x,y) = 4x + 4y,约束函数g(x,y) = x2 + 4y2 = 4

由于拉格朗日乘数法无法确定最值的类型,所以还要对函数边界进行计算。当P在椭圆上移动时,如果正好落在x轴上,则长方形退化成直线,此时
;另一个极值是
,所以判定
是最大值,此时长方形的一点的坐标是
示例2
计算f(x,y,z)= x2 + x + 2y2 + 3z2在约束条件x2 + y2 + z2 = 1下的最值。

由于约束条件是球体,所以不存在边界,只需把这些解导入f即可。当点在(-1,0,0)时,f最小,f = 0;当点在(1/4,0,±151/2/4)时f最大,f = 25/8
作者:我是8位的
出处:http://www.cnblogs.com/bigmonkey
本文以学习、研究和分享为主,如需转载,请联系本人,标明作者和出处,非商业用途!
扫描二维码关注公众号“我是8位的”

ML(附录4)——拉格朗日乘数法的更多相关文章
- [Math & Algorithm] 拉格朗日乘数法
拉格朗日乘数法(Lagrange Multiplier Method)之前听数学老师授课的时候就是一知半解,现在越发感觉拉格朗日乘数法应用的广泛性,所以特意抽时间学习了麻省理工学院的在线数学课程.新学 ...
- 《University Calculus》-chaper12-多元函数-拉格朗日乘数法
求解条件极值的方法:拉格朗日乘数法 基于对多元函数极值方法的了解,再具体的问题中我们发现这样一个问题,在求解f(x,y,z)的极值的时候,我们需要极值点落在g(x,y,z)上这种对极值点有约束条件,通 ...
- bzoj2876 [NOI2012]骑行川藏(拉格朗日乘数法)
题目描述 蛋蛋非常热衷于挑战自我,今年暑假他准备沿川藏线骑着自行车从成都前往拉萨.川藏线的沿途有着非常美丽的风景,但在这一路上也有着很多的艰难险阻,路况变化多端,而蛋蛋的体力十分有限,因此在每天的骑行 ...
- CodeChef TWOROADS(计算几何+拉格朗日乘数法)
题面 传送门 简要题意:给出\(n\)个点,请求出两条直线,并最小化每个点到离它最近的那条直线的距离的平方和,\(n\leq 100\) orz Shinbokuow 前置芝士 给出\(n\)个点,请 ...
- BZOJ3775: 点和直线(计算几何+拉格朗日乘数法)
题面 传送门 题解 劲啊-- 没有和\(Claris\)一样推,用了类似于\(Shinbokuow\)推已知点求最短直线的方法,结果\(WA\)了好几个小时,拿\(Claris\)代码拍了几个小时都没 ...
- BZOJ2876 [Noi2012]骑行川藏 【拉格朗日乘数法】
题目链接 BZOJ 题解 拉格朗日乘数法 拉格朗日乘数法用以求多元函数在约束下的极值 我们设多元函数\(f(x_1,x_2,x_3,\dots,x_n)\) 以及限制\(g(x_1,x_2,x_3,\ ...
- 拉格朗日乘数法 和 KTT条件
预备知识 令 \(X\) 表示一个变量组(向量) \((x_1, x_2, \cdots, x_n)\) 考虑一个处处可导的函数 \(f(X)\), 为了方便描述, 这里以二元函数为例 对于微分, 考 ...
- CodeForces - 813C The Tag Game(拉格朗日乘数法,限制条件求最值)
[传送门]http://codeforces.com/problemset/problem/813/C [题意]给定整数a,b,c,s,求使得 xa yb zc值最大的实数 x,y,z , 其中x ...
- Wannafly模拟赛2 B river(拉格朗日乘数法)
题目 https://www.nowcoder.com/acm/contest/4/B题意 有n条南北流向的河并列排着,水流速度是v,现在你需要从西岸游到东岸,总共T个时间,你的游泳速度是u,问东岸的 ...
随机推荐
- matla互相关协方差的计算和理解
计算相关函数和协方差的MATLAB函数 MATLAB信号处理工具箱提供了计算随机信号相关函数xcorr. 函数xcorr用于计算随机序列自相关和互相关函数.调用格式为: [c,lags]=xcorr( ...
- MySQL:日期函数、时间函数处理(转)
date_add() 增加MYSQL 获取当前时间加上一个月 ; date_sub()减少 date_sub('1998-01-01 00:00:00', interval '1 1:1:1' day ...
- 2017-2018-2 20165228 实验二《Java面向对象程序设计》实验报告
2017-2018-2 20165228 实验二<Java面向对象程序设计>实验报告 相关知识点 三种代码 伪代码:注释,与具体编程语言无关 产品代码:由伪代码翻译而来的具体编程语言语法相 ...
- Python网络爬虫第一弹《Python网络爬虫相关基础概念》
爬虫介绍 引入 之前在授课过程中,好多同学都问过我这样的一个问题:为什么要学习爬虫,学习爬虫能够为我们以后的发展带来那些好处?其实学习爬虫的原因和为我们以后发展带来的好处都是显而易见的,无论是从实际的 ...
- 【opencv基础】图像的几何变换
参考 1. 图像的几何变换-平移和镜像: 2.图像的几何变换-缩放和旋转: 3. opencv图像旋转实现: 完
- 红外光通信装置数字部分思路点睛 2013年国赛f题
- MSC服务器-主从检测脚本-check_server_state.sh
说明: 发现keepalived会在凌晨自动进行主从切换,导致msc相关进程运行不稳定: 通过运行check_server_state.sh,及时终止/启动相关进程: 所有脚本使用supervisor ...
- javascript文档DOC
python.java都有官网,有官方文档 javascript却找不到官网和官方文档 js大全 https://github.com/jobbole/awesome-javascript-cn md ...
- 集合框架 ArrayList LinkedList(待续)
ArrayList中存储的元素的内存空间是连续的, LinkedList内存空间不是连续的 集合对象不能被序列化到硬盘中 http://blog.csdn.net/eson_15/article/de ...
- java-Random类
1.Random类的概述和方法使用 * A:Random类的概述 * 此类用于产生随机数 * 如果用相同的种子创建两个 Random 实例,则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数 ...