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

雙曲型系統與特徵速度

一條傳輸方程以單一速度承載單一訊號。但若有好幾個量一起前行、彼此交換動量呢?認識一階雙曲型系統,理解為何它們的特徵值「就是」訊號傳播的速度,並看清對角化如何把一團耦合的亂麻,化為彼此獨立的行波。

從單一訊號,到一整支隊伍

你帶著一個美麗的事實來到這裡:傳輸方程 u_t + c u_x = 0 以速度 c 把一個輪廓帶往下游,而它的解 f(x - c t) 沿直線 x - c t = 常數保持常數。那唯一的速度 c 就是全部的故事。但物理學大多不是「單一個量獨自漂流」——而是「好幾個量一起前行、彼此推擠」。在氣體中,密度與速度是耦合的:把密度擠壓,速度場就會反應;把流動加快,密度就在前方堆積。我們需要一種辦法來處理「一個未知量向量同步演化」,而這正是一階雙曲型系統的內容。

把未知量收進一個行向量 U(x,t) = (u_1, u_2, ..., u_n)。一維空間中的一階系統長這樣:U_t + A U_x = 0,其中 A 是一個 n×n 矩陣。每一列都是它自己的偏微分方程,而 A 的非對角元正是那些耦合:第一列的方程含有 u_2 的斜率,第二列的方程含有 u_1 的斜率,依此類推。若 A 是對角的,各列就互不交談,我們便只有 n 條獨立的傳輸方程,各以自己對角線上的速度被帶著走。本篇導讀的全部手藝,就是要讓一個非對角的 A,在恰當的座標下,表現得「恰恰像」一個對角矩陣。

為何特徵值「就是」那些速度

核心想法在此,而且確實美妙。設 A 有一個(左)特徵向量 L,滿足 L A = lambda L,於是 L 挑出 lambda 這個方向。把系統 U_t + A U_x = 0 從左邊乘上 L。第一項變成 (L U)_t,第二項變成 L A U_x = lambda L U_x。令 w = L U,整個向量系統便塌縮成一條純量傳輸方程 w_t + lambda w_x = 0。我們對它的答案已瞭若指掌:w 沿直線 x - lambda t = 常數被原封不動地帶走。所以 A 的每個特徵值 lambda 都是一個特徵速度——字面意義上,就是「未知量的某個特定組合」行進的速度。

這正是雙曲這個詞對一個系統而言暗藏的意義。一個系統 U_t + A U_x = 0 被稱為雙曲型,恰恰在於 A 有 n 個「實」特徵值且具有完整的一組特徵向量——也就是說,A 在實數上可對角化。實特徵值意味著速度為實數,於是訊號真的會傳播;完整的特徵向量基底則意味著我們能同時把每個方向解耦。若某些特徵值是複數,你得到的會是指數增長而非行波,初值問題便會不適定——這與試圖讓熱方程在時間上倒退是同一類的失敗。雙曲性,恰恰就是「傳播圖景誠實成立」的條件。

對角化:一團耦合的亂麻,化為獨立的波

現在,對「每一個」方向同時施展特徵值的把戲,而不只是一個。把 n 個左特徵向量疊成一個矩陣 L 的各列,使得 L A = D L,其中 D = diag(lambda_1, ..., lambda_n)。定義新變數 W = L U。把系統乘上 L,得到 W_t + D W_x = 0,而由於 D 是對角的,這就只是 n 條彼此分離的純量傳輸方程,w_k,t + lambda_k w_k,x = 0,每個分量各一條。原本的未知量正隔著 A 的非對角元喋喋不休;新變數 W 卻彼此擦身而過,一語不發。每個 w_k 都是一個黎曼不變量(對線性系統而言精確如此):原始諸量的某個組合,沿它自己的特徵線被原封不動地帶走。

U_t + A U_x = 0            (coupled: A has off-diagonal entries)
        |
        |  W = L U,   L A = D L,   D = diag(lambda_1, ..., lambda_n)
        v
w_1,t + lambda_1 w_1,x = 0    -->  w_1 = const along x - lambda_1 t = const
w_2,t + lambda_2 w_2,x = 0    -->  w_2 = const along x - lambda_2 t = const
   ...
