- 優化理論與實用算法
- (美)米凱爾·J.科申德弗等
- 424字
- 2023-01-06 17:30:01
2.3.1 有限差分法
顧名思義,有限差分法計算兩個相差有限步長的值之間的差。它利用小差分近似方程(2.4)中的導數定義:

在數學上,步長h越小,導數估計就越準確。實際上,h值太小會導致數值誤差相消。這種效果將在圖2.4中展示。算法2.1提供了這些方法的實現。
算法2.1 有限差分h估計函數f在x處的導數的有限差分方法
默認步長是浮點值的機器精度的平方根或立方根。這些步長平衡了機器舍入誤差和步長誤差。
eps函數提供了1.0和下一個較大的浮點值之間的步長。

有限差分法可以由泰勒展開式導出。我們利用f關于x的泰勒展開式,得到前向差分導數估計:

整理并求解一階導數:

前向差分近似于小h的真正導數,其誤差取決于。誤差項是O(h),意味著當h接近零時,前向差分是線性誤差[1]。
中心差分法的誤差項為O(h2)[2]。我們可以用泰勒展開式導出這個誤差項。f(x+h/2)和f(x-h/2)關于x的泰勒展開式為:

它們相減得到:

重新整理可以得到:

這表明近似值有二次誤差。
[1] 附錄C討論了漸近表示法。
[2] J. H. Mathews and K. D. Fink,Numerical Methods Using MATLAB,4th ed.Pearson,2004.