如何用指数和对数思考

有一个思考指数和对数问题的技巧。只需问两个问题:

1) 我们在谈论输入(变化的原因)还是输出(发生的实际变化)?

2) 我们在谈论增长者的视角,还是观察者的?

  • e和自然对数来自增长者的瞬时视角
  • 以10为底、以2为底等是方便人类观察的单位

在脑海中,我把这些选项放入一个表格:

exponent logarithm point of view comparison

我的想法像是 “我需要从增长者的角度来理解原因……那就是自然对数。”. (自然对数缩写为小写 LN,源于自命不凡的 logarithmus naturalis.)

我对于课程只描述表格的内部部分、原始函数,却没有解释何时使用它们的说明感到很沮丧!

那行不通,让我们直接练习用对数和指数思考。

场景:描述 GDP 增长

这是一个典型的增长例子:

  • 从2000年到2010年,美国GDP从9.9万亿美元变为14.4万亿美元

好的,这些数字确实显示了变化的发生。但我们可能想了解原因:什么样的平均年增长率会导致这种变化?

我立刻想到“对数”,因为我们是从增长逆向推导引起它的速率。我这样开始思考:

\displaystyle{\text{logarithm of change} \rightarrow \text{cause of growth} }

好的开始,但让我们更精确一些。

首先,应该用哪个对数?

默认情况下,我选择自然对数。大多数事件最终是以增长者(而非观察者)的角度来衡量的,我喜欢“伴随”增长元素来可视化正在发生的事情。(弧度类似:它们以运动者的角度测量角度。)

下一个问题:我们将对数应用于什么变化?

我们实际上只关心起点和终点之间的比率:10年内从9.9万亿到14.4万亿。这与在同一时期从9.90美元到14.40美元的增长相同。 速率 在同一时期从9.90美元到14.40美元。

我们可以更精确地思考:

\displaystyle{\text{natural logarithm of growth ratio} \rightarrow \text{cause of growth} }

\displaystyle{\ln(\frac{14.4}{9.9}) = .374}

好的,原因是0.374或37.4%的速率。我们完成了吗?

还没有。对数不知道变化持续了多长时间(我们没有输入10年,对吗?)。它们给出的速率假设所有变化发生在单个时间段内。

变化确实可以是单个年份37.4%的连续增长,或者是2年每年18.7%的增长,或其他组合。

根据场景,我们知道变化花了10年,所以速率必须是:

\displaystyle{ \text{rate} = \frac{.374}{10} = .0374 = 3.74\%}

从瞬时连续增长的角度看,美国经济每年增长3.74%。

我们现在完成了吗?还没有!

这个连续速率是从增长者的视角来看的,就好像我们“伴随”经济变化。银行家可能关心人类友好的逐年差异。我们可以通过让连续增长运行一年来计算:

\displaystyle{\text{exponent with rate and time} \rightarrow \text{effect of growth} }

\displaystyle{e^{\text{rate} \cdot \text{time}} = \text{growth}}

\displaystyle{e^{.0374 \cdot 1} = 1.0381}

由于复利效应,逐年增长率为3.8%,略高于3.74%的瞬时速率。另一种说法是:

  • 从瞬间看,经济的某一部分以3.74%的速率增长,模型为$e^(.0374 * years)$
  • 按年计算,考虑复利效应后,经济增长3.81%,模型为$1.0381^years$

在金融领域,我们可能想要可以与其他趋势良好比较的逐年变化率。在科学和工程领域,我们更倾向于基于瞬时速率对行为建模。

场景:描述自然增长

我讨厌像“假设细菌每24小时翻倍,找到其增长公式”这样人为的例子。细菌菌落会在干净的人类时间间隔内繁殖吗?我们会等待恰好翻倍吗?

一个更好的场景:“嘿,我发现了一些细菌,等了一个小时,菌团从2.3克长到了2.32克。我现在要去吃午饭了。请算出3小时后我回来时会有多少。”

让我们来建模。我们需要一个对数来找到增长率,然后用一个指数来预测未来的增长。像之前一样,我们先全部用自然对数来表示。

增长因子是:

\displaystyle{\text{logarithm of change} \rightarrow \text{cause of growth} }

\displaystyle{\ln(\text{growth}) = \ln(2.32/2.3) = .0086 = .86\%}

这是每小时的变化率,而用于预测未来的通用模型将是

\displaystyle{\text{exponent with rate and time} \rightarrow \text{effect of growth} }

\displaystyle{e^{.0086 \cdot \text{hours}} \rightarrow \text{effect of growth} }

如果我们从2.32开始,增长3小时,我们将得到:

\displaystyle{2.32 \cdot e^{.0086 \cdot 3} = 2.38}

顺便问一下,细菌需要多久才能翻倍?想象一下从1变成2:

\displaystyle{1 \cdot e^{.0086 \cdot \text{hours}} = 2}

我们可以机械地取两边的自然对数来“解除指数”,但让我们直观地思考一下。

