拉格朗日乘子法 那些年学过的高数

  最近在做通信网络相关的仿真,今天拿到了一些别人仿真的代码来学习,其中看到了一个double Lambda[T_Node_Number][M][Low_iteration];的参数,注释写着拉格朗日乘子式。本来对于这个名词感觉很陌生,后来查了一些资料,才回忆起这似乎是大一高数曾经学过的知识,经查书,果不其然,高数下P113页 条件极值拉格朗日法讲的就是这个内容。以前被忽视的知识点,再次重现,我觉得要好好学习一下。一下是学习笔记:



如何理解

先看一个二维的例子:假设有函数:f(x,y),要求其极值(最大值/最小值),且

c 为常数。对不同dn的值,不难想像出

的等高线。而方程g的等高线正好是g(x,y) = c。想像我们沿着g = c的等高线走;因为大部分情况下fg的等高线不会重合,但在有解的情况下,这两条线会相交。想像此时我们移动g = c上的点,因为f是连续的方程,我们因此能走到更高或更低的等高线上,也就是说dn可以变大或变小。只有当g = c相切,也就是说,此时,我们正同时沿着g = c走。这种情况下,会出现极值鞍点

气象图中就很常出现这样的例子,当温度和气压两列等高线同时出现的时候,切点就意味着约束极值的存在。

向量的形式来表达的话,我们说相切的性质在此意味着fg的斜率在某点上平行。此时引入一个未知标量λ,并求解:

λ ≠ 0.

一旦求出λ的值,将其套入下式,易求在无约束极值和极值所对应的点。

 = 

新方程F(x,y)在达到极值时与f(x,y)相等,因为F(x,y)达到极值时g(x,y) − c总等于零。

方法

假设需要求极值的目标函数 (objective function) 为 f(x,y),约束条件为 φ(x,y)=M

设g(x,y)=M-φ(x,y)

定义一个新函数

F(x,y,λ)=f(x,y)+λg(x,y)

则用偏导数方法列出方程

∂F/∂x=0

∂F/∂y=0

∂F/∂λ=0

求出x,y,λ的值,代入即可得到目标函数的极值

扩展为多个变量的式子为:

F(x1,x2,...λ)=f(x1,x2,...)+λg(x1,x2...)

则求极值点的方程为:

∂F/∂xi=0(xi即为x1、x2……等自变量

∂F/∂λ=g(x1,x2...)=0

以上内容在《数学手册》当中有。另外,可以将这种把约束条件乘以λ(即不定乘子)后加到待求函数上的求极值方法推广到变分极值问题及其它极值问题当中,理论力学当中对非完整约束的处理方法就是利用变分法当中的拉格朗日乘子法

很简单的例子

求此方程的最大值:

f(x,y) = x2y

同时未知数满足

x2 + y2 = 1

因为只有一个未知数的限制条件,我们只需要用一个乘数λ.

g(x,y) = x2 + y2 − 1
Φ(x,y,λ) = f(x,y) + λg(x,y) = x2y + λ(x2 + y2 − 1)

将所有Φ方程的偏微分设为零,得到一个方程组,最大值是以下方程组的解中的一个:

2xy + 2λx = 0
x2 + 2λy = 0
x2 + y2 − 1 = 0

另一个例子

求此离散分布的最大

所有概率的总和是1,因此我们得到的约束是gp)= 1即

可以使用拉格朗日乘数找到最高熵(概率的函数)。对于所有的k 从1到n,要求

由此得到

计算出这n个等式的微分,我们得到:

这说明pi都相等 (因为它们都只是λ的函数). 解出约束∑k pk = 1,得到

因此,使用均匀分布可得到最大熵的值。



心得体会:经过这次学习,深切地体会到在学习知识时,一次学会是多么重要的一件事情。由于课程安排不合理和个人时间利用的问题,在大学期间的课程,有好多都学的一知半解,不够深入,不够扎实,大多都是为了应付考试,考前突击学成的,致使考试不考的内容根本不会,考试考了的内容考完以后很快也就淡忘了,时间久了根本连印象都没有。这样子学习是不行的,可是应该如何学习呢?是应该第一次学习就尽可能学好,还是更依赖于经过一段时间的温故知新呢。我不敢轻易相信已有的所谓学习,还需在实践中检验考证。

拉格朗日乘子法 那些年学过的高数

时间: 2024-10-07 13:57:32

拉格朗日乘子法 那些年学过的高数的相关文章

机器学习中的数学——拉格朗日乘子法

拉格朗日乘子法:应用在求有约束条件的函数的极值问题上. a. 对于没有约束的函数求极值,只要求导,令导函数等于零即可. b. 对于约束条件是等式的函数. 目标函数:f(x), 约束条件:g(x)=0 求解f(x)在此约束条件下的极值. 定义拉格朗日函数 : L(x,λ)=f(x)+ λg(x) 分别对参数求偏导数,置零.

拉格朗日乘子法

