指数函数、对数函数与增长模型
上一章里,我们看过 x 2 x^2 x 2 、x 3 x^3 x 3 这样的幂,也看过由多项式相除得到的有理函数。现在把 x 3 x^3 x 3 中的两个角色换一下,变成 3 x 3^x 3 x :底数固定了,输入跑到了指数的位置。看起来只是换了个位置,描述变化的方式却跟着变了。
想象两套模拟增长规则:都从 80 开始,一套每小时加 20,另一套每小时增加当前数量的 25%。第一小时结束,它们恰好都是 100。你可能觉得区别不大,但第二小时就分开了:前者到 120,后者到 125。因为第二套规则中的“25%”,这次已经是拿 100 作基准来算了。
本章就从这个分岔处开始。我们先弄清楚“每次乘同一个倍数”会画出怎样的函数,再解决一个顺手就会冒出来的问题:如果知道想达到的结果,怎么反过来求要等多久?对数会在这里出现。它和前面学过的反函数是同一条线上的知识,并没有突然换一个话题。
每次加多少,与每次乘多少
把刚才的两套规则接着算下去。这里的数量是为观察规律设置的模拟量,可以取小数。
第一行数量的相邻差值总是 20,因此模型是 L ( t ) = 80 + 20 t L(t)=80+20t L ( t ) = 80 + 20 t 。第二行数量的相邻差值在变化,但相邻比值总是 1.25 1.25 1.25 。增加当前数量的 25%,意思是保留原来的 100%,再加上 25%,合起来就是乘 1.25 1.25 1.25 。所以第二个模型是
Q ( t ) = 80 ( 1.25 ) t . Q(t)=80(1.25)^t. Q ( t ) = 80 ( 1.25 ) t .
指数 t t t 记录乘法重复了多少次。经过 3 小时,计算的是 80 × 1.25 × 1.25 × 1.25 80\times1.25\times1.25\times1.25 80 × 1.25 × 1.25 × 1.25 ,不是把最初的 80 × 25 % 80\times25\% 80 × 25% 重复加三次。
恒定比值背后,是恒定百分比
一般的指数模型写成
Q ( t ) = a b t . Q(t)=ab^t. Q ( t ) = a b t .
对于描述正数量的增长模型,我们取 a > 0 a>0 a > 0 。代入 t = 0 t=0 t = 0 ,得到 Q ( 0 ) = a Q(0)=a Q ( 0 ) = a ,所以 a a a 是选定起算时刻的初值。把相邻时刻的数量相除,得到
Q ( t + 1 ) Q ( t ) = a b t + 1 a b t = b . \frac{Q(t+1)}{Q(t)}=\frac{ab^{t+1}}{ab^t}=b. Q ( t ) Q ( t + 1 ) = a b t
这就是底数 b b b 在模型中的意思:每过一个时间单位,数量乘上的因子 。若每小时增长 7%,b = 1.07 b=1.07 b = 1.07 ;若每小时减少 7%,b = 0.93 b=0.93 b = 0.93 。把带正负号的单位时间增长率记为 r r r ,两者的关系是
b = 1 + r , Q ( t ) = a ( 1 + r ) t . b=1+r,\qquad Q(t)=a(1+r)^t. b = 1 + r , Q ( t ) = a ( 1 + r ) t .
这里的 r r r 用小数表示,而且必须有 r > − 1 r>-1 r > − 1 ,保证底数为正。用单独的“衰减率” d d d 表示每次减少的正百分比时,则写成 a ( 1 − d ) t a(1-d)^t a ( 1 − d ) t ,其中 0 < d < 1 0<d<1 。
为什么不能把“增长 7%”直接写成乘 0.07 0.07 0.07 ?因为乘 0.07 0.07 0.07 留下的是原来的 7%,实际上减少了 93%。翻译百分比时,把“下一次一共还剩原来的多少倍”说出来,通常就不容易弄反。
同样,先涨 20% 再降 20% 也回不到原处。两个乘法因子相乘是 1.2 × 0.8 = 0.96 1.2\times0.8=0.96 1.2 × 0.8 = 0.96 ,最终只剩原来的 96%。两次百分比的基准量不同,不能把它们像固定数量一样直接抵消。
比较比值之前,先看时间间隔
“相邻比值相同”有一个容易被漏掉的前提:比较的是相等的输入间隔 。如果记录时间是 0、1、3 小时,两个相邻区间分别长 1 小时和 2 小时,本来就不该要求乘上同一个倍数。
对于任意固定时间间隔 Δ t \Delta t Δ t ,指数模型满足
Q ( t + Δ t ) Q ( t ) = b Δ t . \frac{Q(t+\Delta t)}{Q(t)}=b^{\Delta t}. Q ( t ) Q ( t + Δ t ) = b Δ t .
只要间隔相等,这个倍数就与从哪个时刻开始无关。例如每小时乘 1.25 1.25 1.25 ,那么每两小时就乘 1.25 2 = 1.5625 1.25^2=1.5625 1.2 5 2 = 1.5625 。若把时间单位改成“两小时”,模型的底数也要一起改变。
反过来,若某种量每两小时增加 21%,每小时的因子应该满足 b 2 = 1.21 b^2=1.21 b 2 = 1.21 ,因此 b = 1.1 b=1.1 b = 1.1 ,每小时增加 10%。把 21% 直接除以 2 得到 10.5%,会忽略中间那一次增长也参加了下一次增长。
指数增长的判断依据是相等时间内的比例规律,并不是“看上去涨得很快”。1000 t 2 1000t^2 1000 t 2 可能在某段时间里比 1.001 t 1.001^t 1.00 1 t 大得多,前者仍是幂函数,后者仍是指数函数。对于初值为正、底数大于 1 的固定指数模型,把时间延长得足够久,它最终会超过任意给定的线性增长模型;这说的是长期趋势,不是每个时刻的大小比较。先识别变化机制,再比较具体区间中的快慢。
下面的交互用于观察初值与比例参数。每次改变参数后,先比较相隔一个时间单位的两项,再看曲线为什么会随之改变。
指数不只是重复整数次乘法
如果 2 x 2^x 2 x 只在 x = 0 , 1 , 2 , … x=0,1,2,\ldots x = 0 , 1 , 2 , … 时有意义,它给出的只是一串点。函数还要回答 x = 1 2 x=\frac12 x = 2 、 ,甚至 时的输出。我们希望延伸之后仍保留熟悉的指数规律。
例如,2 1 / 2 2^{1/2} 2 1/2 与自己相乘应该等于 2 1 2^1 2 1 ,所以它是正的 2 \sqrt2 2 。 与 相乘应该等于 ,因此 。一般地,对于正底数 ,
b 0 = 1 , b − u = 1 b u , b m / n = b m n ( n 为正整数 ) . b^0=1,\qquad b^{-u}=\frac1{b^u},\qquad
b^{m/n}=\sqrt[n]{b^m}\quad(n\text{ 为正整数}). b 0 = 1 , b − u = b
无理指数的严格构造需要更进一步的实数与极限知识。现在可以先这样理解:用越来越准确的有理数逼近指数,相应幂值会确定一个一致的结果,于是整数点之间得到一条连续曲线。我们在本课中使用这条延伸后的实指数函数,不把它误认为只会在整数时刻跳动。
底数为什么必须大于零,而且不能等于一
本章讨论实数范围内、对所有实数输入都有定义的指数函数。标准形式 f ( x ) = b x f(x)=b^x f ( x ) = b x 要求
b > 0 , b ≠ 1. b>0,\qquad b\ne1. b > 0 , b = 1.
负底数的问题可以用一个输入看清:( − 4 ) 1 / 2 (-4)^{1/2} ( − 4 ) 1/2 在实数范围内没有值,所以 ( − 4 ) x (-4)^x ( − 4 ) x 不能像 4 x 4^x 4 x 一样接受每个实数。零底数也不行,例如 0 − 1 0^{-1} 要求除以零。底数为 1 时倒是能够计算,但 永远等于 1,退化成常函数,失去了本章要研究的比例变化和一一对应关系。
这里还要分清两个负号的位置。− 2 x -2^x − 2 x 表示先算正数 2 x 2^x 2 x ,再把结果取负;( − 2 ) x (-2)^x ( − 2 ) x 则真的使用了负底数。前者对所有实数 x x x 有定义,后者不是本章所说的实指数函数。
更一般的 a b x ab^x a b x 允许非零系数 a a a 为负,图像会在 x x x 轴下方。不过,若谈的是质量、数量等正量,我们会明确取 a > 0 a>0 a > 0 。“b > 1 b>1 b > 1 表示增长”的模型解释也建立在这个前提下;例如 随 增大反而递减。
从几个点读出整条曲线
先看 f ( x ) = 2 x f(x)=2^x f ( x ) = 2 x 的五个点:
向右走,函数值不断乘 2;向左走,函数值不断除以 2。无论怎样往左,都只能得到越来越小的正数,不能在某个有限输入处得到零。因此 y = 0 y=0 y = 0 是水平渐近线,定义域是 R \mathbb R R ,值域是 ( 0 , + ∞ ) (0,+\infty) ( 0 , + ∞ ) ,图像经过 ( 0 , 1 ) (0,1) ( 0 , 1 ) ,没有 x x x 轴截距。
“很接近零”也不等于“算成零”。比如 2 − 20 = 1 1048576 2^{-20}=\frac1{1048576} 2 − 20 = 1048576 1 ,虽然在普通图上很难看出它与横轴的距离,它仍严格大于零。上一章的渐近线在这里再次出现了,只是这次不用比较多项式的次数就能解释它的来历。
对于 g ( x ) = ( 1 2 ) x = 2 − x g(x)=\left(\frac12\right)^x=2^{-x} g ( x ) = ( 2 1 ) x = 2 ,可以直接用变换的眼光来看:把 的图像关于 轴翻过去。它仍经过 ,定义域和值域也相同,但现在向右走时不断减半,靠近 ;向左走时则越来越大。
对一般的 b x b^x b x ,b > 1 b>1 b > 1 时函数严格递增,0 < b < 1 0<b<1 0 < b < 1 时严格递减。这说明每一个正的输出只对应一个输入。稍后我们能把它倒过来成为对数函数,靠的就是这个性质。
例题:旧的变换规则,放到指数图像上
试着描述下面这个函数的图像、定义域、值域和截距:
g ( x ) = 4 − 2 ⋅ 3 x − 1 . g(x)=4-2\cdot3^{x-1}. g ( x ) = 4 − 2 ⋅ 3 x − 1 .
从母函数 y = 3 x y=3^x y = 3 x 出发,原来一个点记作 ( u , 3 u ) (u,3^u) ( u , 3 u ) 。要让新指数 x − 1 x-1 x − 1 仍等于原来的输入 u u ,就需要 ;输出则先乘 ,再加 4。整套动作可以直接写成
( u , 3 u ) ⟼ ( u + 1 , 4 − 2 ⋅ 3 u ) . (u,3^u)\longmapsto(u+1,\,4-2\cdot3^u). ( u , 3 u ) ⟼ ( u + 1 , 4 − 2 ⋅ 3 u ) .
这样,我们不必只背“右移、翻转、拉伸、上移”四个词,而是能追踪点的去向。
母函数的水平渐近线 y = 0 y=0 y = 0 经同样的纵向变换后变成 y = 4 y=4 y = 4 。因为 3 x − 1 > 0 3^{x-1}>0 3 x − 1 > 0 ,所以 4 − 2 ⋅ 3 x − 1 4-2\cdot3^{x-1} 永远小于 4,值域是 。定义域仍然是全部实数。母函数向右递增,乘上负数使它上下翻转,所以新函数递减。
y y y 轴截距已经在表里,是 ( 0 , 10 3 ) \left(0,\frac{10}{3}\right) ( 0 , 3 10 ) 。至于 x x x 轴截距,令输出为零,会得到 3 x − 1 = 2 3^{x-1}=2 3 。因为 、 ,所以交点在 和 之间。现在先把准确位置留着,等学到对数再回来求。
这个例子也提醒我们:基本函数 b x b^x b x 不碰 x x x 轴,但变换后的指数图像可以碰。始终不碰的是它自己的水平渐近线,这里是 y = 4 y=4 y = 4 。
计息越频繁,会不会长到没边
复利是理解指数的一种方便情境:每次增加的部分,也加入下一次计算的基数。下面只讨论给定参数的数学模型,假设期间没有存取款、费用或利率变化。
假设初始金额为 P P P ,名义年利率为 r r r ,一年分 n n n 次等间隔计息,每次使用利率 r n \frac rn n r 。一次结息后金额乘 1 + r n 1+\frac rn 1 + ,一年乘 次,经过 年共乘 次,因此在对应的结息时点,
A ( t ) = P ( 1 + r n ) n t . A(t)=P\left(1+\frac rn\right)^{nt}. A ( t ) = P ( 1 + n r ) n t .
这条公式里的两个 n n n 各有工作:括号里的 n n n 把年利率分到每次,指数里的 n n n 记录一年有多少次。漏掉任何一个,表达的就不是原来的计息规则了。
例如,一个模拟账户初值 6000 元,名义年利率 8%,每季度结息一次。每季度利率是 0.08 / 4 = 0.02 0.08/4=0.02 0.08/4 = 0.02 ,3 年有 12 个季度,于是
A ( 3 ) = 6000 ( 1.02 ) 12 ≈ 7609.45 元 . A(3)=6000(1.02)^{12}\approx7609.45\text{ 元}. A ( 3 ) = 6000 ( 1.02 ) 12 ≈ 7609.45 元 .
如果改成每年结息一次,同样的名义年利率下,3 年后是 6000 ( 1.08 ) 3 ≈ 7558.27 6000(1.08)^3\approx7558.27 6000 ( 1.08 ) 3 ≈ 7558.27 元。前一个数稍大,因为一季度末新增的金额,后面的季度也参与了计息。
自然底数 e 是怎样露面的
把初值设为 1,名义年利率设为 100%,只观察一年后的倍数。这个利率是为了让式子简洁而设置的数学实验。每年计息 n n n 次时,倍数是
( 1 + 1 n ) n . \left(1+\frac1n\right)^n. ( 1 + n 1 ) n .
次数越多,结果确实越大,但多出来的幅度越来越小。它不会无界增大,而是趋近一个确定的数:
e ≈ 2.718281828 … e\approx2.718281828\ldots e ≈ 2.718281828 …
等到后面学习极限,我们会用正式符号表达这个“次数不断增加,结果趋近定值”的过程。这里先看清 e e e 出现的问题背景:一段固定时间里的比例变化,被分成越来越细的小份连续累积。
一般的连续复利模型由此写成 A ( t ) = P e r t A(t)=Pe^{rt} A ( t ) = P e r t 。更广泛地,连续增长与衰减常记为
Q ( t ) = a e k t , a > 0. Q(t)=ae^{kt},\qquad a>0. Q ( t ) = a e k t , a > 0.
k > 0 k>0 k > 0 时增长,k < 0 k<0 k < 0 时衰减,k = 0 k=0 k = 0 时数量不变。时间单位也要随参数一起说清楚:若 t t t 用小时,k k k 就是每小时的连续增长率参数,不能原封不动用于以天为单位的时间。
连续增长率 8%,不等于一年实际增加 8%
在 Q ( t ) = a e 0.08 t Q(t)=ae^{0.08t} Q ( t ) = a e 0.08 t 中,若 t t t 用年,经过一年乘上的倍数是 e 0.08 ≈ 1.083287 e^{0.08}\approx1.083287 e 0.08 ≈ 1.083287 ,所以一年实际增加约 8.3287%。相反,如果题目明确说“每过一年,数量变为原来的 1.08 倍”,模型应写成 。
我们目前还没有解释怎样把 1.08 1.08 1.08 换成以 e e e 为底的指数,所以先把这个问题记住:两种参数表达同一个年度倍数时,数值并不相等 。对数会帮我们完成换算。
还有一个容易混在一起的问题:a b t ab^t a b t 并不天然是“只在整数时刻跳一下”的函数。对正底数,它也可以接受全部实数时间,画出连续曲线。若账户实际只在每年末结息,结息之间余额如何处理,是账户规则提供的额外信息;若某个物理过程连续变化,则可以直接把指数曲线当连续模型。不能仅凭底数写成 b b b 还是 e e e ,判断过程是离散还是连续。
遇到百分比,先确认它是每个完整时间单位的实际增幅、分次计息所用的名义年利率,还是指数 e k t e^{kt} e k t 中的连续增长率参数。这三个数可以互相换算,但不能不加区分地放进同一个公式。
对数回答:要把底数提升到几次方
假设我们知道某个量每次乘 3,从 1 开始,想得到 9,只要做两次,因为 3 2 = 9 3^2=9 3 2 = 9 。想得到 27,就要三次。那么,想得到 15 呢?
如果允许连续的指数变化,答案在 2 和 3 之间,因为 9 < 15 < 27 9<15<27 9 < 15 < 27 。这个答案不是“做不到”,只是以前学过的整数幂不能直接报出它的名字。我们把它记成 log 3 15 \log_3 15 log 3 15 ,意思正是“3 的多少次方等于 15”。
一般定义是
y = log b x ⟺ b y = x , b > 0 , b ≠ 1 , x > 0. y=\log_b x\quad\Longleftrightarrow\quad b^y=x,
\qquad b>0,\quad b\ne1,\quad x>0. y = log b x ⟺ b y = x , b
这里,b b b 是底数,x x x 是对数的输入,也叫真数,y y y 是求出来的指数。每次感到符号陌生,就把它翻译回右边那句指数等式。
比如 log 4 64 = 3 \log_4 64=3 log 4 64 = 3 ,因为 4 3 = 64 4^3=64 4 3 = 64 ;log 4 1 16 = − 2 \log_4\frac1{16}=-2 log ,因为 ; ,因为 。对数的输出当然可以是负数或分数,要求为正的是输入。
底数小于 1 也可以。例如 log 1 / 2 8 = − 3 \log_{1/2}8=-3 log 1/2 8 = − 3 ,因为 ( 1 2 ) − 3 = 8 \left(\frac12\right)^{-3}=8 ( 2 1 。这时候要得到更大的正结果,指数反而需要变小,与衰减指数函数的递减方向一致。
先把底数取成 2 2 2 ,让“几次方”变成看得见的步数:从 1 1 1 开始,每一步乘 2 2 2 ,三步走到 8 8 8 。指数写法 2 3 = 8 2^3=8 2 3 = 8 给出结果,对数写法 log 2 8 = 3 \log_2 8=3 log 则把步数找回来。
右侧换成每一步减半,从 8 8 8 开始依次得到 4 , 2 , 1 4,2,1 4 , 2 , 1 。这也是指数变化,只是固定倍数变成了 1 / 2 1/2 1/2 。图中先用整数步数帮助理解,指数函数和对数函数的输入范围还会超出这些整数。
真数为什么不能是零或负数
正底数的任意实数次幂都为正,所以没有实数 y y y 能让 b y = 0 b^y=0 b y = 0 ,也没有实数 y y y 能让 b y = − 5 b^y=-5 b y = − 5 。这就是 和 在本课实数范围内没有定义的原因。
但 log 2 ( x + 5 ) \log_2(x+5) log 2 ( x + 5 ) 并不要求 x > 0 x>0 x > 0 。它要求的是整个真数 x + 5 > 0 x+5>0 x + 5 > 0 ,也就是 。例如 时,计算的是 ,完全没有问题。 ,以后解对数方程时还要用到这个区分。
指数和对数怎样互相撤销
前面学过,反函数交换输入和输出。b x b^x b x 接受“指数”,输出“幂的结果”;log b x \log_b x log b x 接受这个正的结果,把原来的指数找回来。因此
log b ( b u ) = u ( u ∈ R ) , \log_b(b^u)=u\quad(u\in\mathbb R), log b ( b u ) = u ( u ∈ R ) ,
b log b x = x ( x > 0 ) . b^{\log_b x}=x\quad(x>0). b l o g b x = x ( x > 0 ) .
两条看起来很像,输入条件却不相同。第一条里面 b u b^u b u 自动为正,所以 u u u 可以取任意实数;第二条一开始就要计算 log b x \log_b x log b x ,必须先有 x > 0 x>0 x > 0 。
同理,log b 1 = 0 \log_b1=0 log b 1 = 0 、log b b = 1 \log_b b=1 log b b = 1 都可以从 b 0 = 1 b^0=1 、 直接读出。不必为每个底数重新背一套结论。
本课约定,不写底数的 log x \log x log x 表示 log 10 x \log_{10}x log 10 x ,叫常用对数;ln x \ln x ln x 表示 log e x \log_e x log e ,叫自然对数。于是 ,而 。它们的原理完全一样,只是选择了不同底数。
把指数图像翻过来,得到对数图像
还记得指数图像 y = 2 x y=2^x y = 2 x 上的 ( 0 , 1 ) (0,1) ( 0 , 1 ) 、( 1 , 2 ) (1,2) ( 1 , 2 ) 、( 2 , 4 ) (2,4) ( 2 , 4 ) 吗?交换坐标后,得到 、 、 ,它们恰好都在 上。图像上交换横纵坐标,就是关于直线 对称。
指数函数的定义域与值域交换了,所以对数函数的定义域是 ( 0 , + ∞ ) (0,+\infty) ( 0 , + ∞ ) ,值域是 R \mathbb R R 。指数函数的水平渐近线 y = 0 y=0 y = 0 也交换了方向,成为对数函数的竖直渐近线 x = 0 x=0 x = 0 。
以 log 2 x \log_2 x log 2 x 为例,输入依次取 1 2 , 1 4 , 1 8 , … \frac12,\frac14,\frac18,\ldots 2 1 , 4 ,输出是 。因此,沿着正输入向零靠近时,对数值会向负方向无界下降。不能把这个现象写成 :零不在定义域里, 也不是它在零处的函数值。
向右看,输入从 1 变成 2、4、8,输出才逐次增加到 0、1、2、3。log 2 x \log_2 x log 2 x 会持续增加,而且没有上界,只是获得相同的输出增量,需要越来越大的输入增量。“越来越平”不等于“有一条水平渐近线”。
一般地,b > 1 b>1 b > 1 时 log b x \log_b x log b x 递增;0 < b < 1 0<b<1 0 < b < 1 时递减。两者都经过 ( 1 , 0 ) (1,0) 和 ,都没有 轴截距。换成小于 1 的底数时,靠近 的右侧,输出会向正无穷方向变化;向右远离零时,则向负无穷方向变化。
例题:先确定能站在哪一侧,再画曲线
考虑
h ( x ) = 2 − log 2 ( x + 1 ) . h(x)=2-\log_2(x+1). h ( x ) = 2 − log 2 ( x + 1 ) .
先看真数:必须 x + 1 > 0 x+1>0 x + 1 > 0 ,所以定义域为 ( − 1 , + ∞ ) (-1,+\infty) ( − 1 , + ∞ ) ,竖直渐近线为 x = − 1 x=-1 x = − 1 。这一条线确定之后,曲线只在它右边活动。
再追踪母函数 y = log 2 x y=\log_2 x y = log 2 x 的点。新图像把横坐标减 1,把纵坐标取负后加 2,因此
( u , log 2 u ) ⟼ ( u − 1 , 2 − log 2 u ) . (u,\log_2u)\longmapsto(u-1,\,2-\log_2u). ( u , log 2 u ) ⟼ ( u − 1 , 2 − log 2
母函数的 ( 1 , 0 ) (1,0) ( 1 , 0 ) 变成 ( 0 , 2 ) (0,2) ( 0 , 2 ) ,( 2 , 1 ) (2,1) ( 2 , 1 ) 变成 ( 1 , 1 ) (1,1) ( 1 , 1 ) ,( 4 , 2 ) (4,2) 变成 。于是两个截距分别是 和 。母函数递增,乘上负号后递减,值域仍然是全部实数。
当 x x x 从右侧靠近 − 1 -1 − 1 ,真数 x + 1 x+1 x + 1 是越来越小的正数,log 2 ( x + 1 ) \log_2(x+1) log 2 ( x + 1 ) 向负无穷方向变化,前面的负号把它翻成正无穷方向。这比背“图像在渐近线旁边向上还是向下”的口诀更可靠。
如果换成 log 2 ( 3 − x ) \log_2(3-x) log 2 ( 3 − x ) ,则要求 3 − x > 0 3-x>0 3 − x > 0 ,也就是 x < 3 x<3 x < 3 。它的曲线在竖直渐近线 的左边。括号里的输入决定了定义域在哪一侧,不能只看到“对数函数”就画在右边。
同样的方法可以处理 A log b ( c ( x − h ) ) + D A\log_b(c(x-h))+D A log b ( c ( x − h )) + D :先解 c ( x − h ) > 0 c(x-h)>0 c ( x − h ) > 0 ,再让原输入 ,把母函数上的点移到 。这里要求 非零;如果它们为零,函数可能退化或没有定义,需要另看。我们前面练过的“追踪每个点”,到这里仍然管用。
对数性质为什么会把乘法变成加法
先用一个小例子找方向:8 = 2 3 8=2^3 8 = 2 3 ,4 = 2 2 4=2^2 4 = 2 2 ,所以 8 × 4 = 2 5 8\times4=2^5 8 × 4 = 2 。把它们都翻译成以 2 为底的对数,乘积的对数是 5,而两个因子的对数分别是 3 和 2。乘法之所以变成加法,是因为 。
为了说明这并非数字碰巧,让 M = b m M=b^m M = b m 、N = b n N=b^n N = b n ,其中 M , N > 0 M,N>0 M , N > 0 。于是 、 ,而
M N = b m b n = b m + n . MN=b^mb^n=b^{m+n}. M N = b m b n = b m + n .
因此,乘积所需要的指数就是 m + n m+n m + n :
log b ( M N ) = log b M + log b N . \log_b(MN)=\log_bM+\log_bN. log b ( M N ) = log b M + log b
相除也一样。M / N = b m − n M/N=b^{m-n} M / N = b m − n ,所以
log b ( M N ) = log b M − log b N . \log_b\left(\frac MN\right)=\log_bM-\log_bN. log b ( N M ) = log
如果把 M = b m M=b^m M = b m 再提升到 p p p 次幂,得到 M p = b m p M^p=b^{mp} M p = b m p ,于是
log b ( M p ) = p log b M . \log_b(M^p)=p\log_bM. log b ( M p ) = p log b M .
这些规则里统一要求 b > 0 b>0 b > 0 、b ≠ 1 b\ne1 b = 1 ,乘除规则要求 M , N > 0 M,N>0 M , N > 0 ,幂规则要求 M > 0 M>0 M > ,而 可以是实数。条件写在这里,是为了保证左右两边表达的是同一件有定义的事。
展开和合并,是同一条路的两个方向
例如,在 x > 0 , y > 0 x>0,y>0 x > 0 , y > 0 的条件下,展开
ln ( 5 x 3 y ) . \ln\left(\frac{5x^3}{\sqrt y}\right). ln ( y 5 x 3
先看最外层是除法,所以分成分子的对数减去分母的对数;分子里是乘法,继续拆成相加;最后处理指数与平方根:
ln ( 5 x 3 y ) = ln ( 5 x 3 ) − ln ( y 1 / 2 ) = ln 5 + ln ( x 3 ) − ln ( y 1 / 2 ) = ln 5 + 3 ln x − 1 2 ln y . \begin{aligned}
\ln\left(\frac{5x^3}{\sqrt y}\right)
&=\ln(5x^3)-\ln(y^{1/2})\\
&=\ln5+\ln(x^3)-\ln(y^{1/2})\\
&=\ln5+3\ln x-\frac12\ln y.
\end{aligned} ln (
若反过来要求合并 2 ln u + ln v − ln 7 2\ln u+\ln v-\ln7 2 ln u + ln v − ln 7 ,先把系数 2 放回指数,得到 ln ( u 2 ) + ln v − ln 7 \ln(u^2)+\ln v-\ln7 ln ( u 2 ) + ln v − ln ,再合成 。合并后依然要保留原来的 ,不能因为新式子在某些负 上也能计算,就悄悄扩大原表达式的定义域。
这里还有个很常见的细节:ln ( x 2 ) \ln(x^2) ln ( x 2 ) 的定义域是 x ≠ 0 x\ne0 x = 0 ,因此完整的展开应该是
ln ( x 2 ) = 2 ln ∣ x ∣ ( x ≠ 0 ) . \ln(x^2)=2\ln|x|\qquad(x\ne0). ln ( x 2 ) = 2 ln ∣ x ∣ ( x = 0 ) .
理由是 x 2 = ∣ x ∣ 2 x^2=|x|^2 x 2 = ∣ x ∣ 2 ,而 ∣ x ∣ > 0 |x|>0 ∣ x ∣ > 0 。只有额外知道 x > 0 x>0 x > 0 时,才能直接写 。试一试 : 有意义, 却没有意义。这个检查会立刻把错误暴露出来。
真数里的加号,不能这样拆
对数没有 log b ( M + N ) = log b M + log b N \log_b(M+N)=\log_bM+\log_bN log b ( M + N ) = log b M + log 这样的性质。最短的反例是 、 :左边 ,右边是 。
如果式子是 ln ( x + 4 ) \ln(x+4) ln ( x + 4 ) ,括号里的加法要保留。只有当整个真数能够因式分解成适用的乘积时,才能考虑乘法规则。例如 ln ( 3 x + 12 ) = ln ( 3 ( x + 4 ) ) \ln(3x+12)=\ln(3(x+4)) ln ( 3 x + 12 ) = ln ( 3 ( x + 4 )) ,在 x > − 4 x>-4 时可以拆成 ,而不能拆成 。
换底公式,是把同一个指数交给熟悉的对数计算
现在回到 log 3 15 \log_3 15 log 3 15 。如果计算器只有 ln \ln ln 键,我们也可以算它。设 y = log 3 15 y=\log_3 15 y = log 3 15 ,则 3 y 。两边取自然对数,得到
y ln 3 = ln 15 , y\ln3=\ln15, y ln 3 = ln 15 ,
所以
log 3 15 = ln 15 ln 3 ≈ 2.4650. \log_3 15=\frac{\ln15}{\ln3}\approx2.4650. log 3 15 = ln 3 ln 15 ≈ 2.4650.
一般的换底公式就是
log b x = ln x ln b = log c x log c b , x > 0 , b , c > 0 , b , c ≠ 1. \log_b x=\frac{\ln x}{\ln b}
=\frac{\log_c x}{\log_c b},
\qquad x>0,\quad b,c>0,\quad b,c\ne1. log b x = ln b ln x
分母之所以不能为零,也是为什么底数不能取 1。底数小于 1 时,ln b < 0 \ln b<0 ln b < 0 ,换底公式依然成立。
现在可以兑现前面留下的两件事了。图像 g ( x ) = 4 − 2 ⋅ 3 x − 1 g(x)=4-2\cdot3^{x-1} g ( x ) = 4 − 2 ⋅ 3 x − 1 的零点满足 3 x − 1 = 2 3^{x-1}=2 3 x − 1 = ,因此 ,确实位于 1 和 2 之间。年度因子 也可以写成 ,所以
a b t = a e t ln b . ab^t=ae^{t\ln b}. a b t = a e t l n b .
这两个式子是同一个函数,不只是整数点相同。若 k = ln b k=\ln b k = ln b ,便得到连续增长率参数与单位时间实际增长率之间的准确关系:
k = ln ( 1 + r ) , r = e k − 1. k=\ln(1+r),\qquad r=e^k-1. k = ln ( 1 + r ) , r = e k − 1.
例如实际年增长率 8% 对应 k = ln 1.08 ≈ 0.076961 k=\ln1.08\approx0.076961 k = ln 1.08 ≈ 0.076961 ;连续增长率参数 k = 0.08 k=0.08 k = 0.08 则对应实际年增长率约 8.3287%。换底不是多学一个孤立公式,它把我们之前用过的两种模型真正接上了。
方程里的未知数,放在指数还是放在真数里
指数与对数互为反运算,所以未知数在哪里,往往就决定先往哪个方向翻译。但翻译之前,先看看有没有更直接的判断。例如 5 x = − 3 5^x=-3 5 x = − 3 没有实数解,因为左边始终为正,不必去按 ln ( − 3 ) \ln(-3) ln ( − 3 ) 。
能统一底数时,先统一底数
解 4 x + 1 = 8 x − 1 4^{x+1}=8^{x-1} 4 x + 1 = 8 x − 1 ,不一定一上来就取对数。把 4 和 8 都改成 2 的幂:
2 2 x + 2 = 2 3 x − 3 . 2^{2x+2}=2^{3x-3}. 2 2 x + 2 = 2 3 x − 3 .
2 x 2^x 2 x 严格递增,不同指数不可能得到同一个输出,所以 2 x + 2 = 3 x − 3 2x+2=3x-3 2 x + 2 = 3 x − 3 ,解得 x = 5 x=5 x = 5 。代回去,一边是 4 6 = 2 12 4^6=2^{12} ,另一边是 ,相等。
若不能方便地统一底数,例如 5 2 x − 1 = 18 5^{2x-1}=18 5 2 x − 1 = 18 ,先确认两边为正,再取自然对数:
( 2 x − 1 ) ln 5 = ln 18 , x = 1 2 ( 1 + ln 18 ln 5 ) ≈ 1.3979. (2x-1)\ln5=\ln18,
\qquad
x=\frac12\left(1+\frac{\ln18}{\ln5}\right)\approx1.3979. ( 2 x − 1 ) ln 5 = ln 18 , x = 2 1
取对数的作用是把未知数所在的指数变成乘法因子。它并不会让所有方程都自动变简单,例如 2 x = x + 3 2^x=x+3 2 x = x + 3 取对数后仍有 x x x 在两边;这类方程可以通过图像或数值方法寻找交点,不能硬套“指数拉下来就解完了”的说法。
例题:什么时候第一次达到目标
一个模拟账户初值 8000 元,每年末按当年已有金额增加 5%,期间没有其他变化。第几个年末,金额第一次达到或超过 12000 元?
把第 n n n 个年末的金额写成 A n = 8000 ( 1.05 ) n A_n=8000(1.05)^n A n = 8000 ( 1.05 ) n 。这里的 最终必须是非负整数,因为题目问的是年末结息后的金额。
这里不能直接答“8.31 年后账户达到目标”,因为题目只给了每年末结息的规则。小数解帮助定位,但最后要回到情境允许的输入。
例题:对数合并以后,别让定义域丢了
解方程
log 2 ( x − 2 ) + log 2 ( x + 1 ) = 2. \log_2(x-2)+\log_2(x+1)=2. log 2 ( x − 2 ) + log 2 ( x + 1 ) = 2.
原方程要求 x − 2 > 0 x-2>0 x − 2 > 0 且 x + 1 > 0 x+1>0 x + 1 > 0 ,合起来是 x > 2 x>2 x 。先把这个条件留下,再做变形。
为什么合并后的代数式会允许 − 2 -2 − 2 混进来?因为两个负数的乘积也可以为正。合并后的一个对数只看见乘积,原来的两个对数却分别要求每个因子为正。定义域正是保留这层信息的地方。
但也不要把验根简化成“负的解都删掉”。比如 ln ( x 2 ) = ln 9 \ln(x^2)=\ln9 ln ( x 2 ) = ln 9 ,真数要求是 x 2 > 0 x^2>0 x 2 > 0 ;得到的 x = 3 x=3 x = 3 与 都能使真数等于 9,所以两者都有效。
指数换元以后,也有自己的条件
上一章的因式分解还能继续用。考虑
e 2 x − 2 e x − 3 = 0. e^{2x}-2e^x-3=0. e 2 x − 2 e x − 3 = 0.
注意 e 2 x = ( e x ) 2 e^{2x}=(e^x)^2 e 2 x = ( e x ) 2 ,令 u = e x u=e^x u = e x ,原方程变成 ,即 。代数上得到 或 ,但换元时有 ,所以只能保留 。最后 。
从多项式方程到指数方程,我们没有抛掉原来的工具,只是在使用它们时,多留意了一层“这个新变量究竟能取什么值”。
倍增时间和半衰期,都是固定倍数所需的时间
说某个量“每小时增加 10%”,描述的是固定时间内乘多少;说它“每 4 小时翻倍”,则直接告诉我们乘 2 需要多长时间。这两种说法可以互相转换。
若初值为 Q 0 > 0 Q_0>0 Q 0 > 0 ,倍增时间为 d > 0 d>0 d > 0 ,那么经过 t t t 个时间单位,相当于经过 t / d t/d t / d 个倍增时段,模型是
Q ( t ) = Q 0 2 t / d . Q(t)=Q_0\,2^{t/d}. Q ( t ) = Q 0 2 t / d .
例如一个模拟培养过程从 150 个数量单位开始,在所考察时段内每 4 小时翻倍,模型为 150 ⋅ 2 t / 4 150\cdot2^{t/4} 150 ⋅ 2 t /4 。经过 10 小时,已经经历 2.5 个倍增时段,所以
Q ( 10 ) = 150 ⋅ 2 2.5 = 600 2 ≈ 848.53. Q(10)=150\cdot2^{2.5}=600\sqrt2\approx848.53. Q ( 10 ) = 150 ⋅ 2 2.5 = 600 2
如果数量代表实际个体,模型给出的是近似量或平均水平,报告时可根据情境取整,不能说有“半个个体”。
半衰期 h > 0 h>0 h > 0 则是数量减到当时一半所需的时间,对应
Q ( t ) = Q 0 ( 1 2 ) t / h . Q(t)=Q_0\left(\frac12\right)^{t/h}. Q ( t ) = Q 0 ( 2 1 ) t
从 120 降到 60,再从 60 降到 30,所用时间相同;两次减少的绝对数量却分别为 60 和 30。因而两个半衰期后还剩四分之一,并没有全部消失。
为什么从多少开始,并不影响倍增所需时间
对 Q ( t ) = Q 0 e k t Q(t)=Q_0e^{kt} Q ( t ) = Q 0 e k t ,从任意时刻 t 0 t_0 t 0 开始,再过 d d 的数量比值为
Q ( t 0 + d ) Q ( t 0 ) = e k d . \frac{Q(t_0+d)}{Q(t_0)}=e^{kd}. Q ( t 0 ) Q ( t 0 + d ) =
要翻倍,就要求 e k d = 2 e^{kd}=2 e k d = 2 ,因此当 k > 0 k>0 k > 0 时,
d = ln 2 k . d=\frac{\ln2}{k}. d = k ln 2 .
初值和起算时刻都在相除时消掉了,所以倍增时间不会随着当前数量变大而改变。对于 k < 0 k<0 k < 0 的衰减模型,让 e k h = 1 2 e^{kh}=\frac12 e k h = 2 1 ,便得到
h = ln ( 1 / 2 ) k = − ln 2 k . h=\frac{\ln(1/2)}{k}=-\frac{\ln2}{k}. h = k ln ( 1/2 ) = − k ln 2 .
分子分母都是负数,所以半衰期为正。若已知的是单位时间因子 b b b ,只需使用 k = ln b k=\ln b k = ln b :增长时 d = ln 2 ln b d=\frac{\ln2}{\ln b} d = l n b l n 2 ,衰减时 。
例题:减少了 80%,究竟还剩多少
某模拟衰减过程初值为 120 克,半衰期为 6 小时。按照该模型,减少 80% 需要多久?
先别急着代 0.8。减少 80%,剩余的比例是 20%,目标量是 120 × 0.2 = 24 120\times0.2=24 120 × 0.2 = 24 克。于是
120 ( 1 2 ) t / 6 = 24 , ( 1 2 ) t / 6 = 0.2. 120\left(\frac12\right)^{t/6}=24,
\qquad
\left(\frac12\right)^{t/6}=0.2. 120 ( 2 1 ) t /6 = 24 , (
两边取自然对数,解得
t 6 ln 1 2 = ln 0.2 , t = 6 ln 0.2 ln ( 1 / 2 ) ≈ 13.93 小时 . \frac t6\ln\frac12=\ln0.2,
\qquad
t=6\frac{\ln0.2}{\ln(1/2)}\approx13.93\text{ 小时}. 6 t ln 2 1 = ln 0.2 ,
用半衰期做一个粗检查:12 小时后剩 25%,18 小时后剩 12.5%,剩 20% 的时刻确实应该夹在两者之间。如果误把 0.8 当剩余比例,算出来的是“只减少 20%”的时间,回答了另一个问题。
对数刻度:相同的距离,代表相同的倍数
如果一组数据同时出现 1、10、100、1000,放在普通数轴上,小的几个数会挤在一起。对数刻度换了一种摆放方法:用 log 10 x \log_{10}x log 10 x 决定位置。于是这四个数的位置依次是 0、1、2、3,相邻间距相同。
这不是把原来的数量改掉了,而是改变了表示距离的方式。对数轴上从 10 到 100,与从 100 到 1000 一样远,分别增加了 90 和 900,但都乘了 10。读图时如果仍把等距离理解成等差值,就会误读数量关系。
更一般地,两点在以 b > 1 b>1 b > 1 为底的对数轴上的坐标差为
log b M − log b N = log b ( M N ) . \log_bM-\log_bN=\log_b\left(\frac MN\right). log b M − log b N = log b
所以对数坐标差表达的是比值。以 10 为底时,坐标相差 2,实际数量相差 10 2 = 100 10^2=100 1 0 2 = 100 倍;相差 0.5 0.5 0.5 ,实际数量相差 10 0.5 = 10 ≈ 3.162 10^{0.5}=\sqrt{10}\approx3.162 1 0 0.5 = 10 倍,而不是 5 倍。
这里也能解释几何平均数。10 与 100 的对数坐标中点为 ( 1 + 2 ) / 2 = 1.5 (1+2)/2=1.5 ( 1 + 2 ) /2 = 1.5 ,对应数量 10 1.5 = 10 × 100 ≈ 31.62 10^{1.5}=\sqrt{10\times100}\approx31.62 1 0 1.5 = 10 × 100 。它不是普通数轴上的中点 55,因为两种刻度对“中间”的衡量方式不同。
从两次观测走向一个可以检查的模型
现在把方向倒过来:不再给你初值和增长率,而是给两个测量结果,能不能找出一个指数模型?可以,但先要明确这是在假设该过程符合指数规律 的前提下确定参数,两个点本身不能证明这种规律。
例题:第一次观测不在起点,也能反推
某模拟过程在第 2 小时的数量为 180,第 5 小时为 607.5。假设数量按恒定比例增长,建立以起算时刻为 t = 0 t=0 t = 0 的模型,并预测第 4 小时的数量。
设 Q ( t ) = a b t Q(t)=ab^t Q ( t ) = a b t 。把两个数据代入:
a b 2 = 180 , a b 5 = 607.5. ab^2=180,\qquad ab^5=607.5. a b 2 = 180 , a b 5 = 607.5.
第二式除以第一式,把未知初值 a a a 消掉:
b 3 = 607.5 180 = 3.375. b^3=\frac{607.5}{180}=3.375. b 3 = 180 607.5 = 3.375.
这里指数是 3,因为两次观测相隔 3 小时。正的立方根给出 b = 1.5 b=1.5 b = 1.5 ,所以单位小时增长率是 50%。再回到第一个观测点,
a = 180 1.5 2 = 80. a=\frac{180}{1.5^2}=80. a = 1. 5 2 180 = 80.
模型为 Q ( t ) = 80 ( 1.5 ) t Q(t)=80(1.5)^t Q ( t ) = 80 ( 1.5 ) t ,因此 Q ( 4 ) = 80 ( 1.5 ) 4 = 405 Q(4)=80(1.5)^4=405 Q ( 4 ) = 80 ( 1.5 ) 4 = 405 。代入 和 还能分别还原 180 与 607.5,参数计算通过了检查。
如果没有必要特意求 t = 0 t=0 t = 0 的值,也可以以第一条观测为锚点写成 Q ( t ) = 180 ( 1.5 ) t − 2 Q(t)=180(1.5)^{t-2} Q ( t ) = 180 ( 1.5 ) t − 2 。代入 t = 2 t=2 t = 2 ,指数归零,直接得到 180。这种写法把时间起点的含义留在公式里,通常更容易读。
一般地,对于 t 1 ≠ t 2 t_1\ne t_2 t 1 = t 2 、Q 1 , Q 2 > 0 Q_1,Q_2>0 Q 1 的两个点,先得到
b = ( Q 2 Q 1 ) 1 / ( t 2 − t 1 ) , Q ( t ) = Q 1 b t − t 1 . b=\left(\frac{Q_2}{Q_1}\right)^{1/(t_2-t_1)},
\qquad
Q(t)=Q_1b^{t-t_1}. b = ( Q 1 Q 2
以自然底数写,则是
k = ln ( Q 2 / Q 1 ) t 2 − t 1 , Q ( t ) = Q 1 e k ( t − t 1 ) . k=\frac{\ln(Q_2/Q_1)}{t_2-t_1},
\qquad
Q(t)=Q_1e^{k(t-t_1)}. k = t 2 − t 1
如果两个观测数量相同,这套计算给出 b = 1 b=1 b = 1 、k = 0 k=0 k = 0 ,得到的是常量模型,属于没有增长的退化情形。如果时间相同却数量不同,就无法用一个以时间为输入的函数同时穿过它们。
多个数据点,怎样看出指数规律
真实观测通常不会刚好落在一条曲线上。对于正量模型 Q = a b t Q=ab^t Q = a b t ,取自然对数会得到
ln Q = ln a + t ln b . \ln Q=\ln a+t\ln b. ln Q = ln a + t ln b .
如果把 z = ln Q z=\ln Q z = ln Q 当作新的纵坐标,这就是一条截距为 ln a \ln a ln a 、斜率为 ln b \ln b ln b 的直线。于是判断指数模型多了一种办法:观察 ( t , ln Q ) (t,\ln Q) ( t , ln Q ) 是否大致排成直线。
注意被取对数的是输出 Q Q Q 。若改成观察 ( ln t , Q ) (\ln t,Q) ( ln t , Q ) ,对应的线性关系是 Q = α + β ln t Q=\alpha+\beta\ln t Q = α + β ln t ,那是对数模型,研究的是另一个函数族。若横纵坐标都取对数,则常用于识别幂模型 Q = a t p Q=at^p Q = ,也不能混在一起。
当多个点近似成直线时,可以拟合 z = c + m t z=c+mt z = c + m t ,再还原成 Q = e c e m t Q=e^ce^{mt} Q = e c e m t 。不过,在对数坐标中让误差尽量小,和在原数量坐标中让误差尽量小,并不是相同的要求。因为一个固定的对数误差,对应一个固定的预测倍数误差;同样的相差 10,在数量 20 附近和数量 2000 附近,比例意义明显不同。
拟合完成后,还要回到原数据上检查。把“观测值减预测值”叫残差。如果较早的点总在曲线上方、中间总在下方、后面又回到上方,说明偏差有结构,可能漏掉了某种规律。残差没有明显模式,也只能说明这个模型暂时没有暴露出那类系统偏差,不能证明未来一定照着它走。
下面的交互把数据点、拟合曲线和对数变换联系起来。比较模型时,把注意力放在数据在哪些区间偏离曲线,以及这种偏离是否有规律。
预测到哪里,还要由情境决定
在已有观测区间内估计一个值,叫插值;越过观测区间预测,叫外推。刚才用第 2、5 小时估计第 4 小时,是插值;用同一模型推到第 100 小时,就是远距离外推。
模型 80 ( 1.5 ) t 80(1.5)^t 80 ( 1.5 ) t 在数学上可以一直算下去,但模拟培养过程如果受到空间或原料限制,恒定比例增长就可能停止。数据里没有出现限制,不等于限制不存在。选模型时,至少要把时间单位、观察范围、正量假设、比例是否稳定和可能的限制条件一起留下。
更何况两个点也能确定一条直线。指数模型穿过给定的两个点,只说明参数求对了;要说它比线性模型更适合,还需要更多数据或变化机制的支持。
增长会受限制,衰减也不一定降到零
到这里,基本模型已经够用了。但如果把每一条先快后慢的曲线都套成 a b t ab^t a b t ,还是会出错。前面学过的函数变换和有理式,可以帮助我们识别两个常见边界。
冷却时按比例减少的,可能是温差
设室温保持 20 ∘ C 20^\circ\mathrm C 2 0 ∘ C ,一件物体最初为 80 ∘ C 80^\circ\mathrm C 8 0 ∘ C 。如果物体逐渐接近室温,适合减半的量可能是“物体比室温高多少”,而非摄氏温度本身。
初始温差是 80 − 20 = 60 80-20=60 80 − 20 = 60 。假设在这个理想化模型中,温差每 10 分钟减半,那么
T ( t ) = 20 + 60 ( 1 2 ) t / 10 , t ≥ 0. T(t)=20+60\left(\frac12\right)^{t/10},
\qquad t\ge0. T ( t ) = 20 + 60 ( 2 1 ) t /10 ,
10 分钟后温差是 30,物体温度是 50 ∘ C 50^\circ\mathrm C 5 0 ∘ C ;20 分钟后温差是 15,温度是 35 ∘ C 35^\circ\mathrm C 3 5 ∘ C 。不能把 80 ∘ C 80^\circ\mathrm C 8 0 ∘ C 本身减半得到 40 ∘ C 40^\circ\mathrm C 4 ,因为模型的比例规律作用在相对室温的差上。
该函数的水平渐近线是 T = 20 T=20 T = 20 。这就是平移后的指数衰减:温差靠近零,温度靠近环境温度。一般形式为
T ( t ) = T s + ( T 0 − T s ) e k t , k < 0 , T(t)=T_{\mathrm s}+(T_0-T_{\mathrm s})e^{kt},\qquad k<0, T ( t ) = T s + ( T 0 − T
其中 T s T_{\mathrm s} T s 是固定环境温度。这个模型通常称为牛顿冷却模型;若物体比环境冷,T 0 − T s < 0 T_0-T_{\mathrm s}<0 T 0 − T s < ,同一公式描述的就是升温趋近环境温度。它需要环境与传热条件近似稳定,并不保证每一次实际冷却都完全吻合。
数量有容量上限时,指数只是前半段
假设某个正数量开始增长,后来因为容量限制逐渐放缓。一个可供检查的模型是
N ( t ) = K 1 + c e − k t , K , c , k > 0. N(t)=\frac{K}{1+ce^{-kt}},\qquad K,c,k>0. N ( t ) = 1 + c e − k t K , K , c ,
它叫逻辑斯蒂增长模型。先不求导,只读式子:t t t 增大时,e − k t e^{-kt} e − k t 变小,分母逐渐接近 1,所以 N ( t ) N(t) N ( t ) 接近 K K K 。而分母始终大于 1,所以数量始终小于 K K K 。K K 表示模型的容量上限,初值则是 ,不是 。
例如
N ( t ) = 900 1 + 8 ⋅ 2 − t N(t)=\frac{900}{1+8\cdot2^{-t}} N ( t ) = 1 + 8 ⋅ 2 − t 900
给出 N ( 0 ) = 100 N(0)=100 N ( 0 ) = 100 、N ( 1 ) = 180 N(1)=180 N ( 1 ) = 180 、N ( 3 ) = 450 N(3)=450 N ( 3 ) = 450 ,并随时间接近 900。它没有固定的每步增长因子,因此不能当作单一的 a b t ab^t a b 。当分母里的 远大于 1 时,暂时忽略那一项 1 会得到 ,这解释了为什么某些容量受限的过程在早期看起来近似指数增长。
“越来越慢”也不一定就表示存在容量上限。比如 ln t \ln t ln t 在 t > 0 t>0 t > 0 上增长越来越慢,却仍没有上界。选模型时要问的是数据是否支持一个具体的上限、长期趋势与情境是否相容,不能只凭局部曲线弯曲的样子决定。
我们在这里认识这些形式,是为了知道简单指数模型什么时候需要调整。如何从足够多的数据中估计全部参数、怎样进一步解释瞬时增长速度,会在后续的建模与微积分学习中展开。
自检练习
练习一:一个模拟量从 240 开始,每 3 小时减少 27.1%。写出以小时为单位的指数模型,求每小时的衰减百分比和 6 小时后的数量。
显示答案 每 3 小时保留的因子是 1 − 0.271 = 0.729 1-0.271=0.729 1 − 0.271 = 0.729 ,所以可以写 Q ( t ) = 240 ( 0.729 ) t / 3 Q(t)=240(0.729)^{t/3} Q ( t ) = 240 ( 0.729 ) t /3 。每小时的因子满足 b 3 = 0.729 b^3=0.729 b ,取正根得到 ,所以每小时减少 10%,等价模型为 。6 小时后有 。不能把 27.1% 直接除以 3 作为每小时衰减率,因为每一步使用的基数在变化。
练习二:描述 f ( x ) = 3 − 4 ⋅ 2 − ( x + 1 ) f(x)=3-4\cdot2^{-(x+1)} f ( x ) = 3 − 4 ⋅ 2 − ( x + 1 ) 的定义域、值域、水平渐近线和单调性,并求它的两个坐标轴截距。
显示答案 指数部分对所有实数有定义,所以定义域是 R \mathbb R R 。由于 4 ⋅ 2 − ( x + 1 ) > 0 4\cdot2^{-(x+1)}>0 4 ⋅ 2 − ( x + 1 ) > 0 ,输出始终小于 3,值域是 ( − ∞ , 3 ) (-\infty,3) ( − ∞ , 3 ) ,水平渐近线是 y = 3 y=3 。随 增大, 减小,减去的量变小,因此 递增。代入 得 ,所以 轴截距是 。令 ,得到 ,所以 ; 轴截距为 。
练习三:模型 Q ( t ) = Q 0 e k t Q(t)=Q_0e^{kt} Q ( t ) = Q 0 e k t 的时间单位是年。若一年实际增长 12%,求 k k k ;若 k = 0.12 k=0.12 k = 0.12 ,求一年实际增长率。两种情况下的倍增时间是否相同?
显示答案 一年实际增长 12%,说明 e k = 1.12 e^k=1.12 e k = 1.12 ,因此 k = ln 1.12 ≈ 0.113329 k=\ln1.12\approx0.113329 k = ln 1.12 ≈ 0.113329 。若 k = 0.12 k=0.12 k = 0.12 ,一年实际增长率为 e 0.12 − 1 ≈ ,约 12.7497%。前者的倍增时间是 年,后者是 年,所以并不相同。比较时使用同一种增长率参数,才能把差异看清楚。
练习四:求 g ( x ) = log 3 ( 7 − 2 x ) g(x)=\log_3(7-2x) g ( x ) = log 3 ( 7 − 2 x ) 的定义域、竖直渐近线和零点。再说明 ln ( ( x − 1 ) 2 ) \ln((x-1)^2) ln (( x − 1 ) 为什么不能在整个定义域上写成 。
显示答案 g g g 要求 7 − 2 x > 0 7-2x>0 7 − 2 x > 0 ,所以定义域是 ( − ∞ , 7 / 2 ) (-\infty,7/2) ( − ∞ , 7/2 ) ,竖直渐近线是 x = 7 / 2 x=7/2 x = 7/2 ,图像在它左边。零点要求真数等于 1,即 ,得到 。第二个表达式只要求 ,而 需要 ,它遗漏了 的部分。保持完整定义域的写法是 ,其中 。
练习五:解 ln ( x − 1 ) + ln ( x + 2 ) = ln 10 \ln(x-1)+\ln(x+2)=\ln10 ln ( x − 1 ) + ln ( x + 2 ) = ln 10 ,并说明每个候选值为什么保留或舍去。再求 e 2 x − 5 e x + 4 = 0 e^{2x}-5e^x+4=0 e 2 x 的全部实数解。
显示答案 第一个方程要求 x > 1 x>1 x > 1 。合并对数、利用同底对数的一一对应关系,得到 ( x − 1 ) ( x + 2 ) = 10 (x-1)(x+2)=10 ( x − 1 ) ( x + 2 ) = 10 ,即 x 2 + x − 12 = 0 x^2+x-12=0 x 2 ,所以候选值为 。 使原来的两个真数为负,舍去; 代回得到 ,有效。第二个方程令 ,得到 。两个候选 都为正,所以 或 ;代回原式分别得到 与 。
练习六:某模拟衰减过程在第 1 小时为 320,第 4 小时为 135。假设符合指数规律,建立模型,求半衰期,并说明这两个观测点能否保证第 100 小时的预测准确。
显示答案 两次观测相隔 3 小时,所以 b 3 = 135 / 320 = 0.421875 = ( 3 / 4 ) 3 b^3=135/320=0.421875=(3/4)^3 b 3 = 135/320 = 0.421875 = ( 3/4 ) 3 ,得到 b = 3 / 4 b=3/4 b = 3/4 。以第 1 小时为锚点,模型为 ;如果写成 ,则 。半衰期满足 ,所以 小时。两个点只能在指数假设下确定参数,不能证明整个过程遵循这个假设,更不能保证远期外推准确;还需要更多观测和衰减机制保持稳定的依据。
从沿一个方向变化,走向周而复始
这一章把几段旧知识接到了一起:同底数幂的运算解释了固定比例变化,图像变换帮助我们追踪指数与对数的形状,反函数让“给定时间算数量”和“给定数量求时间”变成一对互相翻译的问题。以后研究变化率时,自然指数与自然对数还会继续出现;现在先能说清每个参数与每个定义域条件的意思,就已经为后面准备好了可用的工具。
不过,生活里的变化还有另一种样子:一个转动的点,先升高,再降低,随后又回到原来的高度。它不会一直按同一个方向增长或衰减,用本章的单调指数函数无法描述整段循环。
下一章我们把目光移到圆上。从一个绕圆心转动的点开始,把角读成旋转,把点的横纵坐标读成随旋转变化的函数。指数这一章问“再过同样长的时间,会乘多少”,接下来要问的是“再转多少,才能回到同一个位置”。