咖啡要涼多久?

牛頓冷卻定律,一杯的分量

剛沖好的手沖大約 90∘C90^\circ\mathrm{C},而我喜歡在 60∘C60^\circ\mathrm{C} 左右喝。問題很樸素:到底要等多久?1實際上我通常等不及,舌頭為此付出過不少代價。

一個過於簡單的模型

牛頓給過一個很好用的經驗法則:物體冷卻的速度,和它與環境之間的溫差成正比。寫成方程就是

dTdt=−k (T−Troom).\frac{dT}{dt} = -k\,\bigl(T - T_{\text{room}}\bigr).

這裡 TroomT_{\text{room}} 是室溫,k>0k>0 是一個常數。2它和杯子關係很大。陶瓷杯、紙杯、保溫杯的 kk 能差出一個數量級,保溫杯的 kk 小到讓人懷疑人生。負號的意思是:咖啡比室溫熱,溫度就往下掉;溫差越大,掉得越快。

定義 1(冷卻常數)

稱上式中的 kk 為冷卻常數,單位是 min−1\text{min}^{-1}。它把杯子、桌面、空氣流動等一切我們懶得建模的東西打包在一起。

解出來

引理 2(冷卻曲線)

若 T(t)T(t) 滿足上面的方程,且 T(0)=T0T(0)=T_0,則對一切 t≥0t\ge 0,

T(t)=Troom+(T0−Troom) e−kt.T(t) = T_{\text{room}} + \bigl(T_0 - T_{\text{room}}\bigr)\,e^{-kt}.

證明令 u=T−Troomu = T - T_{\text{room}},則 u′=−kuu' = -ku。於是 (u ekt)′=(u′+ku) ekt=0\bigl(u\,e^{kt}\bigr)' = (u' + ku)\,e^{kt} = 0,所以 u ektu\,e^{kt} 是常數,等於它在 t=0t=0 時的值 T0−TroomT_0 - T_{\text{room}}。

也就是說,溫差按指數衰減。下面這張圖裡,拖動 5 分鐘處的測量點,感受一下不同杯子的差別:

圖 1 室溫 22°C,初溫 90°C。虛線是理想的入口溫度。

算一算我的那杯

我用溫度計量過一次:室溫 22∘C22^\circ\mathrm{C},沖好時 90∘C90^\circ\mathrm{C},5 分鐘後是 75∘C75^\circ\mathrm{C}。代入 引理 2:

e−5k=75−2290−22=5368⟹k=15ln⁡6853≈0.0498.e^{-5k} = \frac{75-22}{90-22} = \frac{53}{68} \quad\Longrightarrow\quad k = \frac{1}{5}\ln\frac{68}{53} \approx 0.0498.

再解 T(t)=60T(t) = 60:

t=1kln⁡6838≈11.7 min.t = \frac{1}{k}\ln\frac{68}{38} \approx 11.7\ \text{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“留作習題”是數學家最古老的偷懶方式,我決定把這個傳統發揚光大。