咖啡要涼多久?
牛頓冷卻定律,一杯的分量
剛沖好的手沖大約 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“留作習題”是數學家最古老的偷懶方式,我決定把這個傳統發揚光大。