数值微分的三点中心差分公式及其误差分析
字数 3089 2025-12-14 17:24:42

数值微分的三点中心差分公式及其误差分析

1. 题目描述

本题旨在详细阐述数值微分中三点中心差分公式的推导、具体计算步骤,并深入分析其截断误差的来源与阶数。我们将从一个具体的函数 \(f(x)\) 在点 \(x_0\) 处求一阶导数 \(f'(x_0)\) 的任务出发,讲解如何利用该点及其邻近两点的函数值来构造一个近似计算公式,并量化这个近似所带来的误差。

2. 解题过程

我们的目标是:已知函数 \(f(x)\) 在等距节点 \(x_{-1} = x_0 - h\)\(x_0\)\(x_1 = x_0 + h\) 处的函数值 \(f(x_{-1})\)\(f(x_0)\)\(f(x_1})\)。我们希望用这三个值来近似计算 \(f'(x_0)\)

步骤1:利用泰勒展开建立方程

首先,我们在 \(x_0\) 点对 \(f(x_0 + h)\)\(f(x_0 - h)\) 分别进行泰勒展开:

\[f(x_0 + h) = f(x_0) + h f'(x_0) + \frac{h^2}{2!} f''(x_0) + \frac{h^3}{3!} f'''(x_0) + \frac{h^4}{4!} f^{(4)}(x_0) + O(h^5) \]

\[f(x_0 - h) = f(x_0) - h f'(x_0) + \frac{h^2}{2!} f''(x_0) - \frac{h^3}{3!} f'''(x_0) + \frac{h^4}{4!} f^{(4)}(x_0) + O(h^5) \]

注意展开到 \(h^4\) 项,因为我们要推导出误差的主要项。

步骤2:构造三点中心差分公式

观察上面两个展开式,我们发现 \(f(x_0)\) 项和 \(f''(x_0)\) 项是相同的,而 \(f'(x_0)\) 项和 \(f'''(x_0)\) 项符号相反。为了消去我们不关心的 \(f'''(x_0)\) 项(它是 \(h^3\) 阶的),并解出 \(f'(x_0)\),我们用第二个式子减去第一个式子:

\[f(x_0 + h) - f(x_0 - h) = [f(x_0) - f(x_0)] + h[f'(x_0) - (-f'(x_0))] + \frac{h^2}{2!}[f''(x_0) - f''(x_0)] + \frac{h^3}{3!}[f'''(x_0) - (-f'''(x_0))] + \frac{h^4}{4!}[f^{(4)}(x_0) - f^{(4)}(x_0)] + O(h^5) \]

化简后得到:

\[f(x_0 + h) - f(x_0 - h) = 2h f'(x_0) + \frac{h^3}{3} f'''(x_0) + O(h^5) \]

现在,将包含 \(f'(x_0)\) 的项移到左边:

\[2h f'(x_0) = f(x_0 + h) - f(x_0 - h) - \frac{h^3}{3} f'''(x_0) + O(h^5) \]

最后,两边同除以 \(2h\)

\[f'(x_0) = \frac{f(x_0 + h) - f(x_0 - h)}{2h} - \frac{h^2}{6} f'''(x_0) + O(h^4) \]

步骤3:得到最终公式与截断误差

忽略掉高阶无穷小项,我们得到三点中心差分公式

\[f'(x_0) \approx \frac{f(x_0 + h) - f(x_0 - h)}{2h} \]

这个近似公式的截断误差局部截断误差 \(R(h)\) 由被我们忽略的项决定。从上一步的推导可知:

\[R(h) = f'(x_0) - \frac{f(x_0 + h) - f(x_0 - h)}{2h} = -\frac{h^2}{6} f'''(x_0) + O(h^4) \]

我们通常用误差的主项(即最低阶的非零项)来刻画误差的阶。因此,三点中心差分公式的截断误差为:

\[R(h) = -\frac{h^2}{6} f'''(x_0) + O(h^4) = O(h^2) \]

这表示当步长 \(h\) 减半时,近似误差大约会缩小到原来的 \(1/4\),所以我们说这个公式具有二阶精度。相比于一阶精度的向前差分 \((f(x_0+h)-f(x_0))/h\) 或向后差分公式,中心差分公式在同等计算量下精度更高,因为它对称地利用了 \(x_0\) 两侧的信息,从而抵消了更多低阶误差项。

步骤4:误差分析与实际应用要点

  1. 误差来源:误差 \(R(h)\) 称为截断误差,它源于用有限项的差分来近似代替导数定义中的极限。公式表明,误差大小与 \(h^2\) 成正比,同时也与函数在 \(x_0\) 处的三阶导数 \(f'''(x_0)\) 有关。函数在该点变化越剧烈,三阶导数越大,误差也可能越大。
  2. 舍入误差的影响:在实际计算中,函数值 \(f(x_0 \pm h)\) 是存储在计算机中的浮点数,存在舍入误差。假设函数值的相对误差界为机器精度 \(\epsilon\),则 \(f(x_0 \pm h)\) 的绝对误差约为 \(|f(x_0 \pm h)| \epsilon \approx M\epsilon\),其中 \(M\) 是函数值的量级。那么差分 \(f(x_0+h)-f(x_0-h)\) 的绝对误差约为 \(2M\epsilon\),再除以 \(2h\) 后,舍入误差对最终导数近似值的影响约为 \(M\epsilon / h\)
  3. 总误差与最优步长:总误差是截断误差和舍入误差之和的绝对值上界的一个估计:

\[ E_{total} \approx \left| \frac{h^2}{6} f'''(x_0) \right| + \frac{M\epsilon}{h} \]

可以看出,**截断误差随 $ h $ 减小而减小,但舍入误差随 $ h $ 减小而增大**。为了最小化总误差,可以对 $ h $ 求导并令其为零,找到一个**理论最优步长** $ h_{opt} \propto \epsilon^{1/3} $。在双精度计算中($ \epsilon \approx 10^{-16} $),$ h_{opt} $ 通常在 $ 10^{-5} $ 到 $ 10^{-6} $ 量级。实际应用中,可以尝试几个不同数量级的 $ h $ 来观察结果的稳定性。

3. 总结

三点中心差分公式 \(f'(x_0) \approx \frac{f(x_0 + h) - f(x_0 - h)}{2h}\) 是一个简单而高效的数值微分方法,它具有二阶精度 \(O(h^2)\)。在使用时,需要权衡截断误差与舍入误差,选择一个合适的步长 \(h\) 以得到最精确的近似结果。这个公式是构造更高阶精度数值微分公式(如五点公式)的基础,也是理解数值微分误差特性的经典案例。

数值微分的三点中心差分公式及其误差分析 1. 题目描述 本题旨在详细阐述数值微分中 三点中心差分公式 的推导、具体计算步骤,并深入分析其 截断误差 的来源与阶数。我们将从一个具体的函数 \( f(x) \) 在点 \( x_ 0 \) 处求一阶导数 \( f'(x_ 0) \) 的任务出发,讲解如何利用该点及其邻近两点的函数值来构造一个近似计算公式,并量化这个近似所带来的误差。 2. 解题过程 我们的目标是:已知函数 \( f(x) \) 在等距节点 \( x_ {-1} = x_ 0 - h \), \( x_ 0 \), \( x_ 1 = x_ 0 + h \) 处的函数值 \( f(x_ {-1}) \), \( f(x_ 0) \), \( f(x_ 1}) \)。我们希望用这三个值来近似计算 \( f'(x_ 0) \)。 步骤1:利用泰勒展开建立方程 首先,我们在 \( x_ 0 \) 点对 \( f(x_ 0 + h) \) 和 \( f(x_ 0 - h) \) 分别进行泰勒展开: \[ f(x_ 0 + h) = f(x_ 0) + h f'(x_ 0) + \frac{h^2}{2!} f''(x_ 0) + \frac{h^3}{3!} f'''(x_ 0) + \frac{h^4}{4!} f^{(4)}(x_ 0) + O(h^5) \] \[ f(x_ 0 - h) = f(x_ 0) - h f'(x_ 0) + \frac{h^2}{2!} f''(x_ 0) - \frac{h^3}{3!} f'''(x_ 0) + \frac{h^4}{4!} f^{(4)}(x_ 0) + O(h^5) \] 注意展开到 \( h^4 \) 项,因为我们要推导出误差的主要项。 步骤2:构造三点中心差分公式 观察上面两个展开式,我们发现 \( f(x_ 0) \) 项和 \( f''(x_ 0) \) 项是相同的,而 \( f'(x_ 0) \) 项和 \( f'''(x_ 0) \) 项符号相反。为了消去我们不关心的 \( f'''(x_ 0) \) 项(它是 \( h^3 \) 阶的),并解出 \( f'(x_ 0) \),我们用第二个式子减去第一个式子: \[ f(x_ 0 + h) - f(x_ 0 - h) = [ f(x_ 0) - f(x_ 0)] + h[ f'(x_ 0) - (-f'(x_ 0))] + \frac{h^2}{2!}[ f''(x_ 0) - f''(x_ 0)] + \frac{h^3}{3!}[ f'''(x_ 0) - (-f'''(x_ 0))] + \frac{h^4}{4!}[ f^{(4)}(x_ 0) - f^{(4)}(x_ 0) ] + O(h^5) \] 化简后得到: \[ f(x_ 0 + h) - f(x_ 0 - h) = 2h f'(x_ 0) + \frac{h^3}{3} f'''(x_ 0) + O(h^5) \] 现在,将包含 \( f'(x_ 0) \) 的项移到左边: \[ 2h f'(x_ 0) = f(x_ 0 + h) - f(x_ 0 - h) - \frac{h^3}{3} f'''(x_ 0) + O(h^5) \] 最后,两边同除以 \( 2h \): \[ f'(x_ 0) = \frac{f(x_ 0 + h) - f(x_ 0 - h)}{2h} - \frac{h^2}{6} f'''(x_ 0) + O(h^4) \] 步骤3:得到最终公式与截断误差 忽略掉高阶无穷小项,我们得到 三点中心差分公式 : \[ f'(x_ 0) \approx \frac{f(x_ 0 + h) - f(x_ 0 - h)}{2h} \] 这个近似公式的 截断误差 或 局部截断误差 \( R(h) \) 由被我们忽略的项决定。从上一步的推导可知: \[ R(h) = f'(x_ 0) - \frac{f(x_ 0 + h) - f(x_ 0 - h)}{2h} = -\frac{h^2}{6} f'''(x_ 0) + O(h^4) \] 我们通常用误差的主项(即最低阶的非零项)来刻画误差的阶。因此,三点中心差分公式的截断误差为: \[ R(h) = -\frac{h^2}{6} f'''(x_ 0) + O(h^4) = O(h^2) \] 这表示当步长 \( h \) 减半时,近似误差大约会缩小到原来的 \( 1/4 \),所以我们说这个公式具有 二阶精度 。相比于一阶精度的向前差分 \( (f(x_ 0+h)-f(x_ 0))/h \) 或向后差分公式,中心差分公式在同等计算量下精度更高,因为它对称地利用了 \( x_ 0 \) 两侧的信息,从而抵消了更多低阶误差项。 步骤4:误差分析与实际应用要点 误差来源 :误差 \( R(h) \) 称为 截断误差 ,它源于用有限项的差分来近似代替导数定义中的极限。公式表明,误差大小与 \( h^2 \) 成正比,同时也与函数在 \( x_ 0 \) 处的三阶导数 \( f'''(x_ 0) \) 有关。函数在该点变化越剧烈,三阶导数越大,误差也可能越大。 舍入误差的影响 :在实际计算中,函数值 \( f(x_ 0 \pm h) \) 是存储在计算机中的浮点数,存在 舍入误差 。假设函数值的相对误差界为机器精度 \( \epsilon \),则 \( f(x_ 0 \pm h) \) 的绝对误差约为 \( |f(x_ 0 \pm h)| \epsilon \approx M\epsilon \),其中 \( M \) 是函数值的量级。那么差分 \( f(x_ 0+h)-f(x_ 0-h) \) 的绝对误差约为 \( 2M\epsilon \),再除以 \( 2h \) 后,舍入误差对最终导数近似值的影响约为 \( M\epsilon / h \)。 总误差与最优步长 :总误差是截断误差和舍入误差之和的绝对值上界的一个估计: \[ E_ {total} \approx \left| \frac{h^2}{6} f'''(x_ 0) \right| + \frac{M\epsilon}{h} \] 可以看出, 截断误差随 \( h \) 减小而减小,但舍入误差随 \( h \) 减小而增大 。为了最小化总误差,可以对 \( h \) 求导并令其为零,找到一个 理论最优步长 \( h_ {opt} \propto \epsilon^{1/3} \)。在双精度计算中(\( \epsilon \approx 10^{-16} \)),\( h_ {opt} \) 通常在 \( 10^{-5} \) 到 \( 10^{-6} \) 量级。实际应用中,可以尝试几个不同数量级的 \( h \) 来观察结果的稳定性。 3. 总结 三点中心差分公式 \( f'(x_ 0) \approx \frac{f(x_ 0 + h) - f(x_ 0 - h)}{2h} \) 是一个简单而高效的数值微分方法,它具有二阶精度 \( O(h^2) \)。在使用时,需要权衡截断误差与舍入误差,选择一个合适的步长 \( h \) 以得到最精确的近似结果。这个公式是构造更高阶精度数值微分公式(如五点公式)的基础,也是理解数值微分误差特性的经典案例。