求导的那些规则对我来说从未真正讲通。加法法则、乘积法则、商法则——它们之间有什么关系?我们到底在试图 做?
以下是我对导数的理解:
- 我们有一个待分析的系统,即函数$f$
- 导数$f'$(也称为$\frac{df}{dx}$)是 瞬时行为
- 原来$f$是一个更大的系统($h = f + g$)的一部分
- 利用部分的行为,我们能推断出整体的行为吗?
是的。 每个部分都有一个关于它如何改变整个系统的“视角”。综合这些视角,就能得到整体的变化。
但是……为什么不一次性分析整个系统呢?原因就像你不会一口吞下一个汉堡:小部分更容易理解。
不必死记硬背各个法则,我们来看看它们如何相互配合:

目标是真正领悟‘整合视角’的概念。本篇涵盖加法、乘法、幂和链式法则。前进!
函数(Function):不是图表的任何东西
默认的微积分解释写着一个$f(x) = x^2$,然后给你塞一张图。这真的有助于我们的直观理解吗?
对我来说不是。图表将输入和输出压缩成一条曲线,隐藏了将两者相互转换的机制。但导数法则正是 关于 这个机制,所以让我们来看一看!
我将函数可视化为一个过程:输入$x$ => $f$ => 输出$y$

不只是我。看看这台不可思议的机械瞄准计算机(YouTube系列教程的开端).
这台机器用齿轮计算加法和乘法等函数——你可以亲眼看到它们 查看机制 展开!

把函数$f$想象成一台机器,有输入杆'x'和输出杆'y'。当我们调整$x$时,$f$设定$y$的高度。另一个类比:$x$是输入信号,$f$接收它,施展一些魔法,然后输出信号$y$。使用任何能让你理解的 类比 帮助理解的方式。
摆动,摆动,再摆动
导数就是函数的“逐时刻”行为。这是什么意思?(不要机械地念叨“导数就是斜率”。 在这附近看到任何图表了吗,朋友?)
导数就是我们摆动的幅度。杆子在$x$处,我们“摆动”它,看$y$如何变化。“哦,我们把输入杆移动了1毫米,输出移动了5毫米。有趣。”
结果可以写成‘输出摆幅/输入摆幅’或$\frac{dy}{dx}$(在我们的例子中是5毫米/1毫米=5)。这通常是一个公式,而不是一个静态值,因为它可能依赖于你当前的输入设置。
例如,当 $f(x) = x^2$ 时,导数(Derivative)是 $2x$。没错,你已经记住了。但这意味着什么呢?
如果我们的输入杠杆在 $x = 10$,我们轻微晃动它(移动 $dx=0.1$ 到 $10.1$),输出应该变化 $dy$。具体变化多少呢?
- 我们知道$f'(x) = \frac{dy}{dx} = 2x$
- 在$x = 10$处,“每单位输入变动对应的输出变动”为$2 * 10 = 20$。每单位输入变动,输出变动20个单位。
- 如果$dx = 0.1$,那么$dy = 20 * dx = 20 * .1 = 2$
确实,$10^2$ 和 $(10.1)^2$ 之间的差异大约是 $2$。导数(Derivative)估计了输出杠杆会移动多远(一个完美的无穷小(Infinitely small)晃动会移动2个单位;我们移动了2.01)。
理解导数(Derivative)法则的关键:
- 建立你的系统
- 分别变动系统的每个部分,观察输出变动了多少
- 合并结果
总晃动是每个部分晃动的总和。
加法与减法
现在是我们的第一个系统:$h(x) = f(x) + g(x)$

当输入 $x$ 变化时会发生什么?
在我的脑海里,我想“函数(Function) h 接受一个输入。它将相同的输入喂给 $f$ 和 $g$,并相加输出杠杆。$f$ 和 $g$ 独立晃动,甚至互不知道对方的存在!”
函数(Function) $f$ 知道它会产生一些晃动($df$),$g$ 知道它会产生一些晃动($dg$),而我们,作为巡视的监督者,知道它们各自的逐刻行为是被相加的:

