微积分直觉:隐含微分
目录
一、介绍
二、梯子问题
三、结论
四、一个额外的例子
一、介绍
让我们想象一个半径为 5 的圆,以 xy 平面为中心。现在假设我们想在点 (3,4) 处找到一条切线到圆的斜率。

好吧,为了做到这一点,我们必须非常接近圆和切线之间的空间,并沿着该曲线迈出一小步。该步骤的 y 分量为 dy,x 分量为 dx。斜率是 rise over run 或 dy 除以 dx。
与微积分中的其他切线斜率问题不同,这条曲线不是函数的图,因此我们不能采用简单的导数。x 和 y 不是输入和输出,但它们是相互依赖的值。圆的方程称为隐式曲线,它是一组 xy 点,满足以两个变量表示的一些属性。
如何找到 dy/dx 的过程非常奇怪!你对两边都取导数,所以对于 x²,你会写 2x dx,y² 变成 2y dy。右侧常数的导数为零。

这似乎与计算导数的常规方法非常不同。对具有多个变量的表达式进行导数意味着什么?为什么 dy 和 dx 是这样写的?
如果你盲目地向前移动,你会得到 dy/dx 等于 -x/y。因此,在坐标为 3,4 的点处,该斜率将为负 3 除以 4。这个奇怪的过程称为隐式微分。稍后我们将解释如何进行互操作,但首先让我们看看另一个有助于我们实现目标的问题。
二、梯子问题
想象一下,一个 5 米长的梯子靠墙支撑,梯子的顶部高出地面 4 米。那么根据勾股定理,底部必须在 3 米远的地方。

假设梯子正在滑落,以至于梯子的顶部每秒下降 1 米。现在的问题是,在最初的那一刻,底部梯子从墙上移动的速度是多少?由于所有这些因素都是相关的,我们应该有足够的信息来解决。
第一步是为所有数量命名。从梯子顶部到地面的距离称为 y(t)。梯子底部与墙壁的距离称为 x(t)。将这些项联系起来的关键方程是勾股定理 (y(t)² + x(t)² = ⁵²)。
解决这个问题的一种方法是隔离 x(t),并根据每秒 1 米的丢包率找出 y(t) 必须是什么。然后你可以对结果函数进行导数(x 相对于时间的变化率)。
但是,对于同一问题,也存在不同的思考方式。方程的左侧是时间 (y(t)² + x(t)²) 的函数,它恰好等于一个常数,这意味着该值不会随着时间的流逝而改变,但仍被写为依赖于时间的表达式。这意味着我们可以像任何其他将 t 作为输入的函数一样操作它。这意味着我们可以取这个左侧的导数。这意味着,如果经过一点时间(一些小的 dt),这会导致 y 略微减少,x 略微增加。那么这就给我们留下了一个问题,x(t)² + y(t)² 变化了多少?

但是,对于同一问题,也存在不同的思考方式。方程的左侧是时间 (y(t)² + x(t)²) 的函数,它恰好等于一个常数,这意味着该值不会随着时间的流逝而改变,但仍被写为依赖于时间的表达式。这意味着我们可以像任何其他将 t 作为输入的函数一样操作它。这意味着我们可以取这个左侧的导数。这意味着,如果经过一点时间(一些小的 dt),这会导致 y 略微减少,x 略微增加。那么这就给我们留下了一个问题,x(t)² + y(t)² 变化了多少?

我们知道导数应该是 0,因为方程等于一个常数。但是,当您计算这个导数时,您实际上会得到什么呢?
x(t)² 的导数是 x(t) 的 2 乘以 x 的导数(链式法则)。2x dx 表示由 x 的某个变化引起的 x 平方变化的大小,然后我们除以 dt。同样,y(t)² 的变化速率是 y(t) 的 2 乘以 y 的导数。

现在这个整个表达式必须等于 0,这只是意味着 x² + y² 在梯子移动时不应该改变。在时间 t 等于 0 的起点,高度 y(t) 为 4 米,距离 x(t) 为 3 米。由于梯子的顶部每秒下降 1 米,因此导数 dy/dt 为每秒 -1 米。这提供了足够的信息来隔离 dx/dt。

当你计算时,dx/dt 结果是每秒 4/3 米。
三、结论
我解释这个梯子问题的原因是,我希望你把它比作求一条切线到一个圆的斜率的问题。在这两种情况下,我们都有 x² + y² = ⁵² 的方程。此外,在这两种情况下,我们最终都采用了表达式的每一侧的导数。但是对于梯子问题,表达式是时间的函数,因此取导数具有明确的含义(表达式随时间变化而变化的速率)。
但让圆示例奇怪的是,导数不是说 dt 已经过去了少量时间,这会导致 x 和 y 发生变化,而是只有这些自由浮动的轻推(dx 和 dy),它们与时间等公共变量无关。
让我们以一种很好的方式考虑这个问题。假设 x² + y² 等于 S。S 是两个变量(x 和 y)的函数。它获取平面上的每一个点 xy 并将其与一个数字相关联。对于圆上的点,该数字恰好是 25。如果您离开圆圈,该值会更大。对于更靠近原点的其他点 xy,该数字会更小。取 S 的导数意味着考虑这两个变量的微小变化,一些微小的变化 dy 到 y,一些微小的变化 dx 到 x(不一定让你留在圆圈里,它可以在任何方向)。从那里你问 S 的值变化了多少?

