偏微分方程的數值方法

CFL 條件(Courant-Friedrichs-Lewy condition)

/ KOOR-ahnt FREE-drikhs LAY-vee /

當你模擬一個橫越網格傳播的波時,常識告訴我們:模擬必須跟得上物理。若真實的波在一個時間步內越過兩個格子,而你的顯式格式每次卻只看左右各一格,那麼格式就是在用尚未「聽說」這個波的點來算下一個值——注定失敗。CFL 條件正是這條「別讓波跑贏樣板」規則的精確陳述,也是整個數值偏微分方程中最出名的穩定性約束。

把它對對流方程 u_t + a u_x = 0 量化。物理波在一個時間步內移動距離 a*dt;一個格子寬 h。無因次比 c = |a| dt / h 是庫朗數,量度波每步越過幾個格子。標準顯式格式的 CFL 條件是 c <= 1,亦即 dt <= h / |a|:時間步長必須小到讓波每步至多前進一格。其深刻的幾何解讀,正是 Courant、Friedrichs 與 Lewy 在 1928 年的原始洞見:數值依賴域(格式實際用來計算某值的格點集)必須包含真正的依賴域(精確偏微分方程所說影響該點的區域)。若不然,沒有任何格式能收斂——它根本看不到所需的資料。

其實務上的刺痛與 FTCS 相同:對顯式格式,時間步長被綁在網格尺寸上,加密網格便逼出越來越小的步長與越來越高的代價。對雙曲型問題此鏈是 dt 正比於 h;對顯式拋物型格式則是更嚴苛的 dt 正比於 h^2。CFL 是「必要」條件(在同一樣板上你無法用更聰明的顯式格式打敗它),但並不總是充分——完整的穩定性故事由馮諾伊曼分析給出。隱式格式的樣板每步觸及整個網格,因此完全繞開 CFL 上限,這正是它們存在的全部理由。

在 h = 1 公尺的網格上模擬聲音(a = 340 公尺/秒),顯式格式逼出 dt <= 1/340 約 0.0029 秒。把 h 減半為 0.5 公尺,你也必須把 dt 減半——空間點數加倍、步數加倍,於是為了多一位空間精度要付出四倍的計算量。

庫朗數 c = |a|dt/h 對顯式格式不可超過 1。

CFL 是必要的,但並不總是充分:滿足 c <= 1 本身不能證明格式穩定(對流的 FTCS 滿足 CFL 卻不穩定)。而且它只約束「顯式」格式——隱式格式不受 CFL 限制。

又稱
Courant–Friedrichs–Lewy conditionCourant number condition庫朗數條件庫朗-弗里德里希斯-列維條件