有限差分法的推导基于Taylor级数展开,这是一种将函数表示为其导数在某一点的无限和的方法。通过考虑函数在某点附近的Taylor级数展开,并结合不同点的展开式,我们可以导出有限差分近似导数的公式。
Taylor级数展开
给定一个在点
x
x
x可导的函数
f
(
x
)
f(x)
f(x),其在
x
0
x_0
x0附近的Taylor级数展开是:
f
(
x
)
=
f
(
x
0
)
+
f
′
(
x
0
)
(
x
−
x
0
)
+
f
′
′
(
x
0
)
2
!
(
x
−
x
0
)
2
+
f
′
′
′
(
x
0
)
3
!
(
x
−
x
0
)
3
+
⋯
f(x) = f(x_0) + f'(x_0)(x - x_0) + \frac{f''(x_0)}{2!}(x - x_0)^2 + \frac{f'''(x_0)}{3!}(x - x_0)^3 + \cdots
f(x)=f(x0)+f′(x0)(x−x0)+2!f′′(x0)(x−x0)2+3!f′′′(x0)(x−x0)3+⋯
一阶导数的有限差分推导
假设我们要找到函数 f ( x ) f(x) f(x)在点 x x x处的一阶导数 f ′ ( x ) f'(x) f′(x)的近似值。
前向差分:考虑
x
0
=
x
x_0 = x
x0=x和
x
=
x
+
h
x = x + h
x=x+h的情况,根据Taylor级数,有:
f
(
x
+
h
)
=
f
(
x
)
+
f
′
(
x
)
h
+
f
′
′
(
x
)
2
!
h
2
+
O
(
h
3
)
f(x + h) = f(x) + f'(x)h + \frac{f''(x)}{2!}h^2 + O(h^3)
f(x+h)=f(x)+f′(x)h+2!f′′(x)h2+O(h3)
解这个方程,求得
f
′
(
x
)
f'(x)
f′(x)的近似为:
f
′
(
x
)
≈
f
(
x
+
h
)
−
f
(
x
)
h
f'(x) \approx \frac{f(x+h) - f(x)}{h}
f′(x)≈hf(x+h)−f(x)
后向差分:考虑
x
0
=
x
x_0 = x
x0=x和
x
=
x
−
h
x = x - h
x=x−h的情况,我们可以得到:
f
(
x
−
h
)
=
f
(
x
)
−
f
′
(
x
)
h
+
f
′
′
(
x
)
2
!
h
2
−
O
(
h
3
)
f(x - h) = f(x) - f'(x)h + \frac{f''(x)}{2!}h^2 - O(h^3)
f(x−h)=f(x)−f′(x)h+2!f′′(x)h2−O(h3)
由此,
f
′
(
x
)
f'(x)
f′(x)的近似为:
f
′
(
x
)
≈
f
(
x
)
−
f
(
x
−
h
)
h
f'(x) \approx \frac{f(x) - f(x-h)}{h}
f′(x)≈hf(x)−f(x−h)
中心差分:结合前向差分和后向差分,我们得到:
f
(
x
+
h
)
=
f
(
x
)
+
f
′
(
x
)
h
+
f
′
′
(
x
)
2
h
2
+
O
(
h
3
)
f(x + h) = f(x) + f'(x)h + \frac{f''(x)}{2}h^2 + O(h^3)
f(x+h)=f(x)+f′(x)h+2f′′(x)h2+O(h3)
f
(
x
−
h
)
=
f
(
x
)
−
f
′
(
x
)
h
+
f
′
′
(
x
)
2
h
2
−
O
(
h
3
)
f(x - h) = f(x) - f'(x)h + \frac{f''(x)}{2}h^2 - O(h^3)
f(x−h)=f(x)−f′(x)h+2f′′(x)h2−O(h3)
相减得:
f
(
x
+
h
)
−
f
(
x
−
h
)
=
2
f
′
(
x
)
h
+
O
(
h
3
)
f(x + h) - f(x - h) = 2f'(x)h + O(h^3)
f(x+h)−f(x−h)=2f′(x)h+O(h3)
从而得到
f
′
(
x
)
f'(x)
f′(x)的中心差分近似:
f
′
(
x
)
≈
f
(
x
+
h
)
−
f
(
x
−
h
)
2
h
f'(x) \approx \frac{f(x+h) - f(x-h)}{2h}
f′(x)≈2hf(x+h)−f(x−h)
高阶导数的有限差分推导
对于二阶导数
f
′
′
(
x
)
f''(x)
f′′(x),我们可以使用
x
+
h
x + h
x+h和
x
−
h
x - h
x−h处的Taylor级数展开:
f
(
x
+
h
)
=
f
(
x
)
+
f
′
(
x
)
h
+
f
′
′
(
x
)
2
h
2
+
O
(
h
3
)
f(x + h) = f(x) + f'(x)h + \frac{f''(x)}{2}h^2 + O(h^3)
f(x+h)=f(x)+f′(x)h+2f′′(x)h2+O(h3)
f
(
x
−
h
)
=
f
(
x
)
−
f
′
(
x
)
h
+
f
′
′
(
x
)
2
h
2
+
O
(
h
3
)
f(x - h) = f(x) - f'(x)h + \frac{f''(x)}{2}h^2 + O(h^3)
f(x−h)=f(x)−f′(x)h+2f′′(x)h2+O(h3)
相加消去
f
′
(
x
)
h
f'(x)h
f′(x)h项,并解出
f
′
′
(
x
)
f''(x)
f′′(x),得到:
f
′
′
(
x
)
≈
f
(
x
+
h
)
−
2
f
(
x
)
+
f
(
x
−
h
)
h
2
f''(x) \approx \frac{f(x+h) - 2f(x) + f(x-h)}{h^2}
f′′(x)≈h2f(x+h)−2f(x)+f(x−h)
通过类似的方法,我们可以推导出更高阶导数的有限差分公式。这些公式的精度依赖于步长 h h h和高阶项的忽略。在实际应用中,选择适当的步长是关键,以平衡计算误差和数值稳定性。