JOVANA
Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

從文字題到微分方程

真實問題以「東西變化得多快」的句子登場,而不是現成的方程式。本文示範一門有紀律的手藝:把一段文字——一杯冷卻的飲料、一只排水的水箱、一則蔓延的謠言——翻譯成你真正能研究的微分方程。

每個模型都藏著的那一句話

到目前為止,只要有人把方程遞給你,你就能解——分離變數、找積分因子、用代入法驗算。但在真實世界裡,沒有人會直接遞給你一條方程。他們遞給你的是一段文字:「一群細菌每三小時增為兩倍」、「一杯咖啡朝室溫冷卻」、「鹽水流入水箱、同時混合液排出」。這座階梯真正倚賴的本事,正是這個翻譯動作本身——把英文(或中文)化成一條微分方程——而這是一門可以刻意學會、而非碰運氣的手藝。

祕訣在於:幾乎每一段這樣的文字,都在改寫同一個樣板:「某個量的變化率,等於某個式子」。去搜尋「速率」、「每」、「增長」、「冷卻」、「流入」這類字眼——它們每一個都是喬裝過的導數。若 Q 是那個量,這句話其實在說 dQ/dt =(某式)。整件工作就是:認出 Q、明白「變化」這類措辭意味著 dQ/dt,再把那個「某式」用 Q、t 與題目中的常數表達出來。

為角色命名:變數及其意涵

在任何符號出現之前,先明確決定每個符號代表什麼,連同它的單位。這不是繁文縟節;多數建模錯誤正是在這裡悄悄誕生的。選定自變數——通常是以秒、小時或年計的時間 t——以及因變數,也就是你要追蹤的未知函數:以度計的溫度 T(t)、以克計的質量 m(t)、以隻計的動物數 N(t)。寫下「設 T(t) 為倒入後第 t 分鐘咖啡的攝氏溫度」,會逼你誠實面對哪個變數依賴哪個

單位同時是一個免費的查錯器。左邊的 dQ/dt 永遠帶著「量/時間」的單位:克每分鐘、度每秒。因此右邊每一項也都必須帶相同的單位。若你的右邊算出來是「克」卻沒有「每分鐘」,那你準是漏掉了某個速率常數、或方程列錯了——這種不一致會在你動手求解之前就抓住錯誤。這個讓單位平衡的習慣,是整個建模過程中最廉價的保險。

從定律到方程:三個翻譯實例

且看樣板如何運作。成長。「一個族群以正比於其當下大小的速率增長。」量為 P,速率為 dP/dt,「正比於其大小」一語意味著等於某常數乘以 P。於是 dP/dt = k P——指數增長定律。常數 k 是人均增長率;它的正負與大小,你日後會從真實數據中讀出。

冷卻。「一個熱物體以正比於它比室溫高出多少的速率冷卻。」量為 T,速率為 dT/dt,「比室溫高出多少」就是差 T - T_room。於是 dT/dt = -k (T - T_room),帶負號是因為熱物會*降溫*——這就是牛頓冷卻定律混合。「鹽水流入水箱,混合液又排出。」量=鹽的克數 S,且 dS/dt =(鹽流入的速率)-(鹽流出的速率),是兩股流量的平衡,你會在後續一篇中仔細組裝它。

English phrase                         Differential equation
----------------------------------     ---------------------------
rate proportional to amount            dP/dt = k P
rate proportional to (T minus room)    dT/dt = -k (T - T_room)
inflow rate minus outflow rate         dS/dt = r_in - r_out
rate that slows as P nears a ceiling   dP/dt = k P (1 - P/K)
同一本字典反覆出現:表示變化的動詞化為導數,「正比於」化為某常數乘以一個式子。

留意表中最後一列。當題目補上「但增長會在族群逼近上限 K 時放緩」,你便把成長律乘上一個煞車因子 (1 - P/K),它在承載量處淡化為零。那就是邏輯斯諦方程,它顯示這門手藝如何向上擴展:故事裡的複雜情節,化為右邊額外的因子與項,從不動搖那個基本樣板。

整理:正規形與起始值

方程一旦成形,就把它化為一階正規形——對導數解出,dy/dt = f(t, y)。這不只是為了整潔:幾乎每一種求解配方、每一套數值方法,都假定方程處於這個形狀,因為 f(t, y) 恰恰就是解在點 (t, y) 處必須具有的斜率。化到那裡只是代數——通除、移項——但它是後續每一項技巧進門的標準門口。

光有方程,仍藏著一整族的解,每個常數值對應一個。文字題幾乎總會供出那個缺失的事實:「咖啡起初是 90 度」、「最初有 500 條魚」。那單一個起始事實,就是一個形如 y(0) = 90 的初始條件,而方程連同它,便構成一個初值問題——在溫和的假設下恰有唯一解的那個精確數學對象。一個沒有初始條件的模型,只是半個模型。

  1. 為變數及其單位命名;說清誰依賴誰——「設 T(t) 為第 t 分鐘的溫度,以度計」。
  2. 找出表示變化的動詞。凡「增長」、「冷卻」、「排出」者,化為左邊的導數 dQ/dt。
  3. 依定律組裝右邊:把「正比於」、「流入減流出」、「逼近上限時放緩」翻譯成 Q、t 與常數。檢查單位是否平衡。
  4. 重排成正規形 dQ/dt = f(t, Q),再附上初始條件 Q(0) = Q_0,以鎖定唯一一個解。

對模型本質的誠實

翻譯一段文字,只是一個更長迴圈中的一步。完整的建模循環是這樣運轉的:把現實簡化為假設、寫下方程、求解或分析它,再拿預測與真實數據比對,並在兩者不符時繞回去修正假設。一條微分方程從不是真理;它是真理一幅刻意而簡化的漫畫,其有用程度,恰好取決於它的假設成立到什麼地步。

所以要把你的假設大聲說出來,並尊重它們的限度。「dP/dt = k P」暗自假定食物與空間無限——對一支年輕的菌落為真,一旦培養皿擠滿便荒謬,這正是邏輯斯諦修正存在的緣由。「dT/dt = -k(T - T_room)」假定房間溫度紋風不動、物體只有單一均勻溫度,兩者都僅近似成立。每個模型都有一塊「誠實的範圍」;假裝它處處成立,正是好數學產出壞預測的方式。