w_n,t + lambda_n w_n,x = 0    -->  w_n = const along x - lambda_n t = const
把 A 對角化,便將一個耦合系統拆成 n 個獨立的行波——每個黎曼不變量 w_k 沿它自己的特徵線、以速度 lambda_k 前行。

要重建物理上的答案,只需把變數變換還原:U = L^(-1) W。因此 U 的每個分量都是 n 個簡單行波之和,每個特徵速度各一個。這正是波動方程分裂為左行波與右行波在系統層級的回聲——在那裡,A 的特徵值為 +c 與 -c,於是一個訊號分裂成「一段以速度 c 向右跑」與「一段以速度 -c 向左跑」,正是達朗貝爾的 F(x - c t) + G(x + c t)。一般的雙曲型系統是同一個故事,只是把兩個速度換成 n 個。沿各自直線承載每一段的方法,就是你先前認識的特徵線法,如今每個特徵值各跑一次。

一個小小的算例:2×2 的情形

把波動方程寫成系統,令 p = u_t 與 q = c u_x。一段簡短計算給出 p_t = c q_x 且 q_t = c p_x,即 U_t + A U_x = 0,其中 U = (p, q),而 A 的兩列為 (0, -c) 與 (-c, 0)。它的特徵值解 lambda^2 - c^2 = 0,故 lambda = +c 與 lambda = -c——兩個實的、相異的速度,所以系統是嚴格雙曲的。對應的組合是 p - q 與 p + q。確實,(p - q) 以速度 +c 被帶走,(p + q) 以速度 -c 被帶走,而這兩個被承載的組合,正正就是黎曼不變量。

  1. 把系統寫成矩陣形式 U_t + A U_x = 0,並讀出 A。
  2. 解 det(A - lambda I) = 0 求出特徵值 lambda_1, ..., lambda_n——這些就是特徵速度。確認它們全為實數(否則系統不是雙曲型)。
  3. 為每個 lambda_k 找一個左特徵向量 L_k;組合 w_k = L_k U 就是以速度 lambda_k 被承載的黎曼不變量。
  4. 每個 w_k 沿直線 x - lambda_k t = 常數保持常數;把初始資料沿這些直線傳輸,再反轉 U = L^(-1) W 以還原物理上的答案。

留意這兩個速度為我們換來了什麼。從單一個擾動點出發,資訊向外擴散的速度不會快過最快的速度、也不會慢過最慢的速度——在這裡,不快過 +c、也不慢過 -c。那個有界的影響扇形就是依賴域,也是雙曲性最深刻的指紋:訊號以「有限」速度傳播。這與擴散恰成尖銳對立,後者的擾動會瞬間在各處被感受到。有限速度,正是為何雷聲在閃電「之後」才傳到你耳邊,而非與之同時。

當速度依賴於狀態本身——前方的路

上面的一切都假設 A 是一個固定的常數矩陣,於是速度 lambda_k 是固定的數值,特徵線是事先畫好的、筆直而平行的軌道。真正有趣的物理,始於 A 依賴於 U 本身之時——一個擬線性系統 U_t + A(U) U_x = 0。此時特徵速度 lambda_k(U) 隨著解而改變,於是特徵線會彎曲,較快的特徵線可以追上並超越較慢的。當兩條承載不同值的特徵線相撞,平滑解便沒有一致的值可取——於是一個震波在有限時間內誕生。

這是整個學習階梯的核心,也是它存在的理由。最乾淨的非線性例子是純量情形,其中單一個守恆量擁有依賴於狀態的速度——想想氣體動力學方程,或更簡單地,一條路上的車流,密集處慢吞吞、稀疏處飛快。一旦震波形成,「平滑解」這個古典觀念便徹底瓦解,我們被迫拓寬「解」的意涵:弱解登場,伴隨橫越震波的跳躍條件、挑出物理解的熵法則,以及最終的黏性趨零極限。一篇接著一篇,本學習階梯就在你方才打下的地基上,建起這整套機制。