前向歐拉法(forward Euler method)
/ OY-ler /
假設你站在霧中的山坡上,手上有一個指向正下坡的羅盤和一把捲尺。你看不見山谷,但能讀出腳下此處的斜率。最簡單的計畫是:朝斜率所指的方向,邁出一個固定的步伐,到了新位置再讀一次斜率,然後重複。前向歐拉法正是把這個天真的計畫套用到微分方程上——盲目沿著當下斜率走一步,再重新測量。
規則是 y_{n+1} = y_n + h * f(t_n, y_n)。用白話說:從當下的點 (t_n, y_n) 出發,在那裡算出斜率 f,畫一條以此為斜率的直切線,沿著它水平前進距離 h,落到下一個點。由於新值 y_{n+1} 只出現在左邊,右邊全是已知量,所以這一步是「顯式」的——單次直接計算,不必解任何方程。從幾何上看,你是用一連串短直切線段去逼近真正彎曲的解,就像多邊形逼近平滑弧線一樣。它是導數定義的離散版本:(y(t+h) - y(t))/h 約等於 f(t, y)。
前向歐拉法是 ODE 求解器的「Hello, World」:極其簡單、便宜(每步只算一次斜率),是所有更花俏方法的根基。但它只有「一階」——全域誤差僅以 h 縮小,所以步長減半只讓誤差減半,相當慢;要多得三個正確位數,得用上千倍的步數。更糟的是它只有條件穩定:在剛性或振盪問題上,一個看起來老實的步長就可能讓數值解爆掉,而真解卻在衰減。實務上它是教學工具與構件,鮮少是你最終出貨的方法。
對 y' = -2y、y(0) = 1,取 h = 0.25:y_1 = 1 + 0.25*(-2*1) = 0.5、y_2 = 0.5 + 0.25*(-2*0.5) = 0.25、y_3 = 0.125。t = 0.75 處的真值是 e^(-1.5) = 0.223,所以歐拉法的 0.125 明顯偏低,因為每條直切線都偏離了曲線的彎折。改用 h = 0.6 看看:y_1 = 1 - 1.2 = -0.2、y_2 = -0.2 + 0.24 = +0.04——它正負振盪,這是不穩定的初兆。
沿切線走一步,再重新測量;在衰減問題上步長太大,便引來不穩定。
別把顯式(前向)歐拉法和隱式(後向)歐拉法搞混:它們同名同階,穩定性卻天差地遠。前向歐拉法在剛性問題上除非 h 極小否則會爆掉;後向歐拉法則對任何 h 都保持穩定。