如何理解导数:商法则、指数与对数

上次 我们曾用“机器”隐喻来理解导数。函数是一台机器,有输入(x)和输出(y)手柄。导数 dy/dx 表示当我们抖动输入时,会得到多少“输出抖动”。

simple function

现在,我们可以用更小的机器组成更大的机器(h = f + g,h = f * g 等)。导数规则(加法法则、乘积法则)给出了整体抖动与各部分的关系。链式法则很特别:我们可以“放大”单个导数,并用另一个输入来重写它(就像将“英里每小时”转换为“英里每分钟”——我们在转换“时间”输入)。

回顾完这些,让我们建立对高级导数规则的直觉。前进!

除法(商法则)

啊,商法则——那个没人记得的规则。哦,也许你通过一首歌记住了它,比如“低 d 高,高 d 低……”,但那不是理解!

是时候可视化除法法则了(现实生活中谁会说“商”呢?)。关键是把除法看作一种乘法:

\displaystyle{h = \frac{f}{g} = f \cdot \frac{1}{g}}

derivative product rule

我们有一个矩形,有面积,但边长是“f”和“1/g”。输入 x 在一边变化(dx),因此 f 和 g 变化(df 和 dg)……但 1/g 如何变化?

链式法则来救命!我们可以把 1/g 包装成一个干净整洁的变量,然后“放大”来看,里面确实有除法。

所以,我们假装 1/g 是一个单独的函数 m。在函数 m 内部是除法,但暂时忽略它。我们只想结合两种视角:

  • f变化了df,贡献面积df * m = df * (1 / g)
  • m变化了dm,贡献面积dm * f = ?

我们轻松地将 m 变成了 1/g。很好。但 dm(1/g 的变化量)如何用 dg(g 的变化量)来表示?

我们想要 1/g 相邻值之间的差:1/g 和 1/(g + dg)。例如:

  • 1/4和1/3的差是多少?1/12
  • 那1/5和1/4呢?1/20
  • 1/6 和 1/5 呢?1/30

这是怎么做到的?我们找到公分母:对于 1/3 和 1/4,公分母是 1/12。“相邻”值(如 1/3 和 1/4)之间的差将是 1 / 公分母,即 1 / (x * (x + 1))。看看你能否推导出原因!

\displaystyle{\frac{1}{x + 1} - \frac{1}{x} = \frac{-1}{x(x+1)}}

如果我们使导数模型完美,并假设相邻值之间没有差异,那么 +1 就会消失,得到:

\displaystyle{\frac{-1}{x(x+1)} \sim \frac{-1}{x^2}}

(这是一条有用的一般性事实:从 1/100 到 1/101 的变化 = 一万分之一)

这个差是负的,因为新值(1/4)小于原值(1/3)。那么实际变化是多少?

  • g 变化了 dg,所以 1/g 变成 1/(g + dg)
  • 瞬时变化率为 -1/g^2 [正如我们之前所见]
  • 总变化 = dg * 速率,即 dg * (-1/g^2)

几个直觉检查:

  • 为什么导数是负的?随着 dg 的增加,分母变大,总值变小,所以我们实际上在缩小(1/3 到 1/4 是缩小了 1/12)。

  • 为什么我们得到 -1/g^2 * dg 而不是仅仅 -1/g^2?(这起初让我困惑)。记住,-1/g^2 是 链式法则转换因子 “g”和“1/g”尺度之间的换算关系(就像说 1 小时 = 60 分钟)。很好。你仍然需要乘以你在“g”尺度上走了多远,即 dg!一小时可能是 60 分钟,但你想转换多少?

  • dm 在哪里?m 是 1/g 的另一个名称。dm 代表 1/g 的总变化,正如我们所见,它是 -1/g^2 * dg。这种替换技巧在微积分(Calculus)中到处使用,以帮助拆分复杂的计算。“哦,看起来我们在做直接的乘法。哎呀,我们放大后发现一个变量实际上是一个除法——改变视角到内层变量,并乘以换算因子。”

唷。要将我们的“dg”摆动转换为“dm”摆动,我们做:

\displaystyle{dm = \frac{-1}{g^2} \cdot dg}

得到:


\begin{aligned}
dh &= (df \cdot m) + (f \cdot dm) \\
dh &= (df \cdot \frac{1}{g}) + (f \cdot \frac{-1}{g^2} \cdot dg)
\end{aligned}

derivative product rule

耶!现在,你那过于热心的教科书可能会将其简化为:

\displaystyle{ dh = \frac{df \cdot g - f \cdot dg}{g^2}}

这太烧脑了!太烧脑了!这种“简化”隐藏了除法法则(Division Rule)只是乘积法则(Product Rule)的一个变体。记住,仍然有两个面积碎片需要组合:

  • "f" (分子) 的增量按预期增长
  • "g" (分母) 的增量是 负的 (随着 g 增大,面积变小)

凭你的直觉,你知道是分母贡献了负变化。

指数 (e^x)

