如何理解拉格朗日乘子法?

article/2025/8/20 18:30:44

1 与原点的最短距离

假如有方程:

x^2y=3

图像是这个样子滴:

现在我们想求其上的点与原点的最短距离:

这里介绍一种解题思路。首先,与原点距离为a 的点全部在半径为a 的圆上:

那么,我们逐渐扩大圆的半径:

显然,第一次与x^2y=3 相交的点就是距离原点最近的点:

此时,圆和曲线相切,也就是在该点切线相同:

至此,我们分析出了:

在极值点,圆与曲线相切

2 等高线

为了继续解题,需要引入等高线。这些同心圆:

可以看作函数f(x,y)=x^2+y^2 的等高线:

根据梯度的性质(关于梯度可以查看如何通俗地理解梯度?),梯度向量:

\nabla f=\begin{pmatrix}\frac{\partial f}{\partial x}\\\frac{\partial f}{\partial y}\end{pmatrix}=\begin{pmatrix}2x\\2y\end{pmatrix}

是等高线的法线:

另外一个函数g(x,y)=x^2y 的等高线为:

之前的曲线x^2y=3 就是其中值为3的等高线:

,因此,梯度向量:

\nabla g=\begin{pmatrix}\frac{\partial g}{\partial x}\\\frac{\partial g}{\partial y}\end{pmatrix}=\begin{pmatrix}2xy\\x^2\end{pmatrix}

也垂直于等高线x^2y=3 :

梯度向量是等高线的法线,更准确地表述是:

梯度与等高线的切线垂直

3 拉格朗日乘子法

3.1 求解

根据之前的两个分析:

\begin{cases}     在极值点,圆与曲线相切\\     \\     梯度与等高线的切线垂直 \end{cases}

综合可知,在相切点,圆的梯度向量和曲线的梯度向量平行:

也就是梯度向量平行,用数学符号表示为:

\nabla f=\lambda\nabla g

还必须引入x^2y=3 这个条件,否则这么多等高线,不知道指的是哪一根:

因此联立方程:

\begin{cases}    \nabla f=\lambda\nabla g\\    \\    x^2y=3\end{cases}

求一下试试:

\begin{cases}    \begin{pmatrix}2x\\2y\end{pmatrix}=\lambda\begin{pmatrix}2xy\\x^2\end{pmatrix}\\    \\    x^2y=3\end{cases}\implies\begin{cases}    x\approx\pm 1.61\\    \\    y\approx 1.1\\    \\    \lambda\approx 0.87\end{cases}

这就是拉格朗日乘子法。

3.2 定义

要求函数f 在g 约束下的极值这种问题可以表示为:

minmax\ f\\    s.t.\ g=0

s.t. 意思是subject to,服从于,约束于的意思。

可以列出方程组进行求解:

\begin{cases}    \nabla f=\lambda\nabla g\\    \\    g=0\end{cases}

用这个定义来翻译下刚才的例子,要求:

令:

\begin{cases}    f(x,y)=x^2+y^2\\    \\    g(x,y)=x^2y-3\end{cases}

求:

min\ f(x,y)\\    s.t.\ g(x,y)=0

联立方程进行求解:

\begin{cases}    \nabla f=\lambda\nabla g\\    \\    g(x,y)=0\end{cases}

3.3 变形

这个定义还有种变形也比较常见,要求:

minmax\ f\\    s.t.\ g=0

定义:

F=f+\lambda g

求解下面方程组即可得到答案:

\begin{pmatrix}\frac{F}{\partial x}\\\frac{F}{\partial y}\\\frac{F}{\partial \lambda}\end{pmatrix}=\begin{pmatrix}0\\0\\0\end{pmatrix}

把等式左边的偏导算出来就和上面的定义是一样的了。

3.4 多个约束条件

如果增加一个约束条件呢?比如说:

x-y-3=0

求:

min\ x^2+y^2\\    s.t.\         \begin{cases}            x^2y-3=0\\            x-y-3=0        \end{cases}

从图上看约束条件是这样的:

很显然所求的距离是这样的:

那这三者的法线又有什么关系呢?x^2+y^2 的法线是x^2y-3 和x-y-3 的法线的线性组合:

假设:

\begin{cases}    f(x,y)=x^2+y^2\\    \\    g(x,y)=x^2y-3\\    \\    h(x,y)=x-y-3\end{cases}

那么线性组合就表示为:

\nabla f=\lambda\nabla g+\mu\nabla h

联立方程:

\begin{cases}    \nabla f=\lambda\nabla g+\mu\nabla h\\    \\    g(x,y)=0\\    \\    h(x,y)=0\end{cases}

即可求解。

往更高纬度走的话,多约束条件的情况下,问题变为了g_1,g_2 围成的曲线C 和f 相切,直观上看\nabla f 必然在\nabla g_1,\nabla g_2 张成的空间中:

这点的严格性这里就不证明了。

文章最新版本在(有可能会有后续更新):如何通俗地理解拉格朗日乘子法?


http://chatgpt.dhexx.cn/article/uDtLoDUh.shtml

相关文章

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

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

拉格朗日乘子法(简单易懂的说明)

拉格朗日乘子法(Lagrange Multiplier) 之前在高中就有一直听到拉格朗日,拉格朗日是一个很牛逼哄哄的大佬。在学习SVM的时候,居然也见到了他的身影。让我们了解一下拉格朗日乘子法的具体内容。 在学习过程中,有时会遇到…

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

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

拉格朗日乘子法

周志华《机器学习》如何理解拉格朗日乘子法? 1. 介绍 拉格朗日乘子法 (Lagrange multipliers)是一种寻找多元函数在一组约束下的极值的方法。通过引入拉格朗日乘子,可将有 d d d 个变量与 k k k 个约束条件的最优化问题转化为具有 d k d k dk 个变…