基本的拉格朗日乘子法是求函数f(x1,x2,...)在g(x1,x2,...)=0的约束条件下的极值的方法. 主要思想:引入一个新的参数λ(即拉格朗日乘子),将约束条件函数与原函数联系到一起,使能配成与变量数量相等的等式方程,从而求出得到原函数极值的各个变量的解. 假设需要求极值的目标函数为f(x,y),限制条件为φ(x,y)=M 解:设g(x,y)=M-φ(x,y) 定义一个新函数:F(x,y,λ)=f(x,y)+λg(x,y) 则用偏导数方法列出方程:?F/?x=0,?F/?y=0,?F/?

非负矩阵分解(3):拉格朗日乘子法求解

作者:桂. 时间:2017-04-07  07:11:54 链接:http://www.cnblogs.com/xingshansi/p/6679325.html 声明:欢迎被转载,不过记得注明出处哦~ 前言 最近发这类文章,动不动就被管理员从首页摘除,如果你觉得这个文章还说得过去,麻烦帮忙点个赞吧,这样移除的概率小一些.... 本文为非负矩阵分解系列第三篇,在第二篇中介绍了不同准则下乘法算法的推导及代码实现,这里不免有一个疑问:明明是一个约束的优化问题,虽然乘法算法巧妙地将其变为一个无约束优化

拉格朗日乘子法(Lagrange Multiplier)和KKT条件

拉格朗日乘子法:对于等式约束的优化问题,求取最优值. KKT条件:对于含有不等式约束的优化问题,求取最优值. 最优化问题分类: (1)无约束优化问题: 常常使用Fermat定理,即求取的导数,然后令其为零,可求得候选最优值. (2)有等式约束的优化问题:, 使用拉格朗日乘子法,把等式约束用一个系数与写为一个式子,称为拉格朗日函数.再通过对各个参数求取导数,联立等式进行求取最优值. (3)有不等式约束的优化问题.,,. 把所有的不等式约束.等式约束和目标函数全部写为一个式子:. KKT条件的最优值

关于拉格朗日乘子法与KKT条件

关于拉格朗日乘子法与KKT条件 关于拉格朗日乘子法与KKT条件 目录 拉格朗日乘子法的数学基础 共轭函数 拉格朗日函数 拉格朗日对偶函数 目标函数最优值的下界 拉格朗日对偶函数与共轭函数的联系 拉格朗日对偶问题 如何显式的表述拉格朗日对偶问题 由定义消去下确界 隐式求解约束 共轭函数法 弱对偶 强对偶 原始问题与对偶问题的关系 最优条件 互补松弛条件 KKT条件 一般问题的KKT条件 凸问题的KKT条件 KKT条件的用途 拉格朗日乘数法的形象化解读 等式约束的拉格朗日乘子法 含有不等约束的情况

增广拉格朗日乘子法(Augmented Lagrange Method)

转载自:增广拉格朗日乘子法(Augmented Lagrange Method) 增广拉格朗日乘子法的作用是用来解决等式约束下的优化问题, 假定需要求解的问题如下: minimize f(X) s.t.: h(X)=0 其中,f:Rn->R; h:Rn->Rm 朴素拉格朗日乘子法的解决方案是: L(X,λ)=f(X)+μh(X); μ:Rm 此时,求解L对X和μ的偏导同时为零就可以得到最优解了. 增广拉格朗日乘子法的解决方案是: Lc(x,λ)=f(X)+μh(X)+1/2c|h(X)|2 每

深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件

在求取有约束条件的优化问题时,拉格朗日乘子法(Lagrange Multiplier) 和KKT条件是非常重要的两个求取方法,对于等式约束的优化问题,可以应用拉格朗日乘子法去求取最优值:如果含有不等式约束,可以应用KKT条件去求取.当然,这两个方法求得的结果只是必要条件,只有当是凸函数的情况下,才能保证是充分必要条件.KKT条件是拉格朗日乘子法的泛化.之前学习的时候,只知道直接应用两个方法,但是却不知道为什么拉格朗日乘子法(Lagrange Multiplier) 和KKT条件能够起作用,为什么

拉格朗日乘子法与KKT条件

拉格朗日乘子法 \[ min \quad f = 2x_1^2+3x_2^2+7x_3^2 \\s.t. \quad 2x_1+x_2 = 1 \\ \quad \quad \quad 2x_2+3x_3 = 2 \] \[ min \quad f = 2x_1^2+3x_2^2+7x_3^2 +\alpha _1(2x_1+x_2- 1)+\alpha _2(2x_2+3x_3 - 2) \] \[ \dfrac{\partial f}{\partial x_1}=4x_1+2\alpha_1

【机器学习之数学】03 有约束的非线性优化问题——拉格朗日乘子法、KKT条件、投影法

目录 将有约束问题转化为无约束问题 拉格朗日法 KKT条件 拉格朗日法更新方程 凸优化问题下的拉格朗日法 罚函数法 对梯度算法进行修改,使其运用在有约束条件下 投影法 梯度下降法 to 投影梯度法 正交投影算子 References 相关博客 梯度下降法.最速下降法.牛顿法等迭代求解方法,都是在无约束的条件下使用的,而在有约束的问题中,直接使用这些梯度方法会有问题,如更新后的值不满足约束条件. 那么问题来了,如何处理有约束的优化问题?大致可以分为以下两种方式: 将有约束的问题转化为无约束的问题,