e 是我最喜欢的数字。它具有性质

\displaystyle{\frac{d}{dx} e^x = e^x}

用英文说就是,“e 变化其当前数量的 100%”(了解更多).

“当前数量”假设 x 是指数,并且我们想从 x 的角度看变化(df/dx)。如果 u(x)=x^2 是指数,但我们仍然想从 x 的角度看变化呢?


\begin{aligned}
u &= x^2 \\
\frac{df}{dx} e^u &= ?
\end{aligned}

又是链式法则(Chain Rule)——我们想放大到 u,到达 x,看看 dx 的摆动如何改变整个系统:

  • x 变化了 dx
  • u 变化了 du/dx,即 d(x^2)/dx = 2x
  • e^u 如何变化?

现在记住,e^u 不知道我们想从 x 的角度看变化。e 只知道其导数是当前数量的 100%,即指数 u:

\displaystyle{ \frac{d(e^u)}{du} = e^u }

总的改变,按每个 x 计算是:

\displaystyle{ \frac{d(e^u)}{dx} = \frac{du}{dx} e^u = 2x \cdot e^u = 2x \cdot e^{x^2} }

这起初让我困惑。我最初以为导数需要我们把“u”拿下来。不——e^foo 的导数是 e^foo。没有更多了。

但如果 foo 受其他任何东西控制,那么当我们跳入那个内部视角时,我们需要乘以变化率乘以换算因子(d(foo)/dx)。

自然对数

ln(x) 的导数是 1/x。通常它是作为一个既定事实给出的。

我的 直觉 是将 ln(x) 视为增长到 x 所需的时间:

  • ln(10) 是在 100% 连续增长下从 1 增长到 10 所需的时间

好吧。那么增长到“下一个”值(比如 11)需要多长时间呢?(x + dx,其中 dx = 1)

当我们在 x=10 时,我们以每秒 10 个单位的速度指数增长。大约需要 1/10 秒 (1/x) 才能到达下一个值。而当我们在 x=11 时,需要 1/11 秒才能到达 12。依此类推:到达下一个值的时间是 1/x。

导数

\displaystyle{\frac{d}{dx}\ln(x) = \frac{1}{x}}

主要是需要记住的事实,但结合“增长时间”的解释就说得通了。

棘手的例子:x^x

是时候检验我们的直觉了:x^x 的导数是什么?

\displaystyle{\frac{d}{dx} x^x = ? }

这是个棘手的问题。有两种方法:

方法1:将一切用e重写。

哦,e,你太神奇了:


\begin{aligned}
h(x) &= x^x \\
 &= [e^{\ln(x)}]^x \\
 &= e^{\ln(x) \cdot x}
\end{aligned}

任何指数 (a^b) 实际上只是不同外衣下的 e:[e^ln(a)]^b。我们只需要求 e^foo 的导数,其中 foo = ln(x) * x。

但等等!因为我们想要关于“x”的导数,而不是 foo,所以我们需要切换到 x 的视角并乘以 d(foo)/dx:


\begin{aligned}
\frac{d}{dx} \ln(x) \cdot x &= x \cdot \frac{1}{x} + \ln(x) \cdot 1 \\
&= 1 + \ln(x)
\end{aligned}

"ln(x) * x" 的导数只是乘积法则的快速应用。如果 h=x^x,最终结果是:

