自然常数以及指数函数

2026-05-04 一 17:42 2026-05-04 一 17:54

博弈而来的复利

复利指的是:每期利息自动加入本金,下一期按新的本金计算利息,实现“利滚利”。

别说“复利”,我对“利息”概念的理解都是迟钝的,在小时候被动地接受“利息”概念之前,从来没有想过借钱还要收利息。

这源于经验的缺乏,比如没有独立地拿着一笔钱去纯粹地赚取更多钱的经历(类似某些节目里给嘉宾一笔启动资金,让他们在陌生的城市赚到特定目标金额)。

如果有这类经历并且还在持续地获利中,那么当有人要从你这突然拿走一笔钱,并且告知几个月之后才还时,即便是信任的人,你可能也会想,我现在这笔钱可以买很多新工具、雇佣很多工人生产产品获取利润,或者下个月可以去进一批货并转手卖更高的价钱,怎么能随便借出去,除非还钱的时候能补偿这潜在的利润。

也就是说借出钱的一方可能会通过自己的一些乐观估计来算出一个机会成本,以此作为钱被临时剥夺的补偿。

但借钱人当然会反驳说你的投资不一定能达到预期,甚至还会亏损,因此这里有讨价还价的过程。

当大量这样的一对一借贷场景出现并反复博弈,那么相互之间会出现一个平衡。例如,放款的人可能会说,既然你觉得我自己的预期乐观,那么我们参考这个地区其他商人的预期,这样在某个地区就逐渐约定出一个大致的利率区间。

考虑到不同人借款的时间长度是不同的,需要对每个时长都贴上一个利率。

例如: 100 块钱借出去一年后应该还 112 块, 12 块是利息,一种简单且自然的细分法就是借出 1 个月的利息是 1 块。

由于利率是一个相对本金的百分比,它和本金数量无关,因此可以把利率单独提取出来称为 p, 它有一个时间基准,我们假设是一年。

那么十年利润就是 10p ,每个月的利率就是 p/12, 每天的利率是 p/365 。

但在更复杂的情况下,短期利率并不一定与长期利率呈线性比例关系;利率也可能不独立于本金,比如大额贷款可能享受更低利率,也可能因风险更集中而被要求更高的利率。所以说,能单独谈论一个固定的利率并对其直接平分只是最简单的一种理想情形。

有了对利率和利率均分的概念,那么再来讨论复利。

目前所说的存入 100 元,一年之后本息是 100+100p 块,这是一种单次结算利息的方案。它要求双方能确定一个还款日期,但如果借钱人不能确定自己多少天之后能还呢?

自然的想法是按天计算利息。假设一年按365天计,日利率为 \(p/365\)。

  • 一天后还:\(100 + \frac{100 p}{365}\) 元
  • 两天后还:\(100 + \frac{100 p}{365} \times 2\) 元
  • \(n\) 天后还:\(100 + \frac{100 p}{365} \times n = 100 \left(1 + \frac{p}{365} n\right)\) 元
  • 一年后还:\(100 + \frac{100 p}{365} \times 365 = 100+100p \) 元

可以看到,虽然结算了 365 次,但一年后的累计利息和用年利率结算一次的结果是一样的,就算按每秒划分,只要用年利率除以细分数,再用以上方式迭代,最终年利息也是一样的。它表明这种方案在不同密度的时间间隔结算结果是一致的。

这看上去很完美,所以,复利纯粹是出于贪婪吗?

不完全如此,考虑一个人借了 100 块钱,一个月后连本带息还给了放款人 101 块,此时放款人可以把 101 块继续借出去,以 101 作为本金去计算利息。

再进一步,放款人可以每次只把钱借出去一天,第二天收到本息后再放贷,这样每天他都以更高的本金在计算利息,而不是每天只能得到 \( \frac{100p}{365} \) 的利息。

放款人可以以此作为一个“强力的论据”,让借钱人同意把每天产生的利息记入本金,第二天在本息基础上继续算利息。

即便所有需要钱的人都抵制这种复利,放款人也可以每次只借出一天的钱,第二天收回一天的本息后把钱继续借给另一个反对复利的人一天。

