計算與實驗物理

尤拉法(Euler method)

/ OY-ler /

想像你站在濃霧籠罩的山坡上,手上只有一個能告訴你「腳下這一點地面傾斜方向」的羅盤。你看不見整條路徑,但可以朝地面此刻傾斜的方向踏出一小步,再看一次,再踏一步。尤拉法解微分方程正是如此:當你知道目前狀態下的變化率,就朝那個方向踏一小步,然後重複。它回答一個非常實際的問題——當沒有紙筆解時,如何讓運動方程隨時間往前推進。

對於一階方程 dx/dt = f(x, t),配上初始值 x(t_0) = x_0,選一個小時間步 h,用 x(t + h) = x(t) + h f(x(t), t) 前進,然後反覆令 t -> t + h。這其實只是泰勒展開 x(t+h) = x(t) + h x'(t) + (h^2/2) x''(t) + ... 的前兩項,把線性項之後全部丟棄。捨去 h^2 項使得單步(局部)誤差為 h^2 階;而要跨越一段固定區間需約 1/h 步、誤差會累積,因此整體(全域)誤差為 h 階。所以尤拉法是一階方法:把 h 減半,總誤差也只減半。

你最先遇到尤拉法,因為它是最簡單的積分器,也是所有更精巧方法的概念種子。但它很少足以應付真正的工作:它只有一階精度,若 h 太大會數值不穩定,而且對於振盪系統或哈密頓系統它不守恆能量——軌道會一步步虛假地向外盤旋。實務上它是教學基準;正式程式碼會用更高階的龍格-庫塔法,或對守恆系統改用像韋爾萊法這類辛積分器。

用顯式尤拉法配上有限步長 h 去積分一個簡諧振子(彈簧上的質量),算出的總能量每個週期都會略微增加,於是畫出的軌跡會向外盤旋,而非在相空間中描出一個閉合橢圓。

經典的失敗模式:顯式尤拉法會為振子注入虛假的能量。

顯式尤拉法只有一階精度,把步長減半也只把全域誤差減半,而非減為四分之一;又因為它不是辛的、不守恆能量,所以它是教學工具而非正式的積分器。

又称
forward Euler methodexplicit Euler method顯式尤拉法歐拉法