偏微分方程的數值方法:有限差分

直線法(method of lines, MOL)

/ M-O-L /

解與時間相關的 PDE 意味著同時兼顧空間與時間的導數,這很彆扭。直線法是一個乾淨的分而治之技巧:「只」離散空間導數,讓時間保持連續。這把單一 PDE 轉成一個關於時間的大型常微分方程系統——每個格點的值一條 ODE——你接著把它交給任何現成的 ODE 求解器。你把一個二維問題拆成兩個你已會做的一維問題。

具體而言,取熱方程 u_t = alpha*u_xx。鋪一個空間網格,把節點 j 的 u_xx 換成中心二階差分 (u_{j-1} - 2u_j + u_{j+1})/h^2,但「別」碰時間導數。如今 u_j 仍是時間的函數,你對每個 j 有 du_j/dt = alpha*(u_{j-1} - 2u_j + u_{j+1})/h^2——一個 N 條 ODE 的耦合系統,精簡寫成 du/dt = A*u,其中 A 是(稀疏、三對角的)有限差分矩陣。名稱來自這幅圖像:每個格點在時間中描出一條「線」,你一起演化所有這些線。然後你選一個時間積分器:前向尤拉重現 FTCS,後向尤拉重現 BTCS,梯形法則重現克蘭克-尼科森,而龍格-庫塔或 BDF 法給你更高級的東西——全來自同一個半離散系統。

這個觀點的威力在於模組化與重用。你不必為每個 PDE 發明新的全離散格式,而是把空間離散(你選的模板)與時間積分(整套成熟的 ODE 求解器工具箱,連同其自適應步長控制、穩定區域、剛性處理)分開。它也釐清「為何」擴散的顯式格式如此受限:ODE 系統 du/dt = A*u「剛性」——二階差分的矩陣 A 特徵值低至約 -4*alpha/h^2,極度為負,故顯式 ODE 求解器的穩定區域逼出微小步長,正是偽裝的拋物型 CFL 限制。誠實的告誡:MOL 只直接處理與時間相關(演化型)的 PDE,且把高階空間模板與低階時間積分器拙劣配對會浪費精度。

對 100 個內部節點、h = 0.01 的 u_t = u_xx,MOL 產生 du/dt = A*u,其中 A 為 100x100、三對角,對角為 -2/h^2 = -20000。把它餵給剛性 ODE 求解器(如 BDF 法),它自行調整時間步;餵給前向尤拉,你又回到帶 k <= h^2/2 緊身衣的 FTCS。

只離散空間:PDE 變成 du/dt = A*u,一個大型 ODE 系統。

擴散算子得到的半離散 ODE 系統「剛性」(特徵值如 -1/h^2 縮放),故把 MOL 配顯式 ODE 求解器,會重新施加與 FTCS 相同的嚴酷步長限——偽裝的拋物型 CFL 條件。要利用 MOL 的自由,你通常需要隱式或剛性穩定的積分器(後向尤拉、BDF)。

又稱
MOLsemi-discretization半離散化線法