一只水箱,一條平衡律
想像一只裝著鹽水(鹵水)的水箱。頂部一根管子注入新的鹽水;底部一根管子排出被攪勻的混合液。我們不去追蹤雜亂的分子細節;我們只追蹤一個數字——箱中鹽的量 S(t),以克計。每一道混合問題都懸在一句你在本階梯第一篇就見過的話上:量的變化率,等於流入率減去流出率。寫成符號就是 dS/dt =(鹽流入的速率)-(鹽流出的速率)。整門手藝,就在於正確地把那兩個速率填進去。
每個速率永遠是「液體流量乘以濃度」——這個乘積就是關鍵。流入帶來液體以某個流量(譬如每分鐘 5 公升),其中含鹽濃度為某值(譬如每公升 2 克),於是鹽以 5 乘 2 = 10 克每分鐘的速率進入。流出則更微妙,也是初學者跌跤之處:排出的液體所帶的濃度,正是水箱當下的濃度,也就是鹽量除以當下體積 S/V。所以鹽以(流出流量)乘以(S/V)的速率離開。注意 S 出現在右邊——方程對自身產生回饋,這正是它之所以是微分方程、而非單純公式的原因。
先盯住體積
體積遵守它自己的小平衡式:dV/dt =(流入率)-(流出率),計的是公升而非克。最友善、也最該先掌握的情形,是流入與流出的流量相等,譬如都是每分鐘 5 公升。那麼 dV/dt = 0,體積維持在起始值 V_0 不變,而 S/V 的分母就是個常數。鹽的平衡式於是成為 dS/dt = 10 - 5·(S/V_0),一條係數為常數的乾淨方程。
若兩個流量不等,體積就會漂移,方程也會出現變係數。假設每分鐘流入 6 公升、只排出 4 公升:水箱每分鐘淨增 2 公升,於是 V(t) = V_0 + 2t。此時流出項是 4·S/(V_0 + 2t),其係數隨時間改變,而水箱終將溢出——這內建提醒你要留意模型的限度。誠實的做法,是在碰鹽之前先把 V(t) 明寫出來,好讓你隨時清楚到底是什麼在除 S。
Volume balance: dV/dt = q_in - q_out (litres/min) Salt balance: dS/dt = q_in*c_in - q_out*(S/V) q_in = inflow rate of liquid (litres/min) c_in = concentration coming in (grams/litre) q_out = outflow rate of liquid (litres/min) S/V = current tank concentration (grams/litre) Equal rates (q_in = q_out = q, so V = V_0 constant): dS/dt = q*c_in - (q/V_0)*S -- first-order linear, constant coeffs
它其實是喬裝過的一階線性方程
把流量相等的情形重排:dS/dt + (q/V_0) S = q·c_in。這恰恰就是你在本階梯稍早學會求解的一階線性方程 y' + p(t) y = q(t)——這裡 p 是常數 q/V_0,右邊則是常數的鹽流入率。所以你早已握有工具:乘上積分因子 mu(t) = e^(∫p dt) = e^((q/V_0) t),把左邊認成單一個導數,再積分。不需要新技巧;混合的故事只是遞給你一條特定的線性方程,餵進你早已精通的配方。
解的形狀,正是你如今面對任何「被驅動的線性方程」都該預期的:一個穩定的部分,加上一個逐漸消退的部分。以 S(0) = S_0 求解 dS/dt + (q/V_0) S = q·c_in,得到 S(t) = V_0·c_in + (S_0 - V_0·c_in)·e^(-(q/V_0) t)。把它當故事讀。第一塊 V_0·c_in,是水箱最終安定下來的鹽量——它的穩態。第二塊則是暫態:一段對初始量的記憶,以指數衰減,在數倍於時間常數 V_0/q 之後就消失殆盡。
從一箱到多箱:隔室模型
真正的威力,出現在你把水箱串接起來的時候。讓 1 號箱排入 2 號箱、2 號箱排入 3 號箱,前一只的流出便成為後一只的流入。每只箱子各有自己的平衡律,而方程如今互相耦合:2 號箱的流入濃度,就是 1 號箱的當下濃度,所以 S_2 的方程裡含有 S_1。這正是隔室模型的核心——一個系統,每個「隔室」是一池被攪勻的液體,隔室間的箭頭以正比於存量的速率搬運物質。
合寫起來,兩只耦合的水箱給出兩條方程——dS_1/dt 與 dS_2/dt——必須當作一個一階方程組一併求解,而不能逐條來解,因為它們彼此依賴。你還沒學到怎麼解這類方程組(那是日後一整座階梯的事,要用到特徵值與矩陣方法),但你現在已經能正確地把它們建起來,而這個建模步驟正是有價值的那一半。回想第一篇,同一幅隔室圖景,不過是把建模循環一次套用在好幾池相連的液體上罷了。
同一個想法,遠離任何水箱
水箱之所以值得你花時間,是因為應用裡幾乎沒有一件事真的跟鹵水有關。換掉詞語,一模一樣的方程便能描述:一座從河流接收污染物、又把它沖往下游的湖;在兩個相鄰房間之間移動的熱;散布於耦合電容器上的電荷。數學並不在乎那個「量」是鹽的克數、污染物的公斤數,還是熱的焦耳數——「流入=流出+變化」這條平衡律放諸四海皆準。學會水箱,就是學會一個可攜帶的範式。
最舉足輕重的一次改名,發生在醫學裡。注入血液的藥物就是鹽;身體就是水箱;肝與腎就是那根流出管,以正比於濃度的速率清除藥物。這正是藥物動力學的基礎,而它的雙箱版本——血液隔室與組織隔室相互交換——恰恰就是上面那個耦合系統。你為鹵水推導出的指數清除曲線,正是那條告訴臨床醫師「一劑藥如何消退、下一劑何時該給」的曲線。
- 決定每個隔室裡你追蹤的「量」是什麼(克、公斤、焦耳、毫克的藥),並連同單位命名為 S_i(t)。
- 先把每個體積定下來:由各自「流入減流出」的平衡寫出每個 V_i(t),使濃度 S_i/V_i 有明確定義。
- 為每個隔室各寫一條平衡式:dS_i/dt =(流量乘以來源濃度)流入項之和,減去(流量乘以 S_i/V_i)的流出項。
- 若只有一只箱,認出一階線性形並以積分因子求解;若有多只,組裝出耦合系統,並逐一檢查每個平衡是否合理。