從一道行進波到一套方法
在上一篇指南裡,我們解了 傳輸方程 u_t + c u_x = 0,發現每個解都是一個凍結的波形以速度 c 向右滑動:u(x,t) = f(x - c t)。這個答案幾乎是白送的,讓人忍不住把它當成幸運的特例。其實不然。藏在它背後的是一個完全通用的想法——特徵線法——它能解出一整族一階偏微分方程,而我們要做的,就是把這個想法挖出來攤在陽光下。
觀點的轉變在這裡。偏微分方程同時把好幾個方向上的變化率綁在一起,這正是它令人頭痛的原因——沒有單獨一條線可供前進。特徵線法替一階方程找出了那些對的線:(x,t) 平面上的一些路徑,沿著它們,未知函數 u 的變化是由一條常微分方程、而非偏微分方程所支配。順著這些路徑走,多變數的問題就溶解成你在下一階常微分方程那裡早已會解的單變數問題。
方向導數的把戲
拿這套方法能處理的最基本方程來看,一個係數為常數的一階線性偏微分方程:a u_x + b u_t = 0。盯著左邊看。如果你還記得連鎖律,a u_x + b u_t 正好就是當你在 (x,t) 平面上沿著方向 (a, b) 移動時,u 的變化率。所以整個方程其實只是平靜地說了一句話:沿著方向 (a, b) 移動時,u 完全不變。它沿著每一條指向那個方向的線都是常數。
那些線就是特徵線(特徵曲線)。在這個常係數的情形裡,它們只是直線 b x - a t = 常數,而 u 帶著它在線的起點所擁有的數值,永遠原封不動。對傳輸方程而言,a u_x + b u_t 變成 u_t + c u_x,對應 (a, b) = (c, 1):特徵線是 x - c t = 常數,而 u 在每一條線上都是常數這件事,正是 u(x,t) = f(x - c t) 的原因。原來那道行進波一直就是特徵線的圖像;我們只是還沒替這些曲線取名字。
特徵常微分方程系統
現在讓我們把程序變得機械化,因為真正的好處在於:即使 a 和 b 依賴於 x 和 t,這套方法依然管用。我們用一個參數 s 來參數化一條特徵曲線,使得移動的點是 (x(s), t(s)),然後問 u 沿著它如何變化。方程 a u_x + b u_t = 0 告訴我們,要把這個點的速度選為 (a, b)。這就給出了特徵常微分方程系統:描繪這條曲線的 x(s) 與 t(s) 的常微分方程,再加上一條沿曲線描述 u 本身的方程。
Equation: a u_x + b u_t = 0 Characteristic ODE system (parameter s): dx/ds = a dt/ds = b du/ds = a u_x + b u_t = 0 -> u is constant along the curve So: solve for (x(s), t(s)), and carry u unchanged from the start.
第三條 du/ds = a u_x + b u_t 正是核心所在:由連鎖律,du/ds 不過是當點 (x(s), t(s)) 移動時 u 變化得多快,而偏微分方程說這個量是零。所以 u 沿每一條特徵線都是常數。先前看起來像魔法的記帳——「u 保住它的初始值」——如今成了一行常微分方程 du/ds = 0,解顯而易見:u = 常數。我們是真真切切地把一條偏微分方程化成了常微分方程。
一個實作配方
讓我們在一個非常數的例子上把整個流程跑一遍,好讓你感受到機制運轉的樣子:x u_x + u_t = 0,初始條件 u(x, 0) = g(x)。這裡速度依賴於位置,a = x、b = 1,所以特徵線會彎曲、轉向,而不像平行直線那樣前進。配方和之前一樣;只是曲線變得更有意思了。
- 寫下特徵常微分方程。 由 a = x、b = 1:dt/ds = 1,dx/ds = x,du/ds = 0。把 t 當作參數(因為 dt/ds = 1),這就是 dx/dt = x 與 du/dt = 0。
- 解出曲線。 dx/dt = x 給出 x = x_0 e^t,其中 x_0 是曲線在 t = 0 時所在的位置。等價地,x e^(-t) = x_0 沿每條特徵線都是常數——這個組合就是守恆量。
- 傳輸 u。 du/dt = 0 表示 u 保住它的起始值 g(x_0)。解上的每一點都記得它那條特徵線根部的資料。
- 組裝答案。 把 x_0 換成 x e^(-t):u(x, t) = g(x e^(-t))。驗證一下——u_x = g'·e^(-t),u_t = g'·(-x e^(-t)),於是 x u_x + u_t = g'(x e^(-t)) - g'(x e^(-t)) = 0,且 u(x,0) = g(x)。成立。
注意最終答案的形狀:一個任意函數 g,在守恆組合 x e^(-t) 處取值。這正是偏微分方程通解的特徵。與常微分方程不同——後者的通解攜帶任意常數——偏微分方程的通解攜帶任意函數:自由度多達一整個函數那麼大,而正是初始資料 g 釘死了到底是哪一個。特徵線把這份自由具體化了:每一條特徵線就是一個獨立的旋鈕。
幾何圖像:由曲線編織出的曲面
在所有代數底下藏著一幅美麗的圖像。把答案想成一張解曲面:u 在 (x,t) 平面之上的圖形,一片漂浮在 (x, t, u) 空間中的薄板。每一條特徵線,一旦我們替它附上(恆定的)u 值,就成了一條躺在那片薄板裡的曲線。解偏微分方程,字面上就是用這些特徵曲線把曲面編織出來,像鋪設絲線一樣。從 t = 0 的資料曲線出發,讓它上面的每一點都沿著各自的特徵線向前行進,這些絲線便掃出整張曲面。
這幅幾何圖像也讓這套方法的極限變得誠實——而這些極限正是本階接下來要花心力探索的。對於常速度平流方程,特徵線是平行的,永不相觸,編織在任何時刻都完美無瑕。但只要特徵速度開始依賴 u 自身——也就是準線性方程,第三篇的主題——特徵線就可能聚攏並相交。當兩條帶著不同 u 值的絲線相遇,曲面試圖同時待在兩個地方,解失去了它的單一值,於是一道震波誕生了。這就是通往本階結尾柏格斯方程的道路。