拉格朗日乘子法 (Lagrange multipliers)

目录 约束最优化问题等式约束的优化问题二元函数多元函数 不等式约束的优化问题 (KKT 条件)推广到多个约束拉格朗日对偶 (Dual Problem)前置知识 inf \text{inf} inf 和 sup \text {sup} sup 符号凸函数仿射函数凸优化 从广义拉格朗日函数到拉格朗日对偶函数从原问题到拉格朗日…

拉格朗日乘子

1,拉格朗日乘子(lagrange multiplier),又叫拉氏乘子或拉格朗日乘数。它是出现在拉格朗日乘数法中的概念。 拉格朗日乘数法可以解决多变量函数在其变量受到一个或多个约束条件时求极值的问题。 它可以将含有n个变量的函数(该函数的…

机器学习中的数学——拉格朗日乘子法(一):等式约束的拉格朗日乘子法

分类目录:《机器学习中的数学》总目录 相关文章: 拉格朗日乘子法(一):等式约束的拉格朗日乘子法 拉格朗日乘子法(二):不等式约束与KKT条件 拉格朗日乘子法是一种寻找多元函数在一组约…

拉格朗日乘子法详解

一、拉格朗日乘子法简介 拉格朗日乘子法的应用十分广泛,它是SVM的理论基础,是凸优化的重要研究部分。它用于求解约束条件下的极值问题,过程简单巧妙,也是各类考试的常考题型。然而,拉格朗日乘子法的原理我却一直模模糊…

日志服务与日志分析工具

系统日志生成服务 功能: 日志服务是根据日志配置文件进行提供相应的功能服务,对于各种服务的信息等级的设定将不同服务的不懂等级信息记录在不同的文件里面。 日志管理服务分类: 1.rsyslogd 普通日志管理服务 采集各种服务产生的信息根据…

Web日志分析

目录 1. Web日志 2. 日志分析技巧 常用分析工具: Apache日志分析技巧: 3. 日志分析案例 1、定位攻击源 2、搜索相关日志记录 3、对找到的访问日志进行解读,攻击者的访问路径..... 4. 日志统计分析技巧 1. Web日志 Web访问日志记录了W…

logparser日志分析详解

Logparser是微软的一款日志分析工具,使用方便功能强大。 支持的日志类型: IISW3C,NCSA,IIS,IISODBC,BIN,IISMSID,HTTPERR,URLSCAN,CSV,TSV,W3C,XML,EVT, ETW,NETMON, REG, ADS, TEXTLINE, TEXTWORD, FS,COM 可输出的文件类型 CSV, TSV, XML, DATAGRID, C…

(分析日志)

日志的分析也是一个很大的概念,可能对于运维和安全人员关注的是系统的所有日志,包括访问日志、系统监测的日志等,但是开发人员对于日志更多的是: 监控系统运行错误,并获取错误时的相关数据包记录重要的信息&#xff0…

日志分析及存储

一、系统日志概述 1.日志的用途 系统和程序的“日记本” −记录系统、程序运行中发生的各种事件 −通过查看日志,了解及排除故障 −信息安全控制的“依据” 2.Linux日志的种类 内核及系统日志 −由系统服务rsyslog统一管理,格式相似 用户日志 …

【linux】——日志分析

文章目录 1. 日志文件1.1 日志文件的分类1.2 日志文件保存位置1.2.1 内核及系统日志1.2.2 日志消息的级别1.2.3 日志记录的一般格式1.2.4 用户日志分析 程序日志分析日志管理策略 远程收集日志 1. 日志文件 1.1 日志文件的分类 ● 日志文件是用于记录Linux系统中各种运行消息的…

python日志分析

日志分析 生产中会出现大量的系统日志、应用程序日志,安全日志等,通过贵日志的分析可以了解服务器的负载,健康状况,可以分析客户的分布情况、客户的行为,甚至基于这些分析可以做出预测。 一般采集流程: 日…

日志分析工具

iis、windows日志做日志分析比较麻烦,这里找到了一款好用的免费的日志分析工具 Log Parser Lizard,下载这个工具之前建议先安装LogParser虽然他会自动弹窗提示。 1. 安装软件 安装没什么好说的一直下一步下一步就行 启动之后点击OK 弹出激活页面让激活…

redis日志分析

首先复习一下IO流: 关于读取文件: BufferedReader 从字符输入流中读取文本,缓冲各个字符,从而提供字符、数组和行的高效读取 InputStreamReader 字节流通向字符流的桥梁 以UTF-8编码读取 FileInputStream 从文件系统中的某…

【日志分析】Web日志分析

ox01 Web日志 Web访问日志记录了Web服务器接收处理请求及运行时错误等各种原始信息。通过对WEB日志进行的安全分析,不仅可以帮助我们定位攻击者,还可以帮助我们还原攻击路径,找到网站存在的安全漏洞并进行修复。 我们来看一条Apache的访问日…

日志分析方法概述

注:写得有点乱,但目前市面上这方面内容的确不多,mark一下~ http://blog.csdn.net/pkueecser/article/details/9569251 大数据应用--系统监控与日志分析 http://wenku.baidu.com/link?url8CJ-URMjVTVaw3GM1AZ2w9A7V0CIeRz3dx7xvysILLk6IdW…

日志分析软件

来源:http://onlyktt.blog.hexun.com/32563117_d.html 在经营管理亿枝客过程中,就遇到了非常多的困难。所以不断的学习知名与不知名互联网创业前辈留下来的经验特别重要,特别是上次与ZAC厦门交流后,以及拜读他写的《网络营销实践密…