对一阶导数 f′(x) 的数值逼近是有限差分方法的核心。本文从 Taylor 展开出发,分析三种基本差分格式的截断误差,并通过数值实验直观展示不同格式的收敛速度差异。
差分格式的定义
令 h>0 为步长,在点 x 处定义:
向前差分:D+f(x)向后差分:D−f(x)中心差分:D0f(x)=hf(x+h)−f(x)=hf(x)−f(x−h)=2hf(x+h)−f(x−h)
截断误差分析
向前差分
将 f(x+h) 在 x 处作 Taylor 展开:
f(x+h)=f(x)+hf′(x)+2h2f′′(x)+6h3f′′′(ξ+)
代入向前差分的定义:
hf(x+h)−f(x)=f′(x)+2hf′′(x)+O(h2)
因此,向前差分的截断误差为:
τ+=∣D+f(x)−f′(x)∣=2h∣f′′(x)∣+O(h2)=O(h)
该格式具有 一阶精度。
向后差分
类似地,将 f(x−h) 展开:
f(x−h)=f(x)−hf′(x)+2h2f′′(x)−6h3f′′′(ξ−)
得到:
τ−=∣D−f(x)−f′(x)∣=2h∣f′′(x)∣+O(h2)=O(h)
向后差分同样具有 一阶精度。
中心差分
将 f(x+h) 与 f(x−h) 的展开式相减:
f(x+h)−f(x−h)=2hf′(x)+62h3f′′′(x)+O(h5)
整理得:
τ0=∣D0f(x)−f′(x)∣=6h2∣f′′′(x)∣+O(h4)=O(h2)
中心差分格式具有 二阶精度,收敛速度远快于单侧差分。
收敛阶的数值验证
对于具有足够光滑性的函数 f,当步长 h→0 时,误差与 h 满足幂律关系:
log(error)≈C+p⋅log(h)
其中 p 即为收敛阶。在双对数坐标系下,误差曲线的斜率即为 p。
实验提示: 在下方实验区选择测试函数,观察不同差分格式在双对数图(logh vs log error)中的表现。向前/向后差分的斜率约为 1,中心差分的斜率约为 2。