後向尤拉法與 BDF 法
/ BDF (bee-dee-EF) /
當問題是剛性的,顯式方法束手無策——它們狹小的穩定區域逼出懲罰人的步長。拯救你的主力是隱式的,最簡單的就是後向尤拉法。它看起來幾乎和普通尤拉法一模一樣,只有一個微小卻決定性的改變:它用「步尾」的斜率,而非步首。這一個轉變就把方法從穩定區域狹小的,變成對整個左半平面都穩定的——能在剛性地形上自信地大步邁進。
精確地說,後向尤拉是 y_(n+1) = y_n + h * f(t_(n+1), y_(n+1))。新值坐在兩邊(它是隱式的),所以每步為 y_(n+1) 解一個代數方程,通常用牛頓法。它和前向尤拉一樣只有一階,但它是 A 穩定的:套用到 y' = lambda y 得 y_(n+1) = y_n / (1 - h*lambda),對每個實部為負的 lambda,無論 h 多大,其絕對值都保持在 1 或以下。後向差分公式(BDF)推廣這個概念:一個 BDF 方法讓多項式穿過新點與幾個過去的「值」(不是斜率),再強制它在新點的導數等於那裡的 f。BDF1 恰是後向尤拉;BDF2 到 BDF6 爬升到更高階,同時保持優異的剛性穩定。
後向尤拉與 BDF 家族是剛性問題的標準工具,也是生產級剛性求解器的核心(建立於其上的著名程式在化學、電子、工程中無處不在)。代價很誠實:隱式步較貴——你每步解一個方程——且二階以上的 BDF 不是 A 穩定,而只是剛性穩定(對真正的剛性仍極優異)。你按步付費卻整體獲勝,因為你能走顯式方法絕無法撐過的巨大步長。
後向尤拉用於 y' = -100 y, y(0) = 1:y_(n+1) = y_n - 100 h y_(n+1),故 y_(n+1) = y_n / (1 + 100 h)。h = 0.1 時得 1, 0.0909, 0.0083, ...——衰減且穩定,正如真值 e^(-100t) 應有的。前向尤拉在同樣的 h 得 1, -9, 81, ...——爆炸的垃圾。
使用步尾的斜率——A 穩定,剛性的解藥。
後向尤拉的穩定性不代表準確——它只有一階,且會強烈阻尼快速暫態,可能把解過度平滑。而二階以上的 BDF 失去 A 穩定性;只有 BDF1 與 BDF2 是 A 穩定的。