一本帳簿,而非一條力的定律
在上一份指南中,我們認識了一階雙曲系統,並學會從它們的特徵速度中讀出資訊。現在我們收窄到最具啟發性的單一情形——一個未知量、一個空間維度——並追問方程本身從何而來。答案比一條力的定律更謙卑:它是記帳。任取一段道路、河流或電線,介於 x = a 與 x = b 之間。那段區間內某守恆量的總量改變,只可能有一個原因:物質從一端流入、從另一端流出。內部不生不滅。
用 u(x, t) 表示密度——在位置 x、時刻 t,每單位長度承載多少物質——再用 f 表示通量,也就是該物質流過某一點的速率。記帳的說法是:[a, b] 內總量隨時間的變化率,等於在 a 處流入的減去在 b 處流出的。把區間收縮成一點,那則積分陳述便塌縮為微分形式的純量守恆律 u_t + f(u)_x = 0。這就是一大族偏微分方程的守恆律起源,而 u_t + (某物)_x = 0 這個形式正是要辨認的指紋。
integral (truthful) form: d/dt integral_a^b u dx = f(u(a,t)) - f(u(b,t))
shrink [a,b] to a point: u_t + f(u)_x = 0 (scalar conservation law)
chain rule, smooth u: u_t + f'(u) u_x = 0 (quasilinear transport)
examples: transport f(u) = c u f'(u) = c (constant speed)
Burgers f(u) = u^2/2 f'(u) = u (speed = value)
traffic f(u) = u(1 - u) f'(u) = 1 - 2u通量帶著自己的速度
只要 u 保持光滑,連鎖律就把守恆律化為 u_t + f'(u) u_x = 0。把它和一階梯級上那個樸素的傳輸方程 u_t + c u_x = 0 相比,後者的解只是把初始剖面以固定速度 c 向右滑動。唯一的差別在於,常數 c 被換成了 f'(u)——一個取決於所承載之數值的速度。就這一個替換,是接下來全部戲劇的根源。
跑一遍特徵線法,畫面便鮮明起來。沿著曲線 dx/dt = f'(u),數值 u 被原封不動地承載,因此每一條特徵線都是一條直線,其斜率速度由它起始的數值決定。對柏格斯方程 f(u) = u^2/2,速度就是 f'(u) = u,所以剖面高的部分跑得快、矮的部分跑得慢。這些道路不再平行:它們依所載的貨物,傾斜出不同的角度。
壓縮:道路相撞的那一刻
機制就在這裡,完全畫在那些傾斜道路的幾何之中。設想資料是下降的——後方一個高狀態、前方一個低狀態,由一道平滑的下坡斜面相連。高的值射出快特徵線,低的值射出慢特徵線,於是後方的快線撲向前方的慢線。兩條起初分離又彼此收斂的道路,終究必然相遇。當第一對特徵線相觸的那一瞬,兩個不同的、被記住的 u 值抵達同一點,單值函數再也無法同時遵守兩者。
盯著剖面本身看,而不只是路線圖。由於斜面的後段比前段跑得快,斜面便逐漸變陡——就像海湧的後段追過它的正面,直到波浪直立、捲起。高度 u 全程保持完美有界;衝向無窮的是斜率 u_x。這就是梯度爆破:數值有界,梯度無窮。兩種破壞模式——數值爆掉與梯度爆掉——是不同的物種,而這裡爆掉的嚴格說來是梯度。
誠實而略帶驚人的事實是,崩潰發生在一個確定的有限時刻,並非漸進地發生。在那一瞬之前,解是真正光滑而古典的;一拍之後,它在古典意義下根本不存在。資料的符號決定了命運:下降的斜面壓縮並破裂,而上升的斜面讓特徵線扇形散開、永遠保持光滑(散開的情形是稀薄波,我們留到黎曼問題再談)。壓縮造成震波;膨脹從不。
直接從資料讀出破裂時刻
我們可以把這場災難釘成一個數字。離開點 x0 的特徵線是直線 x = x0 + f'(u0(x0)) t,承載著數值 u0(x0)。兩條相鄰特徵線在它們的扇形首次聚焦時相撞,而沿著它們做一行微分,便得到空間斜率的成長律。斜率恰好在相鄰直線收斂最快之處爆掉——也就是當你向右移動時,特徵速度下降得最陡之處。
令 a(x0) = f'(u0(x0)) 為從 x0 射出的特徵速度。沿扇形微分得到 u_x = u0'(x0) / (1 + a'(x0) t),它在 1 + a'(x0) t = 0 的那一瞬爆掉。這只可能發生在 a'(x0) < 0 之處——也就是當你向右移動時,射出的速度遞減之處——而最早的這種相撞就是破裂時刻 t* = -1 / min over x0 of a'(x0)。對柏格斯方程 a = u,所以 a' = u0',公式化簡為乾淨的 t* = -1 / min(u0'),取於初始斜率為負的那些點。
請注意這條公式不准你在哪裡作弊。若特徵速度處處非遞減——對所有 x0 皆有 a'(x0) 不小於零——分母永不為零,t* 為無窮,永遠不會形成震波。因此震波形成並非運氣不好;它是被、且只被特徵速度向下游遞減的那些區域所逼出。這就是「資料具壓縮性」精確而可檢驗的意思,它能預先告訴你某個初始剖面是否注定要破裂。
破裂之後:解必須重生
在 t* 時,微分方程 u_t + f(u)_x = 0 悄然失去意義,因為 u_x 在正在形成的跳躍處已不存在。但我們起初出發的那本積分帳簿,從一開始就不曾要求 u_x——它談的始終只是總量與通量,而它對不連續的 u 完全自在。因此越過這場災難的辦法,是退回那忠實的積分形式、只要求這一點。一個可以帶跳躍、卻仍在這經測試的、積分的意義下滿足守恆律的函數,就是一個弱解。
允許跳躍令人解脫,卻並非免費,接下來三份指南會詳述代價。積分記帳不允許新的前緣以任何它喜歡的速度行進:跨越跳躍的守恆固定了它的速度,這就是第三份指南的朗肯-雨貢尼奧條件。更糟的是,一旦允許跳躍,弱解竟然不唯一——好幾個不連續函數都能滿足那條律——因此第四份指南施加一條熵條件來篩選出唯一的物理解,而第五份指南把這些拼塊組裝成黎曼問題,並把答案讀成一個被消失黏性平滑過的特徵線相交極限。