顯式與隱式格式(explicit vs implicit schemes)
把與時間相關的 PDE 往前推進時,路有分岔。你可以把每個新值直接寫成你已知的值——「顯式」格式,未來以單純算術從過去算出。或者你可以把方程寫成新值出現在兩邊、糾纏在一起——「隱式」格式,你必須解一個方程系統才能取出新一列。與時間相關問題的有限差分,其全部實務權衡就活在這個選擇裡。
像 FTCS 的顯式格式給出形如 u_j^{n+1} =(只由 u^n 建出的東西)的更新。每個新值以 O(1) 工作讀出;對 N 個節點,一個完整時間步只花 O(N),且寫起來極簡。問題在穩定性:顯式格式「條件穩定」,受 CFL 型限制(熱方程 r = alpha*k/h^2 <= 1/2,波動 c*k/h <= 1),故時間步被封頂,有時嚴酷。像 BTCS 或克蘭克-尼科森的隱式格式耦合新鄰點,故一個時間步需解線性系統 A u^{n+1} = b——一維問題是便宜的三對角求解(經 Thomas 演算法 O(N)),但在二維/三維是需迭代或多重網格求解器的大型稀疏系統。回報是「無條件穩定」:穩定性不設時間步限,只受準確度所限。
故經驗法則:顯式每步便宜但步長封頂(當自然時間尺度本就逼出小步時極佳,例如你反正想解析的快速波傳播);隱式每步昂貴但你能取大步(當你否則會被逼進荒謬微小的步時極佳,尤其是「剛性」問題,其顯式限制比準確度需求小上數千倍)。誠實的說法:兩者皆非普遍更優。當步長因物理原因本就小、你又看重簡潔時選顯式;當穩定性否則會勒死你時選隱式,把每步求解當作自由的代價。許多生產級程式兩者並用——非剛性部分用顯式、剛性部分用隱式(IMEX 格式)。
alpha = 1、h = 0.01 的擴散:FTCS 的穩定上限為 k <= h^2/2 = 5*10^-5,故到 t = 1 至少需 20000 個顯式步。BTCS 或克蘭克-尼科森可取 k = 0.01(大 1000 倍),100 步完成——每步付一次三對角求解,但步數遠少。若準確度只需 k 約 0.01,隱式路線決定性地勝出。
顯式:步便宜、尺寸封頂。隱式:步昂貴、無穩定性上限。
隱式格式的無條件穩定「不」是任意大步的許可證——k 增大時準確度仍退化,且當系統病態時每步求解更難收斂。反過來,顯式格式的小步有時恰是物理本就需要的,那時它的簡潔取勝。這個選擇是成本對穩定性的權衡,而非對品質的裁決。