指数函数的导数与 e

任何 a^x 的导数都是它自己乘一个常数;e 就是让那个常数恰好等于 1 的底。于是 e^x 成了求导操作下的不动点。

8 分钟思维方法: 不变量

找一个怎么变都不变的量,用它锁死结论

这一片为什么存在

你大概已经背下了 (e^x)′ = e^x,也大概觉得这有点像巧合:偏偏有这么一个数,求导拿它没办法。这一片要做的事是把这个巧合拆掉。你会看到 e 不是被发现的常数,而是被一个要求逼出来的解;而在解出它之前,所有指数函数的导数长什么样,其实已经定死了。

内容

先把一个容易滑过去的差别摆正。x³ 里变的是底,指数钉死;2^x 里变的是指数,底钉死。这是两台完全不同的机器。幂法则是给前一台造的,硬套到后一台上,会得到 x·2^(x−1) 这种没有意义的东西。

那第二台机器自己的脾气是什么?是走一步就乘一个固定倍数。从 x 走到 x+h,函数值从 a^x 变成 a^x·a^h。注意 a^h 这个倍数只跟你走了多远有关,跟你从哪里出发完全无关。在 x=0 处走 0.001,和在 x=100 处走 0.001,乘的是同一个数。

把这句话翻译成增量:Δf = a^x·(a^h − 1)。右边明明白白地分成两块。一块是 a^x,也就是你当前站的高度;另一块 (a^h − 1) 只和步长有关。两边除以 h 再让 h 变小,就得到一句话:斜率等于当前高度乘一个只跟底数有关的常数。

这句话值得停一下。它是说,指数函数在任何一点的陡峭程度,都严格正比于它在那一点的高度。爬得越高,爬得越快,而且快与高的比例从头到尾一样。想象一堆分裂中的细胞:翻倍所需的时间是固定的,所以数量越多,每秒新增的个数就越多,新增速度和当前数量成同一个比例。

于是真正不变的东西浮出来了:斜率除以自身。这个比值在整条曲线上是同一个数,把它记成 M(a)。所有指数函数都满足导数等于自己乘 M(a)。剩下的全部问题,只是 M(a) 到底是多少。

它确实随底数变。用计算器粗测一下:M(2) ≈ 0.693,M(3) ≈ 1.099。底越大,每走一步乘的倍数增长越猛,M 也就越大。M(2) 小于 1,M(3) 大于 1,而 M 是随 a 连续变化的。那么在 2 和 3 之间,一定有某个底让 M 恰好等于 1。

这个底就是 e。请注意这个顺序:不是先有 2.718 这个数,再发现它好用;而是先提出我要一个 M 等于 1 的底,再去解出它等于 2.71828…。e 是一个方程的解,小数展开只是这个解的长相。

一旦 M(e)=1,e^x 求导之后原封不动。求导这个操作会把几乎所有函数打乱,唯独在它这里停住。这也就是它在增长、衰减、复利、放射性、微分方程里无处不在的原因:凡是变化速度正比于当前量的东西,它的自然语言就是 e^x。

设 a>0 且 a≠1,f(x)=a^x。这里 a 是底数,x 是自变量。

按导数定义,f′(x)=lim_{h→0}(a^(x+h) − a^x)/h,其中 h 是自变量的增量。

关键一步是指数律 a^(x+h)=a^x·a^h。代入后,a^x 与 h 无关,可以提到极限外面:

f′(x)=a^x·lim_{h→0}(a^h − 1)/h。

右边这个极限式子里已经不含 x,它只由 a 决定。把它记作 M(a),即 M(a)=lim_{h→0}(a^h − 1)/h。

于是对每个 a 都有 (a^x)′=M(a)·a^x。M(a) 的几何身份是 a^x 在 x=0 处的切线斜率,因为 a^0=1,那里的差商恰好就是 (a^h − 1)/h。

把结论改写成 f′(x)/f(x)=M(a)。左边随 x 变化的一切都消掉了,右边是常数,这就是那个不变量。

现在定义 e:使 M(e)=1 的那个底数。M 在 a>0 上连续且严格递增,且 M(2)<1<M(3),所以这样的底存在且唯一。代回上式即得 (e^x)′=e^x。

一句提醒:这条只对 e^x 本身成立。对 e^(2x),令 u=2x,链式法则给出 (e^(2x))′=2·e^(2x)。

跟着做一遍

只用一个能算乘方的计算器,不查任何公式:量出 2^x 的斜率与自身之比,确认它不随位置改变,再据此把 e 卡在两个数之间。

  1. 取 h=0.001,算 (2^0.001 − 1)/0.001 ≈ 0.6934。因为 2^0=1,这就是 2^x 在 x=0 处的斜率。
  2. 换个点再量一次:(2^1.001 − 2)/0.001 ≈ 1.3868。这是 x=1 处的斜率,函数值是 2。
  3. 把每处斜率除以该处的函数值:0.6934÷1 = 0.6934,1.3868÷2 = 0.6934。两处一模一样。
  4. 所以 (2^x)′ = 0.6934·2^x,而不是 2^x。差的正是那个约 0.69 的因子。
  5. 换底数 3 重做第一步:(3^0.001 − 1)/0.001 ≈ 1.0992。这次比值大于 1。
  6. 已知比值小于 1(底 2)、大于 1(底 3),而它随底数连续变化,中间必有一个底使比值恰为 1。
  7. 二分试探:底取 2.7 得 ≈0.9937,还差一点;底取 2.72 得 ≈1.0011,过了一点。
  8. 把这个底记作 e,你量出的结论是 2.7 < e < 2.72。你没有查表,是解出来的。

结果

你亲手验到两件事。第一,2^x 的斜率与自身之比在 x=0 和 x=1 处相同,都是 0.6934,这个比值是不随位置改变的不变量。第二,这个比值随底数连续变大,在 2.7 与 2.72 之间穿过 1。穿过的那一点就是 e = 2.71828…,在那里 (e^x)′ = e^x。

它在树上的位置

概念不是一篇一篇平铺的。下面两组是这一片真实的上下游:它靠着什么,又撑起了什么。

它靠着

它撑起

  • 对数函数的导数还没写
  • 洛必达法则还没写

标着「还没写」的那些没有链接,因为没有页面可去。它们不是被锁住的,也不是花钱能打开的:是还没有人把它们写出来——这是我们这边的事,不是你的。

读完之后

这一页是产品里的一天。产品是那棵树:你学到哪、哪块在衰减、明天该学什么。一篇读物回答不了这三个问题,树才回答。

看看那是什么意思