\displaystyle{h'(x) = (1 + \ln(x)) \cdot e^{\ln(x) \cdot x} = (1 + \ln(x)) \cdot x^x}

我们将 e^[ln(x)*x] 写回原始记法 x^x。耶!直觉是“用 e 重写并遵循链式法则”。

方法2:独立的观点

记住,导数假设系统的每个部分独立工作。不要将 x^x 视为一个大块,而是假设它由两个相互作用的函数组成:u^v。然后我们可以分别加上它们的贡献。不过我们有点狡猾,u 和 v 实际上是相同的 (u = v = x),但别让它们知道!

从 u 的角度看,v 只是一个静态幂(例如,如果 v=3,那么就是 u^3),所以我们有:

\displaystyle{\frac{d}{du} u^v = v \cdot u^{v - 1}}

而从 v 的角度看,u 只是一个静态底数(如果 u=5,我们有 5^v)。我们将其改写成以 e 为底,得到


\begin{aligned}
\frac{d}{dv} u^v &= \frac{d}{dv} [e^{\ln(u)}]^v \\
&= \frac{d}{dv} e^{\ln(u) \cdot v} \\ 
&=  \ln(u) \cdot e^{\ln(u) \cdot v}
\end{aligned}

我们将每个视角的贡献加起来得到总变化:

\displaystyle{\ln(u) \cdot e^{\ln(u) \cdot v} + v \cdot u^{v - 1} }

然后揭晓:u = v = x!这个新视角没有转换因子 (du/dx = dv/dx = dx/dx = 1),我们有:


\begin{aligned}
h' &= \ln(x) \cdot e^{\ln(x) \cdot x} + x \cdot x^{x - 1} \\
 &= \ln(x) \cdot x^x + x^{x - 1 + 1} \\
 &= \ln(x) \cdot x^x + x^x \\
 &= (1 + \ln(x)) \cdot x^x
\end{aligned}

和之前一样!从几个不同角度处理 x^x 让我相当兴奋。

顺便说一下,使用 Wolfram Alpha(就像这样)来检查你的导数结果(点击“显示步骤”)。

问题:如果u更复杂,我们在哪里使用du/dx?

想象 u 是一个更复杂的函数,比如 u=x^2 + 3:我们会在哪里乘以 du/dx?

我们来思考一下:du/dx 仅从 u 的视角起作用(当 v 变化时,u 是一个静态值,u 是否可以进一步用 x 分解并不重要)。u 的贡献是

\displaystyle{\frac{d}{du} u^v = v \cdot u^{v - 1}}

如果我们想要“dx”的视角,我们会在包含 du/dx:

\displaystyle{\frac{d}{du} \frac{du}{dx} u^v = v \cdot u^{v - 1} \frac{du}{dx}}

我们乘以“du/dx”转换因子,以从 x 的视角看待事物。类似地,如果 v 更复杂,计算 v 的视角时我们会有一个 dv/dx 项。

看看发生了什么——我们找出了通用的 d/du,并在需要时将其转换为更具体的 d/dx。

用无穷小更容易

在 dy/dx 中将 dy 与 dx 分开是“违反”极限规则的,但用无穷小(Infinitesimal)处理时效果很好。你可以很快推导出导数(Derivative)法则:

乘积法则:


\begin{aligned}
(fg)' &= (f + df)(g + dg) - fg \\
&= [fg + f dg + g df + df dg ]- fg \\
&= f dg + g df + df dg
\end{aligned}

当从无穷小世界跳回常规数系时,我们将“df * dg”设为零。

用“g 变化了多少?f 变化了多少?”来思考,导数就容易理解了。最后“除以”dx。

总结:看见机器

我们的目标是理解微积分(Calculus)的直觉,而非死记硬背。我需要一些类比来启发思考:

  • 函数是机器,导数描述了“微动”行为
  • 导数法则通过各部分的微动找出“整体微动”
  • 链式法则将视角缩小(小时 => 分钟)
  • 乘积法则增加面积
  • 商法则增加面积(但其中一部分贡献为负)
  • e 的变化量等于当前量的 100% (d/dx e^x = 100% * e^x)
  • 自然对数是 e^x 达到下一个值所需的时间 (x 单位/秒 意味着 1/x 达到下一个值)

通过练习,想法开始融会贯通。别担心卡壳——我在处理指数时仍然会过度使用链式法则(Chain Rule)。学习是一个过程!

数学愉快。

附录:偏导数

假设我们的函数依赖于两个输入:

\displaystyle{f(x,y)}

f 的导数可以从 x 的视角(f 如何随 x 变化?)或 y 的视角(f 如何随 y 变化?)来看。同样的想法:我们有两个“独立”的视角,将其结合起来得到整体行为(就像结合两个的视角 唯我论者,他们各自认为自己是宇宙中唯一的“真实”人物)。

如果 x 和 y 依赖于同一个变量(比如 t,时间),我们可以写出以下内容:

\displaystyle{\frac{df}{dt} = \frac{df}{dx} \cdot \frac{dx}{dt} + \frac{df}{dy} \cdot \frac{dy}{dt}}

这有点像链式法则——我们结合两个视角,对于每个视角,我们深入其根本原因(时间)。

如果 x 和 y 是相互独立的,我们用一个向量表示沿每个轴的导数:

\displaystyle{(\frac{df}{dx}, \frac{df}{dy})}

这就是 梯度(gradient),一种表示“从这一点出发,如果你沿 x 或 y 方向移动,你将如何变化”的方式。我们将一维的“视角”结合起来,以理解整个二维系统。哇。

本系列其他文章

  1. 学习微积分的温和入门
  2. 用银行账户类比理解微积分
  3. 史前微积分:发现 Pi
  4. 一个微积分类比:积分(Integral)即乘法
  5. 微积分:建立对导数(Derivative)的直觉
  6. 如何理解导数:乘积法则、幂法则与链式法则
  7. 如何理解导数:商法则、指数与对数
  8. 极限(Limit)的直观介绍
  9. 泰勒级数的直觉(DNA 类比)
  10. 我们为什么需要极限和无穷小(Infinitesimal)?
  11. 学习微积分:克服我们对精确性的人为需求
  12. 一场关于 0.999... = 1 的友好讨论
  13. 类比:微积分相机
  14. 抽象练习:微积分图形
  15. 快速洞察:用微积分做更简单的算术
  16. 如何用微积分将 1 加到 100
  17. Sin(x) 的积分:几何直觉

加入 45 万月度读者

喜欢这篇文章?还有更多内容能帮你建立持久、直观的数学理解。加入通讯以获取额外内容和最新更新。