再次,让我们描述每个“视角”:
- 整个系统的行为是$dh$
- 从$f$的角度看,它对整体贡献了$df$ [它不知道$g$的存在]
- 从$g$的角度看,它对整体贡献了$dg$ [它不知道$f$的存在]
系统的每一次变化都是由于某个部分的变化($f$ 和 $g$)。如果我们把每个可能变量的贡献加起来,我们就描述了整个系统。
df vs df/dx
有时我们使用 $df$,有时使用 $\frac{df}{dx}$ —— 这是怎么回事?(这让我困惑了一段时间。)
- $df$是“$f$改变了多少”的一般概念
- $\frac{df}{dx}$是“$f$改变了多少,相对于$x$改变了多少”的具体概念
通用的 $df$ 帮助我们理解整体行为。
打个比方:想象你正在横穿全国驾车,想测量汽车的燃油效率。你会测量行驶的距离,检查油箱用了多少油,最后做除法计算“每加仑英里数”。你分别测量了距离和汽油——你没有跳进油箱去实时获取速率!
在微积分(Calculus)中,有时我们想要考虑实际的变化,而不是比率。在 $df$ 层面上工作让我们有余地思考函数(Function)整体上如何晃动。我们可以 最终 将其按特定输入缩放。
现在我们就来做。上述加法法则可以写成基于“每 $dx$”的形式:
$\frac{dh}{dx} = \frac{df}{dx} + \frac{dg}{dx}$
乘法(乘积法则(Product Rule))
下一个难题:假设我们的系统将部分 $f$ 和 $g$ 相乘。它会如何表现?
![]()
嗯,棘手——这些部分交互得更紧密。但策略相同:从每个部分的视角看它们如何贡献,并将它们组合起来:
- $h$的总变化 = $f$的贡献(从$f$的角度)+ $g$的贡献(从$g$的角度)
看看这张图:

发生了什么?
- 我们有系统:$f$和$g$相乘,得到$h$(矩形的面积)
- 输入$x$在远处变化了$dx$。这意味着$f$变化了某个量$df$(考虑绝对变化,而不是变化率!)。类似地,$g$变化了自己的量$dg$。由于$f$和$g$发生了变化,矩形的面积也发生了变化。
- 从$f$的角度看,面积变化了多少?嗯,$f$知道自己变化了$df$,但不知道 没有头绪 g发生了什么。从$f$的角度看,它是唯一变动的,将增加一个面积片 = $df * g$
- 类似地,$g$不知道$f$如何变化,但知道它将增加一个面积片 = $dg * f$
系统总变化量 ($dh$) 是两个面积切片之和:
![]()
现在,就像我们的每加仑英里数例子一样,我们“除以 $dx$”并用 $x$ 的变化量来表示:
![]()
(题外话:除以 $dx$?工程师会微笑,数学家会皱眉。严格来说,$\frac{df}{dx}$ 不是一个分数:它是求导的整个操作(包含极限等)。但从无穷小和直觉的角度来看,我们是在“按 $dx$ 缩放”。我是微笑派。)
乘积法则(Product Rule)的关键:从两个视角各添加一个“面积小条”。
注意: 但是,当 $f$ 和 $g$ 同时变化时 ($df * dg$),难道没有任何影响吗?
有的。然而,这个面积是无穷小(Infinit estimal) * 无穷小(一个“二阶无穷小”),在当前层面上不可见。这是一个微妙的概念,但 $\frac{(df * dg)}{dx}$ 与普通导数如 $\frac{df}{dx}$ 相比会消失。我们独立地改变 $f$ 和 $g$,组合结果,并忽略它们同时变化的结果。
链式法则(Chain Rule):没那么糟
假设 $g$ 依赖于 $f$,而 $f$ 依赖于 $x$:

链式法则(Chain Rule)让我们“放大”一个函数,观察初始变化 ($x$) 如何最终影响结果 ($g$)。
解释1:转换速率(Rate)
一个常见的解释是将速率相乘:
![]()
$x$ 扰动 $f$。这产生了变化率 $\frac{df}{dx}$,它又通过 $\frac{dg}{df}$ 扰动 $g$。整个扰动就是:
![]()
这类似于化学课上的“因子标签”方法:
![]()
如果你的“每秒英里数”速率变化了,乘以转换因子得到新的“每小时英里数”。秒本身不直接知道小时——它通过秒 => 分钟的转换。
类似地,$g$ 不直接知道 $x$,只知道 $f$。函数 $g$ 知道它应该将输入按 $\frac{dg}{df}$ 缩放以得到输出。初始速率 ($\frac{df}{dx}$) 在沿着链条传递时被修改。
解释2:转换微动(Wiggle)
我更喜欢从“每单位扰动”的角度来看链式法则:
- $x$变动$dx$,所以
- $f$变动$df$,所以
- $g$ 摆动 $dg$
酷。但它们实际上是如何关联的?哦对了,导数(Derivative)!(它是输出扰动除以输入扰动):
![]()
记住,$f$ 的导数 ($\frac{df}{dx}$) 是对初始扰动的缩放量。对于 $g$ 也是如此:
![]()
它会将输入杠杆 ($f$) 上的任何扰动按 $\frac{dg}{df}$ 缩放。如果我们用 $dx$ 表示 $df$ 扰动:
![]()
我们有了链式法则的另一个版本:$dx$ 启动链条,最终得到 $dg$。如果我们想要用 $dx$ 表示的最终扰动,两边同时除以 $dx$:
![]()
链式法则不仅仅是单位因子消去——它是抖动的传播,每一步都会调整。
链式法则适用于多个变量($a$ 依赖于 $b$,$b$ 依赖于 $c$),只需逐次传递抖动。
尝试想象“放大”不同变量的视角。从 $dx$ 开始向上看,你会看到脉冲到达 $g$ 之前所需的整个变换链。
链式法则(Chain Rule):举例时间
假设我们将一个“平方机器”放在一个“立方机器”前面:
输入 $x$ => $f:x^2$ => $g:f^3$ => 输出 $y$
$f:x^2$ 表示 $f$ 对其输入进行平方。$g:f^3$ 表示 $g$ 对其输入(即 $f$ 的值)进行立方。例如:
输入(2) => f(2) => g(4) => 输出:64
从2开始,$f$ 将其平方(2^2 = 4),然后 $g$ 将其立方(4^3 = 64)。这是一个6次方机器:
![]()
那么导数是什么?
![]()
- $f$ 将其输入摆动改变 $\frac{df}{dx} = 2x$
- $g$ 将其输入摆动改变 $\frac{dg}{df} = 3f^2$
最终的变化是:
![]()
链式法则(Chain Rule):注意事项
函数将输入视为一个整体(Blob)
在例子中,$g$ 的导数($(x^3)' = 3x^2$)并不指原始的 $x$,而是指其输入的任何东西($(foo^3)' = 3*foo^2$)。输入是 $f$,它将 $f$ 视为单个值。之后,我们才将 $f$ 用 $x$ 重新表示。但 $g$ 与此无关——它不关心 $f$ 是否可以分解成更小的部分。
在许多例子中,变量$x$是“终点”。
问题通常会问 $\frac{df}{dx}$,即“从 $x$ 的角度给出变化”。现在,$x$ 可能依赖于更深的变量,但并没有要求那样。这就像说“我想要英里每小时。我不关心英里每分钟或英里每秒。只给我英里每小时”。$\frac{df}{dx}$ 意味着“一旦到达 $x$,就停止查看输入”。
为什么我们用链式法则(Chain Rule)相乘导数,而其他情况却相加?
通常的法则关注的是 整合不同视角 以获得整体图像。$f$ 看到什么变化?$g$ 看到什么变化?将它们加起来得到总和。
链式法则关注的是深入单个部分(如 $f$),并查看它是否受另一个变量控制。这就像查看一个时钟内部并说:“嘿,分针受秒针控制!”我们停留在同一个部分内。
当然,最终 $f$ 的这种“每秒”视角可能会被添加到 $g$ 的某个视角中。很好。但链式法则是关于深入 $f$ 的根本原因。
幂法则(Power Rule):常记却少解
$x^4$ 的导数是什么?是 $4x^3$。很好。你把指数降下来并减一。现在解释为什么!
嗯。有几种方法,但这是我最喜欢的新方法:$x^4$ 实际上是 $x * x * x * x$。它是4个“独立”变量的乘法。每个 $x$ 不知道其他 $x$ 的存在,它们可以看作是 $x * u * v * w$。
现在考虑第一个 $x$ 的视角:
- 它从 $x$ 变化到 $(x + dx)$
- 整体函数的变化是 $[(x + dx) - x][u * v * w] = dx[u * v * w]$
- 在“每 $dx$”基础上的变化是 $[u * v * w]$
类似地,
- 从 $u$ 的角度看,它变化了 $du$。它在“每 $dx$”基础上贡献了 $\frac{du}{dx}*[x * v * w]$。
- $v$ 贡献了 $\frac{dv}{dx} * [x * u * w]$
- $w$ 贡献了 $\frac{dw}{dx} * [x * u * v]$
帷幕揭开:$x$、$u$、$v$ 和 $w$ 是相同的!"视角"转换因子为 1($\frac{du}{dx} = \frac{dv}{dx} = \frac{dw}{dx} = \frac{dx}{dx} = 1$),总变化量为
![]()
一句话总结:$x^4$ 的导数是 $4x^3$,因为 $x^4$ 有四个相同的"视角"正在被组合。喔耶!
歇口气
我希望你以新的眼光看待导数:我们有一个由部分组成的系统,我们微调输入并观察整体如何变化。它关乎组合视角:每个部分为整体贡献了什么?
在后续文章中,我们将探讨更强大的法则(指数、商等)。数学愉快。