如果2是最终结果,那么ln(2)就是让我们达到那个结果的增长输入(某个比率×时间)。我们知道比率是.0086,所以到达2所需的时间是:

\displaystyle{ \text{hours} = \frac{\ln(2)}{\text{rate}} = \frac{.693}{.0086} = 80.58}

菌落大约在80小时后翻倍。(庆幸你没一直等着吧?)

视角转变的真正含义是什么?

弄清楚你想要的是输入(增长的原因)还是输出(增长的结果)是相当直接的。但如何从生长者的角度来可视化呢?

想象一下,我们有小工人在构建最终的生长模式(参见 关于指数的文章):

compound interest

如果我们的增长率是100%,我们告诉初始工人(蓝先生)稳步工作,并在年底前制造出他自己的100%副本。如果我们每天跟踪他,我们看到他在年底确实完成了自己的100%副本(绿先生)。

但是……他正在建造的那个工人(绿先生)也开始工作了。如果绿先生在6个月时首次出现,他有半年的时间工作(与蓝先生相同的年增长率),他建造了红先生。当然,红先生只完成了一半,因为绿先生只有6个月。

如果绿先生在4个月后出现呢?一个月?一天?一秒?如果工人立即开始生长,我们就会得到由$e^x$定义的即时曲线:

continuous growth

自然对数从单个工人的角度给出了一个增长率。我们将该比率代入$e^x$来找到最终结果,包括所有的复利。

使用其他基数

切换到另一种对数(以10为底、以2为底等)意味着我们在寻找整体增长中的某种模式,而不是单个工人在做什么。

每个对数在看到变化时都会问一个问题:

  • 以e为底的对数:每个工人遵循的瞬时速率是多少?
  • 以2为底的对数:需要多少次加倍?
  • 以10为底的对数:需要多少次10倍增长?

以下是一个可以分析的情景:

  • 在30年间,典型芯片的晶体管数量从1000增长到10亿

你会如何分析这个?

  • 微芯片并非一个随时间平稳增长的单一实体。它们是来自不同竞争公司的独立版本,反映了一种普遍的技术趋势。
  • 既然我们不是“伴随”一个扩展的微芯片,那就使用一种为人类便利设计的尺度。翻倍比增长10倍更容易思考。

根据这些假设,我们得到:

\displaystyle{\text{logarithm of change} \rightarrow \text{cause of growth} }

\displaystyle{\log_2(\frac{\text{1 billion}}{1000}) = \log_2(\text{1 million}) \sim \text{20 doublings}}

“增长的起因”是20次翻倍,我们知道这发生在30年内。平均每年翻倍2/3次,即每1.5年翻倍一次——一个很好的经验法则。

从种植者的角度来看,我们将计算 $\ln(\text{10亿}/1000) / \text{30年} = 46\%$ 的连续增长(在这种情境下较难理解)。

我们可以将分析总结成一张表:

exponents transistor example

总结

学习就是找到一个概念背后的隐藏说明。它在何时使用?它为解决什么问题带来了什么视角?

我当前的解释是指数询问了原因与结果、种植者与观察者之间的关系。但我们永远学不完;乐趣之一在于看看我们如何重新诠释旧概念。

数学愉快。

附录:换底公式

以下是关于换底的思考。假设100%的连续增长率,

  • ln(x) 是增长到 x 所需的时间
  • ln(2) 是增长到 2 所需的时间

由于我们知道翻倍所需时间,我们可以看出在总时间内“容纳”多少次翻倍才能增长到x:

\displaystyle{\text{number of doublings from 1 to x} = \frac{\ln(x)}{\ln(2)} = \log_2(x)}

例如,从1到64发生了多少次翻倍?

嗯,ln(64) = 4.158。而ln(2) = 0.693。能容纳的翻倍次数是:

\displaystyle{\frac{\ln(64)}{\ln(2)} = \frac{4.158}{.693} = 6}

在现实中,计算器可能会丢失精度,所以如果可能的话,直接使用以2为底的对数函数。当然,我们可以有分数次:从1到2的平方根是“半次”翻倍,或log2(1.414) = 0.5.

改成以10为底的对数意味着我们在计算能容纳多少次10倍增长:

\displaystyle{\text{number of 10x-ings from 1 to x} = \frac{\ln(x)}{\ln(10)} = \log_{10}(x) }

很巧妙,对吧? 在现实世界中使用对数 阅读更多例子。

本系列其他文章

  1. 指数函数的直观指南与 e
  2. 揭开自然对数(ln)的神秘面纱
  3. 简单、复合和连续利率的可视化指南
  4. e 的常见定义(上色版)
  5. 理解指数(为什么 0^0 = 1?)
  6. 在现实世界中使用对数
  7. 如何用指数和对数思考
  8. 理解离散增长与连续增长
  9. 指数到底意味着什么?
  10. 问:为什么 e 很特别?(2.718...,而不是 2、3.7 或其他数字?)

加入 45 万月度读者

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