克蘭克-尼科森格式(Crank-Nicolson scheme)
/ krank NIK-ol-son /
FTCS 在「舊」時間算空間項,BTCS 在「新」時間算。兩者在時間上都一階準確,也各有瑕疵——FTCS 只條件穩定,BTCS 無條件穩定卻粗糙。克蘭克-尼科森採取最自然的折衷:把兩者平均。藉由在新舊之間取一半來計算空間模板——一半在層 n、一半在層 n+1——它在時間精度上多得一整階,同時保有無條件穩定。它是熱方程的標準主力。
具體而言,你對 u_t = alpha * u_xx 在時間上套梯形法則:更新式令 (u_j^{n+1} - u_j^n) / k 等於 alpha 乘上新層與舊層中心二階差分的「平均」。以 D 表二階差分算子、r = alpha * k / h^2,此式變為 u_j^{n+1} - (r/2) * D u_j^{n+1} = u_j^n + (r/2) * D u_j^n。新鄰點出現在左邊,故每步又解一個三對角系統 A u^{n+1} = b——成本結構與 BTCS 相同——但對稱的置中使局部截斷誤差為 O(k^2 + h^2),時間與空間皆二階。格式置中於半步時間層 n + 1/2,這正是那額外精度的來源。
馮諾伊曼分析給出放大因子 (1 - r*(1 - cos)) / (1 + r*(1 - cos)),其大小對所有 r 至多為 1,故克蘭克-尼科森無條件穩定:大時間步永不爆炸。誠實的告誡是:當 r 大時,此放大因子對高頻模式趨近 -1(而非 0),故尖銳的初始特徵或不連續會產生緩慢衰減的振盪——響很多步的非物理擺動。實務上以偶爾插入一個全隱式 BTCS 步(Rannacher 起步)或保持 r 適中來抑制。儘管如此,對平滑的擴散問題,克蘭克-尼科森的二階精度與無條件穩定使它成為預設選擇。
對熱方程,相較於取微小的顯式步,它把達到二階時間精度的工作量減半:取 r = 1,你建一個三對角系統,對角為 1 + r = 2、非對角 -r/2 = -0.5,右端為舊值的類似組合。每步一次 Thomas 求解,得到在 k 與 h 上皆二階準確的答案——FTCS 只能用遠小得多的 k 才能達到的精度。
平均新舊:時間二階,無條件穩定。
無條件穩定不等於無振盪:當 r 大時,放大因子在最尖銳的模式上趨近 -1(而非 0),故階梯函數或不連續的初始資料可能響很多步。對策是用幾個 BTCS 步抑制起步,而非放棄克蘭克-尼科森。