數學計算機科學中,歐拉方法(英語:Euler method[註 1]),是一種一階數值方法,用以對給定初值的常微分方程[註 2]求解。

歐拉方法是常微分方程數值方法中最基本的顯式方法;是一階的方法,意味着其局部截斷誤差[註 3]正比於步長的平方,並且其全局截斷誤差正比於步長。[註 4]

非正式的幾何描述

編輯
 
歐拉方法的圖示。待求的曲線為藍色,它的折線近似為紅色。

考慮計算這樣的一個未知曲線的形狀:它具有給定的起點並且滿足一個給定的微分方程。 這裏,所謂「微分方程」可以看作能夠通過曲線上任意點的位置而計算出這一點的切線斜率的公式。

思路是,一開始只知道曲線的起點(假設為 ),曲線其他部份是未知的,不過通過微分方程, 的斜率可以被計算出來,也就得到了切線。

順着切線向前走一小步到點 。如果假設 是曲線上的一點(實際上通常不是),那麼同樣的道理就可以確定下一條切線,依此類推。在經過幾步之後,一條折線 就被計算出來了。一般情況下,這條折線與原先的未知曲線偏離不遠,並且任意小的誤差都可以通過減少步長來得到。

歐拉方法的推導

編輯
 
圖示為方程 的數值積分。藍色為歐拉法,綠色為中點法,紅色為精確解 。所用步長為 
 
圖示為同一個方程在步長 時的結果。可以看出中點法比歐拉法收斂更快。

以以下微分方程為例

 

希望用 y 在點 (t0,y(t0)) 附近的線性近似來得到其近似解(也就是 y泰勒展開式的前二項)。利用時間 tn 時的數值,若用單步的歐拉方法,可得到時間 tn+1 = tn + h 時的近似值如下:

 

歐拉方法是一種顯型方法,也就是說   的解是  ,   的顯函數。

歐拉方法可以求解一階的微分方程,而任何 階的微分方程都可以表示成一階的微分方程。

對於微分方程

 

可以通過新設輔助變量  ,得到以下的等價方程

 

這是一個以 為變量的一階系統,因此可以用歐拉法求解,也可以使用其他的一階數值方法。[1]

應用例題

編輯

設微分方程為   ,初始值為  ,試用歐拉方法求  的近似值,步長為  

歐拉法為:

 

首先求 (當 ), 的定義為 ,因此有

 

透過以上步驟,求得解曲線在點 的切線斜率。回顧直線斜率的定義: 變化量和 變化量的比值,亦記作 

接着是

 
 

重複以上步驟求出  的值。

 
 

由於歐拉法屬於遞歸算法,把運算整理成表格也許有助於避免計算錯誤。

           
1 0 1 1 1 2
2 1 2 1 2 4
4 2 4 1 4 8

局部截尾誤差

編輯

歐拉法的局部截尾誤差(Local truncation error, LTE)是指在實施一次歐拉法所產生的誤差,是指經過一步的數值解 與在 時精確解的誤差。數值解 由以下給出:

 

對於精確解,使用泰勒級數展開給出:

 

歐拉法的局部截尾誤差為:

 

 擁有三階有界導數時,這個結果是成立的。[2]

結果顯示:當步長 很小時,局部截尾誤差近似與   成比例。也就是說,歐拉法精確度不如其他的高階方法(如龍格-庫塔法線性多步法英語Linear multistep method),這些方法的局部截尾誤差與 p>2)成比例。

全局截尾誤差

編輯

全局截尾誤差(Global truncation error, GTE)是指在一個固定時間 時的誤差,但是很多步之後該方法需要以從初始時間到達該時間來計算。全局截尾誤差可以看做是一個每一步的局部截尾誤差的累積效應。[3] 經過的步驟數為 ,而每步的誤差則正比於 。因此,可以預期全局截尾誤差是正比於 的。[4]

這個直觀的推測可以被嚴謹地證明。如果解 存在二階有界導數,並且 關於 利普希茨連續的,那麼全局截尾誤差是有界的:

 

其中   是在給定區間內 的二階導數的上界,  的利普希茨常數。[5]

這種精確的形式其實是沒有什麼意義的,通常情況下這個上界都會嚴重高估了歐拉法所造成的實際誤差。[6]重要的是,這顯示了全局截尾誤差是近似正比於 的,所以歐拉法被稱為是一階的。[7]

相關條目

編輯

註腳

編輯
  1. ^ 命名自它的發明者萊昂哈德·歐拉
  2. ^ 初值問題
  3. ^ 即每步誤差
  4. ^ 歐拉方法經常應用於作為構建一些更複雜方法的基礎,例如預估-校正方法

參考資料

編輯
  1. ^ Butcher 2003,第3頁;Hairer, Nørsett & Wanner 1993,第2頁
  2. ^ Butcher 2003,第60頁
  3. ^ Atkinson 1989,第344頁
  4. ^ Butcher 2003,第49頁
  5. ^ Atkinson 1989,第346頁;Lakoba 2012,公式 (1.16)
  6. ^ Iserles 1996,第7頁
  7. ^ Butcher 2003,第63頁

參考文獻

編輯