继续推到极端,只要市场上有大量的只借 1 秒钟钱的人,那么就可以把利率细分到 \( \frac{p}{365*24*60*60} \) ,然后去计算复利,否则放款人可以每次只借出 1s ,下一秒收到本息后再把它借个另一个人 1s, 如此迭代。

虽然每个借款人计算的都是单次利息,但放款人收到的是复利的钱。

这里的代价是,放款人流程上变得更为复杂,每天都要借出并催回,借款的人则每次只能借到一天的钱。这总体看对借款人是不利的,因为现实中某些人可能需要持有更长时间的借款,而放债人只需要多雇佣几个人处理流程即可,所以最终借款人还是会同意接受复利。

放款人从经验上很容易看出不同划分下一年后复利的收益情况:

  • 一年记一次:本息 = \(100 \times (1+0.12) = 112\) 元。
  • 半年记一次(每期利率 6%):本息 = \(100 \times (1.06)^2 = 112.36\) 元,比 112 多 0.36 元。
  • 每季度记一次(每期利率 3%):本息 = \(100 \times (1.03)^4 \approx 112.5509\) 元,比 112.36 多约 0.19 元。
  • 每月记一次(每期利率 1%):本息 = \(100 \times (1.01)^{12} \approx 112.6825\) 元。

随着结算频率增加,本息逐渐增加,因此,即便现实中并不会催生出把复利间隔无限缩小的需求,但它会催生出对这种需求的想象。

但从经验上看,继续细分后利息的增幅是越来越小的,而且计算复杂度越来越大,在没有计算机的时代,现实中不会追求极端的高频结算,商人的更多关注点是如何提高放款利率上。

自然常数 e 的出现

看到随着结算频率增加而增长的放贷收益后,总有人会产生纯数学上的好奇心,想知道如果 \( (1+\frac{p}{n})^n \) 中 n 推向无穷的时候,放贷人是否可以获取到无限的利润?

首先可以考虑 p=1 的特殊情况,即 \( (1+\frac{1}{n})^n \) 的极限,人们可以列出 n 取 1,2,3… 等比较小的值下的结果,由于增幅越来越小,因此可以猜测它会趋近于一个常数值。

更准确的预估来自于雅各布·伯努利(Jakob Bernoulli), 他在 1683年通过二项式定理展开 \( (1+\frac{1}{n})^n \) 后可以给各个项设置上下限,发现这个值是在 2 到 3 之间。

用如今数学中微积分的一般流程,可以先证明序列是单调递增并且有上界(这部分可以参考其他资料),因此它有极限。

人们(具体来说是欧拉)用 e 来表示该极限,它是一个实数。

对于更一般的 p 值,根据以下变换:

\[ \left(1+\frac{p}{n}\right)^n = \left[\left(1+\frac{p}{n}\right)^{n/p}\right]^p \]

令 \(m = n/p\),当 \(n\to\infty\) 时 \(m\to\infty\),括号内就是 \( (1+\frac{1}{m})^m \) 的极限,和 p=1 时是一样的,因此 \( (1+\frac{p}{n})^n \) 极限是 \( e^p \)

这里我们假定 e 作为实数是可以参与指数运算的,即 \( e^p \) 是有意义,比如如果 p 是 2, 那么它就是两个 e 相乘,虽然我们不知道 e 是什么,它有无限不循环的十进制表示,但我们假定也期望它能参与加减乘除等运算。

为什么有这种考量?一个反例是,人们定义出 1-2 是 -1, 但除非引入虚数,否则无法计算 \( (-1)^{\frac{1}{2}} \) 。

论证实数能够参与各类计算被划分到了分析学的领域,可以参考如何捕捉实数的文章或其他资料,其中都建立了一般正实数 a 作为底时 \( a^x \) 函数的性质,包括代数运算性质。

\( e^x \) 的导数视角定义

光知道 \(e \approx 2.718\) 这个孤零零数并没有太多用处,它发挥作用的真正场所是作为指数函数的底之后的 \( e^x \) 的优异性质,尤其是其导数性质。

我们从一个新的视角切入到 \( e^x \), 并在下节论证这种视角下的 e 就是前文提到的 \( (1+\frac{1}{n})^n \) 的极限。

