咖啡要凉多久?
牛顿冷却定律,一杯的分量
刚冲好的手冲大约 90∘C,而我喜欢在 60∘C 左右喝。问题很朴素:到底要等多久?1实际上我通常等不及,舌头为此付出过不少代价。
一个过于简单的模型
牛顿给过一个很好用的经验法则:物体冷却的速度,和它与环境之间的温差成正比。写成方程就是
dtdT=−k(T−Troom).
这里 Troom 是室温,k>0 是一个常数。2它和杯子关系很大。陶瓷杯、纸杯、保温杯的 k 能差出一个数量级,保温杯的 k 小到让人怀疑人生。负号的意思是:咖啡比室温热,温度就往下掉;温差越大,掉得越快。
定义 1(冷却常数)
称上式中的 k 为冷却常数,单位是 min−1。它把杯子、桌面、空气流动等一切我们懒得建模的东西打包在一起。
解出来
引理 2(冷却曲线)
若 T(t) 满足上面的方程,且 T(0)=T0,则对一切 t≥0,
T(t)=Troom+(T0−Troom)e−kt.
证明令 u=T−Troom,则 u′=−ku。于是 (uekt)′=(u′+ku)ekt=0,所以 uekt 是常数,等于它在 t=0 时的值 T0−Troom。∎
也就是说,温差按指数衰减。下面这张图里,拖动 5 分钟处的测量点,感受一下不同杯子的差别:
图 1 室温 22°C,初温 90°C。虚线是理想的入口温度。
算一算我的那杯
我用温度计量过一次:室温 22∘C,冲好时 90∘C,5 分钟后是 75∘C。代入 引理 2:
e−5k=90−2275−22=6853⟹k=51ln5368≈0.0498.
再解 T(t)=60:
t=k1ln3868≈11.7 min.
所以答案是:大约 11 分 40 秒。刚好够我回两封邮件,或者盯着杯子发呆。
from math import log
k = log(68 / 53) / 5 # 冷却常数,单位 1/min
t = log(68 / 38) / k
print(f"{t:.1f} min") # 11.7 min
附赠:牛奶什么时候加?
假设你要等 10 分钟再喝,还要加一勺冷牛奶。是现在加,还是 10 分钟后再加?
推论 3
如果目标是让咖啡尽量凉,应当最后再加牛奶。
直觉是:热的时候温差大,散热快;先加奶会让咖啡一开始就“不够热”,白白浪费了散热最快的那段时间。严格的证明留作习题。3“留作习题”是数学家最古老的偷懒方式,我决定把这个传统发扬光大。