常微分方程的數值方法

後向歐拉法(backward Euler method)

/ OY-ler /

前向歐拉法問「此處的斜率指向何方?」然後朝那走。後向歐拉法更精明:它問「我該落在哪裡,使得『終點處的斜率』正好沿著我剛走過的路徑指回來?」它不信任起點的斜率,而堅持這一步要與終點的斜率一致。這個小轉折讓每步代價更高,卻換來驚人的穩定性。

規則是 y_{n+1} = y_n + h * f(t_{n+1}, y_{n+1})。注意未知數 y_{n+1} 出現在「兩邊」——在右邊它埋在新時刻的 f 裡。所以你不能只是代入計算;你必須「解出」y_{n+1},這使方法成為「隱式」。若 f 對 y 是線性的,這個方程只是簡單移項;若 f 是非線性的,每步就用牛頓法或不動點迭代去解。例如對 y' = -2y,步驟 y_{n+1} = y_n - 2h*y_{n+1} 可整理成 y_{n+1} = y_n / (1 + 2h),是乾淨的閉式。從幾何上看,你在這一步的「終點」畫切線,並要求這一步落在它上面。

為什麼要付出額外求解的代價?為了穩定性。後向歐拉法是 A-穩定的:在測試問題 y' = lambda*y 上,只要是衰減模態(lambda 的實部為負),算出的解對「每一個」步長 h 都衰減,絕不爆掉。這使它成為「剛性」問題的主力,因為在那裡前向歐拉法為了不爆掉得用荒謬地小的步長。誠實的取捨是:它仍只有一階(準確度低,和前向歐拉法一樣),每步要解一個非線性方程,而且它其實「過度阻尼」——可能抹掉本該尖銳的特徵,並扼殺本該持續的振盪。選它是為了穩健,而非精準。

在剛性衰減 y' = -100y、y(0) = 1 上,前向歐拉法需要 h < 0.02 否則爆掉。後向歐拉法即使用很大的 h = 1 也表現良好:y_1 = 1 / (1 + 100*1) = 1/101 = 0.0099,一個合理的小正數,大致追隨真值(小到趨近於零)e^(-100) = 4e-44——細節錯了,但穩定有界,絕不爆掉。

隱式:用終點的斜率解出新值——即使步長很大也穩定。

A-穩定不等於準確:後向歐拉法用大步長時可能回傳一個穩定卻相當錯的答案。它強烈的阻尼對剛性衰減是優點,對你想保留真實振盪的問題卻是缺陷——那時辛積分子或更高階的隱式方法更好。

又稱
implicit Euler method隱式歐拉法向後歐拉法