微移之前和之后的 S 值之差称为 dS。
现在让我们看看这张图片:

在这张图片中,我们可以看到我们从 x 等于 3 且 y 等于 4 的点开始。假设 dx 为 -0.02,dy 为 -0.01。
![]()
S 的减少(该步骤中 x² + y² 的变化量)由上面的等式表示。这就是这个衍生词的真正含义。请务必注意,这是一个近似值,对于较小的微移,它会变得越来越真实。这里的关键点是,当你把自己限制在圆上的点上时,你基本上是在说你想确保 S 的值不会改变(它从值 25 开始,你想保持它在那里,也就是 dS 应该是 0)。将 2x dx + 2y dy 设置为 0 是使这些微小步骤保持在圆圈上的条件。同样,这只是一个近似值,更准确地说,它使您保持在圆的切线上,但对于足够小的步长,它们本质上是相同的。
四、一个额外的例子
表达式 x² + y² = ⁵² 没有什么特别之处,所以让我们也考虑一下表达式 sin(x)y² = x。

这些曲线表示 sin(x) 时间 y² 的值恰好等于 x 值的所有点 xy。现在想象一下,使用组件 dx dy 迈出一些小步骤,而不是一个不一定让您保持在曲线上的步骤。

对这个方程的每一侧进行导数,就可以告诉我们在步骤中该侧的值发生了多少变化。当我们使用乘积规则对每一方进行导数时,我们得到的是:

