高階微分法與一階微分法有一定關連性,故此文需先看過 一階微分法

要了解背景原理必須從差分法開始細說,此處略過不提,直接將結果寫下。

 

一次微分近似式


(A) 向前差近似

雙點 

fi' =  [ f(i+1) - f(i) ] / h ,  

O(h) = -1/2 * h * f''i < fi 二次微分 >

三點 

fi' =  [ -f(i+2) + 4f(i+1) -3 f(i) ] / 2h ,  

O(h) = 1/3 * h*h * f'''i < fi 三次微分 >

四點 

fi' =  [ 2f(i+3) - 9f(i+2) + 18 f(i+1) -11 f(i) ] / 6h , 

O(h) = -1/4 * h*h * h * f''''i < fi 四次微分 >

 

(B) 向後差近似

雙點

fi' =  [ f(i) - f(i-h) ] / h ,  

O(h) = -1/2 * h * f''i  < fi 二次微分 >

三點 

fi' =  [ 3f(i) - 4f(i-1) + f(i-2) ] / 2h ,  

O(h) = 1/3 * h*h * f'''i < fi 三次微分 >

四點 

fi' =  [ 11f(i) - 18f(i-1) + 9 f(i-2) - 2f(i-3) ] / 6h ,  

O(h) = 1/4 * h*h * h * f''''i  < fi 四次微分 >

 

(C) 中央近似

雙點

fi' = [f(i+1) - f(i-1)] / 2h  , 

O(h) = -1/6 * h *h * f'''i < fi 三次微分 >

三點 

 中央近似沒有三點

四點

f' = [ -f(i+2) + 8 f(i+1) - 8 f(i-1) + f(i-2) ] / 12h , 

O(h) = 1 / 30 * h * h * h * h * f'''''i < fi 五分微分 >


 

二次微分近似式

 

(A) 向前差

 

f''(x) = [ f(x+2h) - 2f(x+h) + f(x) ] / (h^2) 

O(h) = -h * [ f(x) 三次微分 ]

f''(x) = [ -f(x+3h) +4f(x+2h) - 5f(x+h) + 2f(x) ] / (h^2) 

O(h) = 11/12 h^2   * [ f(x) 四次微分 ]

 

(B) 向後差

 

f''(x) = [ f(x) - 2f(x-h) + f(x-2h) ] / (h^2) 

O(h) = h * [ f(x) 三次微分 ]

f''(x) = [ 2f(x) - 5f(x-h) + 4f(x-2h) - 3f(x-3h) ] / (h^2) 

O(h) = 11/12 h^2   * [ f(x) 四次微分 ]


(C) 中央差


f''(x) = [ f(x+h) - 2f(x) + f(x-h) ] / (h^2)

O(h) = -h^2 /12 *  [ f(x) 四次微分 ]

f''(x) = [ f(x+2h) + 16f(x+h) -30f(x) +16f(x-h) -f(x-2h) / 12 h^2

O(h) = h^4 / 90  * [  f(x) 六次微分 ]


其他高階微分


事實上是有一串公式,可參考 wiki Finite difference 網頁 ,拉到 higher-order differences ,規則都在裡面,甚至這篇對於雙變數 f(x,y) 微分 亦有詳細說明。了解原理後,欲撰程式碼已不是難事,此處便不再附上。

 

Reference

 

wiki - Numerical differentation

wiki - Five-point stecil

wiki - Finite difference

wiki - Divided differences


arrow
arrow
    全站熱搜

    edisonx 發表在 痞客邦 留言(0) 人氣()