对于一般的指数函数 \(a^x\) ,根据导数的定义 \( f'(x) = \lim \frac{f(x+\Delta x)-f(x)}{\Delta x} \) 有: \[ (a^x)' = a^x \cdot \lim_{\Delta x\to 0} \frac{a^{\Delta x}-1}{\Delta x} \]

其中极限部分是一个只与底数 a 有关的常数,它表示的是 \(a^x\) 在 \(x=0\) 处的斜率。也就是说,指数函数,无论底是多少,其导数就是某个常数乘以自身,这完全来自于指数函数和导数的定义。

比如 \( 2^x \) 的导数应该就等于 \( c 2^x \), \( 3^x \) 的导数应该就等于 \( d 3^x \), 虽然不知道这里 c 和 d 是什么。

而只要大概绘制出 \( 2^x \) 和 \( 3^x \) 的图像,会发现它们在 0 点都是 1, 即所有 \( a^x \) 都经过 (0,1) 点,只是在这个点的斜率不同。

\( 3^x \) 在该点的斜率比 \( 2^x \) 更大,因为它比它增长更快。

当 \( a^x \) 中 a 从 2 趋近于 1 时,整个图像趋近于 y=1 这条水平直线。

因此直观上是存在某个底数 e ,满足 \( e^x \) 在 0 处的斜率等于 1。也就是说: \[ \lim_{\Delta x\to 0} \frac{e^{\Delta x}-1}{\Delta x} = 1 \] 那么 \((e^x)' = e^x \cdot 1 = e^x\)。

复利定义和导数定义的 e 的等价

以上我们用了和 \( (1+\frac{1}{n})^n \) 的极限一样的符号 e, 为了证明二者确实相等,先引入对数函数。

在导数定义下的 e 至少是大于 1 的,从图像中可以知道 \(y = e^x\) 是单调递增,那么它会有关于 y=x 对称的反函数,见其记作 \(x = \ln y\)。

两边对 \(x\) 求导:左边是 \(1\),右边是 \((\ln y)' \cdot e^x\)(链式法则)。 所以: \[ 1 = (\ln y)' \cdot e^x \quad\Rightarrow\quad (\ln y)' = \frac{1}{e^x} = \frac{1}{y} \]

也就是说,ln(x) 的导数就是 1/x ,而 ln(x) 的反函数的导数还是 ln(x) 的反函数。

因此,根据更通用的微积分基本定理, 1/x 的积分是 ln(x), 同时,因为 \( e^0=1 \) 所以 ln(1)=0

ln(a) 就可以解释为 1/x 曲线从 1 到 a 下方的面积(如果 a<1 那么会得到负面积): \[ \ln a = \int_1^a \frac{1}{t}\, dt \]

这里我们额外得到了 ln(x) 的积分定义和几何解释,实践中可以用数值计算的办法(比如分割为多个矩形求面积和)去得到对数函数的估计。

由于指数有 \(e^{x+y}=e^x e^y\) 性质,那么作为反函数的 ln(x) 可以直接推导出乘法变加法性质:

\[ \ln(xy) = \ln(e^{\ln x} e^{\ln y}) = \ln(e^{\ln x + \ln y}) = \ln x + \ln y. \]

类似地,\( \ln(x^r) = r \ln x \) 也成立。

另外,从积分定义视角,我们可以分析对于 \(t > 0\) ,在区间 \([1, 1+t]\) 上,1/u 是递减函数,因此对于任意 \(u \in [1, 1+t]\),有 \[ \frac{1}{1+t} \le \frac{1}{u} \le 1. \] 积分(积分区间长度为 t)得: \[ \int_1^{1+t} \frac{1}{1+t} du \le \int_1^{1+t} \frac{1}{u} du \le \int_1^{1+t} 1 du, \] 即 \[ \frac{t}{1+t} \le \ln(1+t) \le t. \]

有了这些工具,回到极限

\[ e = \lim_{n\to\infty} \left(1+\frac{1}{n}\right)^n \]

考虑数列 \(a_n = (1+1/n)^n\),取对数,并利用对数性质: \[ \ln a_n = n \ln\left(1+\frac{1}{n}\right) \]

根据上一个不等式有:

\[ \frac{1/n}{1+1/n} \le \ln\left(1+\frac{1}{n}\right) \le \frac{1}{n} \] 乘以 n: \[ \frac{1}{1+1/n} \le n\ln\left(1+\frac{1}{n}\right) \le 1 \]

左边极限为 1,不等式两边最终都为 1, 因此在 n 趋于无穷时 \(\lim_{n\to\infty} n\ln(1+1/n)=1\)。因此 \(\lim_{n\to\infty} \ln a_n = 1\), 因此 \( a_n \) 极限就是 e

回到 \( a^x \) 导数

有了 \( e^x \) 和 ln(x) 的定义之后,根据换底公式,根据换底公式 \( a^x = e^{x \ln a} \),利用链式法则求导,任何 \( a^x \) 形式的导数就是:

\[ \frac{d}{dx} a^x = \frac{d}{dx} e^{x \ln a} = e^{x \ln a} \cdot \ln a = a^x \ln a. \]

幂级数视角

当知道 \( e^x \) 的导数是自身,且 \( e^0 = 1 \) 时,结合泰勒展开(在 \( x=0 \) 处)即可得到其幂级数表达式:

\[ e^x = \sum_{n=0}^{\infty} \frac{f^{(n)}(0)}{n!} x^n = \sum_{n=0}^{\infty} \frac{1}{n!} x^n = 1 + x + \frac{x^2}{2!} + \frac{x^3}{3!} + \cdots. \]

至此我们得到两个极限的等价 \( \lim (1+\frac{1}{n})^n = \sum_{n=0}^{\infty} \frac{x^n}{n!} \)

它和 \( (1+x)^2 = 1+2x+x^2 \) 是类似的,即一个是乘积形式另一个则是求和形式,只不过是在无限个项上的推广。

微分方程视角

前文讨论的导数等于自身的函数定义来自于对 \( a^x \) 求导中添加的“辅助线”。

但在现实中,导数等于自身则源于简单的增长模型(它有实际意义)的微分方程。

微分方程是描述函数和函数导数之间关系的方程,物理中极为常见,比如经典的牛顿定律 F=ma 就可以看作微分方程,因为加速度 a 是速度函数 v(t) 的导数,也是位移函数 x(t) 的二阶导数,因此如果力是一个随时间变化的函数,那么就可以写成 \( F(t)=m x''(t) \), 根据力函数 F(t) 计算物体的轨迹 x(t) 就是求解该微分方程的问题。

增长模型的例子是: 某种生物种群的数量 y 随时间 t 的变化率与当前数量成正比:\(\frac{dy}{dt} = k y\)。当 \(k=1\) 时,就得到最简形式: \[ \frac{dy}{dt} = y. \]

给定初始条件 \(y(0)=1\),我们可以通过逐次逼近来求解。设 \(y(t)=1+f(t)\),其中 \(f(0)=0\)。

代入方程得 \(y'(t) = f'(t) = y(t) = 1+f(t)\),于是 \(f'(0)=1\),从而 \(f(t)\approx t\)。

再设 \(f(t)=t+g(t)\),\(g(0)=0\),代入得 \(1+g'(t)=1+t+g(t)\),即 \(g'(t)=t+g(t)\),进而 \(g'(0)=0\),所以 \(g(t)\approx t^2/2\)。

重复此过程,我们得到: \[ y(t)=1+t+\frac{t^2}{2!}+\frac{t^3}{3!}+\cdots = \sum_{n=0}^{\infty}\frac{t^n}{n!}. \]

因此,即便没有导数的极限定义(比如微积分发明前及早期阶段),人们依靠无穷级数来处理微分方程,也能求解到指数函数的泰勒展开形式,尽管从现在来看这并不严格,但它可以同构经验去检验,至少在大量特定问题上是准确的。后来的严格化工作(如极限理论)更像是为了解释和支撑这些行之有效的技巧的补充工作,当然这种补充建立其了更稳固和系统的工具,从而可以解决更多新问题。

radioLinkPopups

如对本文有任何疑问,欢迎通过 github issue 邮件 metaescape at foxmail dot com 进行反馈