将这些边设置为彼此相等是一种说法,无论坐标 dx 和 dy 是什么步长,如果它要使我们保持在曲线上,那么左手边和右边的值必须变化相同的量(这是原始方程 sin(x)y² = x 保持为真的唯一方式)。
从这里开始,根据你要解决的问题,你可以用代数的方式处理一些东西。最常见的目标通常是找到 dy 除以 dx。
相关文章:
微积分直觉:隐含微分
目录 一、介绍 二、梯子问题 三、结论 四、一个额外的例子 一、介绍 让我们想象一个半径为 5 的圆,以 xy 平面为中心。现在假设我们想在点 (3,4) 处找到一条切线到圆的斜率。 好吧,为了做到这一点,我们必须非常接近圆和…...
Matlab自学笔记三十五:表table数据与外部文件的读入和写出
1.首先新建一个表变量t xingming{zhangsan;lisi;wangwu}; xuehao{1001;1002;1003}; chengji[89 95;90 87;88 84]; ttable(xingming,xuehao,chengji) 2.把表t的数据写出到student.txt writetable(t,student.txt) %使用writetable函数写出数据到txt文件 3.从student.txt文…...
闯关leetcode——3.Longest Substring Without Repeating Characters
大纲 题目地址内容 解题代码地址 题目 地址 https://leetcode.com/problems/longest-substring-without-repeating-characters/description/ 内容 Given a string s, find the length of the longest substring without repeating characters. Example 1: Input: s “abc…...
Android Radio2.0——公告注册及监听(三)
前面文章内容介绍了 Radio 相关功能的设置,我们知道可以通过设置来监听不同内容的广播公告,但是在开启对应功能的同时,还需要先注册对应公告监听,这里我们就来看一下广播公告监听的注册流程。 一、注册公告 1、接口封装 private final AtomicBoolean mHasRegisterTa = n…...
【C++】类和对象(三)再探构造函数|static成员函数|友元函数|内部类|匿名对象|对象拷贝时的编译优化
欢迎来到HarperLee的学习笔记! 一、再探构造函数 初始化列表:构造函数初始化的第二种方式(第一种是使用函数体内赋值)。使用方式:以一个冒号:开始,用逗号,分隔数据成员列表,每个成员变量后面跟…...
2024中国算力大会 2024 China Computational Power Conference
文章目录 一、会议详情二、重要信息三、大会介绍四、出席嘉宾五、征稿主题六、咨询 一、会议详情 二、重要信息 大会官网:https://ais.cn/u/vEbMBz提交检索:EI Compendex、IEEE Xplore、Scopus会议时间:2024年9月27-29日会议地点:…...
jEasyUI 扩展行显示细节
jEasyUI 扩展行显示细节 jEasyUI 是一个基于 jQuery 的前端框架,它提供了一系列的 UI 组件,使得 Web 应用的界面开发变得更加简单快捷。在 jEasyUI 的表格(datagrid)组件中,扩展行显示细节是一个常用的功能,它允许用户通过点击一行来展开更多的信息,这样可以有效地展示…...
YOLOv8+Deepsort+PyQt+GUI 语义分割+目标检测+姿态识别 三者合一(集成于一套系统)综合视觉分析系统
综合视觉分析系统 技术栈: YOLOv8:用于目标检测,是一个快速且准确的目标检测框架。DeepSORT:用于目标跟踪,结合了深度学习特征提取和卡尔曼滤波器来预测目标轨迹。GUI:提供一个直观易用的图形用户界面&am…...
机器学习无监督学习
版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl1. 无监督学习概述 1.1 定义与特点 无监督学习是一种数据挖掘技术,它允许机器通过观察数据来学习数据的内在结构和模式,而无需预先标注的输出变量。这种方法特别适用于数据探索和发现隐藏在数据…...
windows10-VMware17-Ubuntu-22.04-海康2K摄像头兼容问题,求解(已解决)
文章目录 1.webrtc camera测试2.ffmpeg 测试3.Ubuntu 自带相机4.解决办法 环境:windows10系统下,VMware的Ubuntu-22.04系统 问题:摄像头出现兼容问题,本来是想开发测试的,Ubuntu方便些。买了海康2K的USB摄像头…...
【系统架构设计师】解释器模式
解释器模式(Interpreter Pattern)是一种行为型设计模式,它定义了文法的表示,并定义了一个解释器,该解释器使用该表示来解释语言中的句子。在解释器模式中,通常包括一个抽象语法树(Abstract Synt…...
Hive原理剖析
1. 概述 背景介绍 Apache Hive是一个基于Hadoop的开源数据仓库软件,为分析和管理大量数据集提供了SQL-like的接口。最初由Facebook开发并贡献给Apache,Hive现已成为大数据处理领域的重要工具之一。它将传统的SQL功能与Hadoop的强大分布式处理能力结合&…...
在 Ubuntu 上查看重复文件
一般情况下 1. 使用 fdupes 工具 fdupes 是一个专门用于查找重复文件的工具。 安装: sudo apt-get install fdupes 使用: fdupes -r /path/to/directory -r 选项会递归查找子目录中的重复文件。 2. 使用 rmlint 工具 rmlint 是另一个强大的重复文件查找工具…...
docker容器高效连接 Redis 的方式
在微服务架构中,Redis 是一种常见的高效缓存解决方案,通常用于存储临时数据、会话信息或 token。如何在服务容器中高效、稳定地连接 Redis 是架构设计中的一个重要环节。 这篇博客将以实际项目为例,详细介绍如何配置 Flask 应用中的服务容器…...
手撕Python之生成器、装饰器、异常
1.生成器 生成器的定义方式:在函数中使用yield yield值:将值返回到调用处 我们需要使用next()进行获取yield的返回值 yield的使用以及生成器函数的返回的接收next() def test():yield 1,2,3ttest() print(t) #<generator object test at 0x01B77…...
LabVIEW步进电机控制方式
在LabVIEW中控制步进电机可以通过多种方式实现。每种方法都有其独特的优缺点,适用于不同的应用场合。下面详细介绍几种常见的步进电机控制方式,并进行比较。 1. 开环控制(Open-Loop Control) 特点 通过定期发出脉冲信号来控制步进…...
vllm源码解析(五):LLM模型推理
八 模型推理细节探索 8.1 回顾下step的流程 def step(self) -> List[Union[RequestOutput, EmbeddingRequestOutput]]:# 多GPU并行推理时走AsyncLLMEngine分支。如果进入当前LLMEngine,性能会下降,这里会抛出异常。if self.parallel_config.pipeline_parallel_s…...
数学建模笔记——熵权法(客观赋权法)
数学建模笔记——熵权法[客观赋权法] 熵权法(客观赋权法)1. 基本概念2. 基本步骤3. 典型例题3.1 正向化矩阵3.2 对正向化矩阵进行矩阵标准化3.3 计算概率矩阵P3.4 计算熵权3.5 计算得分 4. python代码实现 熵权法(客观赋权法) 1. 基本概念 熵权法,物理学名词,按照信息论基本原…...
XGBoost算法-确定树的结构
我们在求解上面的w和obj的过程中,都是假定我们的树结构是确定的,因为当我们改变树中划分条件的时候,每个叶子节点对应的样本有可能是不一样的,我们的G和H也是不一样的,得到的最优w和最优obj肯定也是不一样的。 到底哪一…...
concurrentHashMap线程安全实现的原理
1. Segment 数组 ConcurrentHashMap 内部维护一个 Segment 数组,每个 Segment 都是一个小型的 HashMap。Segment 继承自 ReentrantLock,因此每个 Segment 都是一个可重入锁。 2. 并发级别 ConcurrentHashMap 在构造时可以指定并发级别(con…...
使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...
RocketMQ延迟消息机制
两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后…...
关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案
问题描述:iview使用table 中type: "index",分页之后 ,索引还是从1开始,试过绑定后台返回数据的id, 这种方法可行,就是后台返回数据的每个页面id都不完全是按照从1开始的升序,因此百度了下,找到了…...
cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...
ServerTrust 并非唯一
NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...
【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)
升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求ÿ…...
Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)
参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...
优选算法第十二讲:队列 + 宽搜 优先级队列
优选算法第十二讲:队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...
JVM虚拟机:内存结构、垃圾回收、性能优化
1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...
