数值微分的五点中心差分公式:高精度构造及其截断误差分析
字数 6851 2025-12-16 08:11:23

数值微分的五点中心差分公式:高精度构造及其截断误差分析

数值微分是计算函数导数近似值的重要方法。当函数没有解析导数表达式,或导数难以直接计算时,数值微分提供了一种基于离散函数值的实用工具。在众多数值微分公式中,五点中心差分公式因其较高的精度和对称性而被广泛使用。今天,我将为你详细讲解五点中心差分公式的推导、构造过程以及其截断误差的精确分析。

问题描述

给定一个足够光滑的函数 \(f(x)\),我们希望计算它在某一点 \(x_0\) 的一阶导数 \(f'(x_0)\) 的近似值。我们能够获取的信息是函数在一些离散点上的值,这些点通常以等间距分布,步长为 \(h\)。具体地,已知 \(f(x_0 - 2h), f(x_0 - h), f(x_0), f(x_0 + h), f(x_0 + 2h)\) 这五个点的函数值。我们的目标是:仅利用这五个点的函数值,构造一个高精度的数值微分公式来近似 \(f'(x_0)\),并分析该公式的截断误差(即理论误差)

解题过程

步骤1:核心思想与泰勒展开

数值微分的基本思想是利用函数在某点附近的泰勒展开式,将导数与函数值的线性组合联系起来。对于五点中心差分公式,我们利用点 \(x_0\) 及其左右对称的四个点进行展开,以获得更高的精度。

我们定义:

  • \(x_0\) 为求导点。
  • 步长 \(h > 0\)
  • 已知点:\(x_{-2} = x_0 - 2h\), \(x_{-1} = x_0 - h\), \(x_0\), \(x_1 = x_0 + h\), \(x_2 = x_0 + 2h\)

假设 \(f(x)\) 在包含这些点的区间内无限次可微(至少五阶连续可导),我们在 \(x_0\) 处进行泰勒展开:

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

其中,\(O(h^6)\) 表示六次及更高次幂的项。

步骤2:构造线性组合以消去无关项

我们的目标是找到一个形如:

\[f'(x_0) \approx \frac{A f(x_0 - 2h) + B f(x_0 - h) + C f(x_0) + D f(x_0 + h) + E f(x_0 + 2h)}{h} \]

的公式,其中 \(A, B, C, D, E\) 是待定系数。

为了确定这些系数,我们将四个泰勒展开式代入上述近似公式的右边,然后与左边的 \(f'(x_0)\) 进行比较,并要求两边的对应项系数匹配。具体来说:

\(f(x_0 \pm h)\)\(f(x_0 \pm 2h)\) 的泰勒展开代入右边,并按 \(f(x_0), f'(x_0), f''(x_0), \dots\) 的幂次整理。右边表达式为:

\[\frac{1}{h} \left[ A f(x_0 - 2h) + B f(x_0 - h) + C f(x_0) + D f(x_0 + h) + E f(x_0 + 2h) \right] \]

我们要求这个表达式在 \(h \to 0\) 时精确等于 \(f'(x_0)\)。为了使公式精确,我们希望:

  1. \(f(x_0)\) 的系数之和为零。
  2. \(f'(x_0)\) 的系数之和为 \(h\)(因为右边除以了 \(h\),所以其系数和应为 \(h\) 才能与左边的 \(f'(x_0)\) 匹配)。
  3. 尽可能多地消去高阶项(如 \(f''(x_0), f^{(3)}(x_0)\) 等),以提高精度。

将泰勒展开式代入并整理后,得到各阶导数的系数方程:

  1. 常数项\(f(x_0)\) 的系数):

\[ A + B + C + D + E = 0 \]

  1. 一阶导项\(f'(x_0)\) 的系数):

\[ (-2A - B + D + 2E) h = h \quad \Rightarrow \quad -2A - B + D + 2E = 1 \]

(注意:等式右边是 \(f'(x_0)\),其系数为1,但我们的表达式整体除以 \(h\),所以这里 \(f'(x_0)\) 的系数应为 \(h\) 才能经 \(1/h\) 后变成1。)

  1. 二阶导项\(f''(x_0)\) 的系数):

\[ \left( \frac{(2h)^2}{2!} A + \frac{h^2}{2!} B + \frac{h^2}{2!} D + \frac{(2h)^2}{2!} E \right) \frac{1}{h} = \frac{h}{2} (4A + B + D + 4E) \]

我们希望这项为零以提高精度,所以:

\[ 4A + B + D + 4E = 0 \]

  1. 三阶导项\(f^{(3)}(x_0)\) 的系数):

\[ \left( -\frac{(2h)^3}{3!} A - \frac{h^3}{3!} B + \frac{h^3}{3!} D + \frac{(2h)^3}{3!} E \right) \frac{1}{h} = \frac{h^2}{6} (-8A - B + D + 8E) \]

希望为零:

\[ -8A - B + D + 8E = 0 \]

  1. 四阶导项\(f^{(4)}(x_0)\) 的系数):

\[ \left( \frac{(2h)^4}{4!} A + \frac{h^4}{4!} B + \frac{h^4}{4!} D + \frac{(2h)^4}{4!} E \right) \frac{1}{h} = \frac{h^3}{24} (16A + B + D + 16E) \]

希望为零:

\[ 16A + B + D + 16E = 0 \]

我们得到了五个方程,但理论上我们可以保留四阶项来构造一个更高精度的公式。然而,我们只有五个未知数 \(A, B, C, D, E\)。为了获得尽可能高的精度,我们通常要求消去直到四阶导的项(这样截断误差将是 \(O(h^4)\) 量级)。让我们检查方程数:

  • 我们有5个未知数。
  • 我们列出了5个方程:常数项、一阶、二阶、三阶、四阶项为零(实际上常数项、二阶、三阶、四阶设为零,一阶设为1)。

现在解这个线性方程组。

步骤3:求解系数

方程组为:

\[\begin{cases} A + B + C + D + E = 0 \quad &(1)\\ -2A - B + D + 2E = 1 \quad &(2)\\ 4A + B + D + 4E = 0 \quad &(3)\\ -8A - B + D + 8E = 0 \quad &(4)\\ 16A + B + D + 16E = 0 \quad &(5) \end{cases} \]

首先,观察(3)、(4)、(5)方程。它们都是关于 \((A+E)\)\((B+D)\) 的线性组合。实际上,将(3)和(5)相减,可以简化。

由(3): \(4(A+E) + (B+D) = 0\)
由(5): \(16(A+E) + (B+D) = 0\)
将两式相减:\(12(A+E) = 0 \Rightarrow A+E = 0\)
代入(3):\(0 + (B+D) = 0 \Rightarrow B+D = 0\)

所以 \(E = -A\)\(D = -B\)

现在利用(4)检查一致性:将 \(D=-B, E=-A\) 代入(4):

\[-8A - B + (-B) + 8(-A) = -8A - B - B - 8A = -16A - 2B = 0 \Rightarrow 8A + B = 0 \quad (4') \]

利用(2):将 \(D=-B, E=-A\) 代入(2):

\[-2A - B + (-B) + 2(-A) = -2A - B - B - 2A = -4A - 2B = 1 \Rightarrow 2A + B = -\frac{1}{2} \quad (2') \]

现在我们有两个方程:

\[8A + B = 0 \quad \text{和} \quad 2A + B = -\frac{1}{2} \]

相减:\((8A+B) - (2A+B) = 0 - (-\frac{1}{2}) \Rightarrow 6A = \frac{1}{2} \Rightarrow A = \frac{1}{12}\)
代入 \(8A+B=0\)\(8 \times \frac{1}{12} + B = 0 \Rightarrow \frac{2}{3} + B = 0 \Rightarrow B = -\frac{2}{3}\)

于是:

\[A = \frac{1}{12}, \quad B = -\frac{2}{3}, \quad E = -A = -\frac{1}{12}, \quad D = -B = \frac{2}{3} \]

最后利用(1)求 \(C\)

\[A + B + C + D + E = \frac{1}{12} - \frac{2}{3} + C + \frac{2}{3} - \frac{1}{12} = C = 0 \]

因此,所有系数为:

\[A = \frac{1}{12}, \quad B = -\frac{2}{3}, \quad C = 0, \quad D = \frac{2}{3}, \quad E = -\frac{1}{12} \]

步骤4:得到五点中心差分公式

将系数代入近似式:

\[f'(x_0) \approx \frac{ \frac{1}{12} f(x_0 - 2h) - \frac{2}{3} f(x_0 - h) + 0 \cdot f(x_0) + \frac{2}{3} f(x_0 + h) - \frac{1}{12} f(x_0 + 2h) }{h} \]

通常写作更简洁的形式:

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

这个公式就是五点中心差分公式(实际上用了四个点,因为中心点 \(f(x_0)\) 的系数为零)。

步骤5:截断误差分析

为了分析截断误差,我们需要检查被我们忽略的高阶项。回顾泰勒展开,当我们代入系数后,所有直到四阶导的项都被精确消去了。接下来看五阶导项。

计算五阶导项 \(f^{(5)}(x_0)\) 的系数:

  • 来自 \(f(x_0 - 2h)\)\(- \frac{(2h)^5}{5!} \times A = - \frac{32h^5}{120} \times \frac{1}{12} = -\frac{32}{1440} h^5\)
  • 来自 \(f(x_0 - h)\)\(- \frac{h^5}{120} \times B = - \frac{h^5}{120} \times (-\frac{2}{3}) = +\frac{2}{360} h^5\)
  • 来自 \(f(x_0 + h)\)\(+ \frac{h^5}{120} \times D = + \frac{h^5}{120} \times \frac{2}{3} = +\frac{2}{360} h^5\)
  • 来自 \(f(x_0 + 2h)\)\(+ \frac{(2h)^5}{120} \times E = + \frac{32h^5}{120} \times (-\frac{1}{12}) = -\frac{32}{1440} h^5\)

将这些系数相加(并除以 \(h\) 因为公式右边有 \(1/h\)):

\[\frac{1}{h} \times h^5 \left( -\frac{32}{1440} + \frac{2}{360} + \frac{2}{360} - \frac{32}{1440} \right) \]

简化:\(\frac{2}{360} = \frac{1}{180} = \frac{8}{1440}\),所以括号内为:

\[\left( -\frac{32}{1440} + \frac{8}{1440} + \frac{8}{1440} - \frac{32}{1440} \right) = -\frac{48}{1440} = -\frac{1}{30} \]

因此五阶导项的总贡献为:

\[\frac{1}{h} \times h^5 \times \left(-\frac{1}{30}\right) = -\frac{h^4}{30} f^{(5)}(x_0) \]

这里我们假设各点的五阶导在 \(x_0\) 处相同(因为步长很小,且函数光滑)。实际上,更严格的误差分析需要利用泰勒余项。但通常我们取主导项作为截断误差的估计。

于是,完整的表达式为:

\[f'(x_0) = \frac{ f(x_0 - 2h) - 8f(x_0 - h) + 8f(x_0 + h) - f(x_0 + 2h) }{12h} - \frac{h^4}{30} f^{(5)}(\xi) \]

其中 \(\xi\) 是位于 \([x_0-2h, x_0+2h]\) 之间的某一点(根据泰勒展开的拉格朗日余项形式)。因此,截断误差为 \(-\frac{h^4}{30} f^{(5)}(\xi)\),这表明五点中心差分公式具有四阶精度(误差与 \(h^4\) 成正比)。

总结

  • 五点中心差分公式(实际使用四个对称点):

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

  • 精度:四阶精度,截断误差为 \(O(h^4)\),具体主项为 \(-\frac{h^4}{30} f^{(5)}(\xi)\)
  • 优点:相比两点或三点公式,精度显著提高,特别适用于对导数精度要求较高的场合。
  • 注意事项:当 \(h\) 过小时,舍入误差可能增大(因函数值相减造成有效数字损失),因此需权衡步长选择。

通过以上循序渐进的推导和分析,你应该对五点中心差分公式的构造原理和误差特性有了清晰的理解。

数值微分的五点中心差分公式:高精度构造及其截断误差分析 数值微分是计算函数导数近似值的重要方法。当函数没有解析导数表达式,或导数难以直接计算时,数值微分提供了一种基于离散函数值的实用工具。在众多数值微分公式中,五点中心差分公式因其较高的精度和对称性而被广泛使用。今天,我将为你详细讲解五点中心差分公式的推导、构造过程以及其截断误差的精确分析。 问题描述 给定一个足够光滑的函数 \( f(x) \),我们希望计算它在某一点 \( x_ 0 \) 的一阶导数 \( f'(x_ 0) \) 的近似值。我们能够获取的信息是函数在一些离散点上的值,这些点通常以等间距分布,步长为 \( h \)。具体地,已知 \( f(x_ 0 - 2h), f(x_ 0 - h), f(x_ 0), f(x_ 0 + h), f(x_ 0 + 2h) \) 这五个点的函数值。我们的目标是: 仅利用这五个点的函数值,构造一个高精度的数值微分公式来近似 \( f'(x_ 0) \),并分析该公式的截断误差(即理论误差) 。 解题过程 步骤1:核心思想与泰勒展开 数值微分的基本思想是利用函数在某点附近的泰勒展开式,将导数与函数值的线性组合联系起来。对于五点中心差分公式,我们利用点 \( x_ 0 \) 及其左右对称的四个点进行展开,以获得更高的精度。 我们定义: \( x_ 0 \) 为求导点。 步长 \( h > 0 \)。 已知点:\( x_ {-2} = x_ 0 - 2h \), \( x_ {-1} = x_ 0 - h \), \( x_ 0 \), \( x_ 1 = x_ 0 + h \), \( x_ 2 = x_ 0 + 2h \)。 假设 \( f(x) \) 在包含这些点的区间内无限次可微(至少五阶连续可导),我们在 \( x_ 0 \) 处进行泰勒展开: \( f(x_ 0 + h) = f(x_ 0) + h f'(x_ 0) + \frac{h^2}{2!} f''(x_ 0) + \frac{h^3}{3!} f^{(3)}(x_ 0) + \frac{h^4}{4!} f^{(4)}(x_ 0) + \frac{h^5}{5!} f^{(5)}(x_ 0) + O(h^6) \) \( f(x_ 0 - h) = f(x_ 0) - h f'(x_ 0) + \frac{h^2}{2!} f''(x_ 0) - \frac{h^3}{3!} f^{(3)}(x_ 0) + \frac{h^4}{4!} f^{(4)}(x_ 0) - \frac{h^5}{5!} f^{(5)}(x_ 0) + O(h^6) \) \( f(x_ 0 + 2h) = f(x_ 0) + 2h f'(x_ 0) + \frac{(2h)^2}{2!} f''(x_ 0) + \frac{(2h)^3}{3!} f^{(3)}(x_ 0) + \frac{(2h)^4}{4!} f^{(4)}(x_ 0) + \frac{(2h)^5}{5!} f^{(5)}(x_ 0) + O(h^6) \) \( f(x_ 0 - 2h) = f(x_ 0) - 2h f'(x_ 0) + \frac{(2h)^2}{2!} f''(x_ 0) - \frac{(2h)^3}{3!} f^{(3)}(x_ 0) + \frac{(2h)^4}{4!} f^{(4)}(x_ 0) - \frac{(2h)^5}{5!} f^{(5)}(x_ 0) + O(h^6) \) 其中,\( O(h^6) \) 表示六次及更高次幂的项。 步骤2:构造线性组合以消去无关项 我们的目标是找到一个形如: \[ f'(x_ 0) \approx \frac{A f(x_ 0 - 2h) + B f(x_ 0 - h) + C f(x_ 0) + D f(x_ 0 + h) + E f(x_ 0 + 2h)}{h} \] 的公式,其中 \( A, B, C, D, E \) 是待定系数。 为了确定这些系数,我们将四个泰勒展开式代入上述近似公式的右边,然后与左边的 \( f'(x_ 0) \) 进行比较,并要求两边的对应项系数匹配。具体来说: 将 \( f(x_ 0 \pm h) \) 和 \( f(x_ 0 \pm 2h) \) 的泰勒展开代入右边,并按 \( f(x_ 0), f'(x_ 0), f''(x_ 0), \dots \) 的幂次整理。右边表达式为: \[ \frac{1}{h} \left[ A f(x_ 0 - 2h) + B f(x_ 0 - h) + C f(x_ 0) + D f(x_ 0 + h) + E f(x_ 0 + 2h) \right ] \] 我们要求这个表达式在 \( h \to 0 \) 时精确等于 \( f'(x_ 0) \)。为了使公式精确,我们希望: \( f(x_ 0) \) 的系数之和为零。 \( f'(x_ 0) \) 的系数之和为 \( h \)(因为右边除以了 \( h \),所以其系数和应为 \( h \) 才能与左边的 \( f'(x_ 0) \) 匹配)。 尽可能多地消去高阶项(如 \( f''(x_ 0), f^{(3)}(x_ 0) \) 等),以提高精度。 将泰勒展开式代入并整理后,得到各阶导数的系数方程: 常数项 (\( f(x_ 0) \) 的系数): \[ A + B + C + D + E = 0 \] 一阶导项 (\( f'(x_ 0) \) 的系数): \[ (-2A - B + D + 2E) h = h \quad \Rightarrow \quad -2A - B + D + 2E = 1 \] (注意:等式右边是 \( f'(x_ 0) \),其系数为1,但我们的表达式整体除以 \( h \),所以这里 \( f'(x_ 0) \) 的系数应为 \( h \) 才能经 \( 1/h \) 后变成1。) 二阶导项 (\( f''(x_ 0) \) 的系数): \[ \left( \frac{(2h)^2}{2!} A + \frac{h^2}{2!} B + \frac{h^2}{2!} D + \frac{(2h)^2}{2 !} E \right) \frac{1}{h} = \frac{h}{2} (4A + B + D + 4E) \] 我们希望这项为零以提高精度,所以: \[ 4A + B + D + 4E = 0 \] 三阶导项 (\( f^{(3)}(x_ 0) \) 的系数): \[ \left( -\frac{(2h)^3}{3!} A - \frac{h^3}{3!} B + \frac{h^3}{3!} D + \frac{(2h)^3}{3 !} E \right) \frac{1}{h} = \frac{h^2}{6} (-8A - B + D + 8E) \] 希望为零: \[ -8A - B + D + 8E = 0 \] 四阶导项 (\( f^{(4)}(x_ 0) \) 的系数): \[ \left( \frac{(2h)^4}{4!} A + \frac{h^4}{4!} B + \frac{h^4}{4!} D + \frac{(2h)^4}{4 !} E \right) \frac{1}{h} = \frac{h^3}{24} (16A + B + D + 16E) \] 希望为零: \[ 16A + B + D + 16E = 0 \] 我们得到了五个方程,但理论上我们可以保留四阶项来构造一个更高精度的公式。然而,我们只有五个未知数 \( A, B, C, D, E \)。为了获得尽可能高的精度,我们通常要求消去直到四阶导的项(这样截断误差将是 \( O(h^4) \) 量级)。让我们检查方程数: 我们有5个未知数。 我们列出了5个方程:常数项、一阶、二阶、三阶、四阶项为零(实际上常数项、二阶、三阶、四阶设为零,一阶设为1)。 现在解这个线性方程组。 步骤3:求解系数 方程组为: \[ \begin{cases} A + B + C + D + E = 0 \quad &(1)\\ -2A - B + D + 2E = 1 \quad &(2)\\ 4A + B + D + 4E = 0 \quad &(3)\\ -8A - B + D + 8E = 0 \quad &(4)\\ 16A + B + D + 16E = 0 \quad &(5) \end{cases} \] 首先,观察(3)、(4)、(5)方程。它们都是关于 \( (A+E) \) 和 \( (B+D) \) 的线性组合。实际上,将(3)和(5)相减,可以简化。 由(3): \( 4(A+E) + (B+D) = 0 \) 由(5): \( 16(A+E) + (B+D) = 0 \) 将两式相减:\( 12(A+E) = 0 \Rightarrow A+E = 0 \) 代入(3):\( 0 + (B+D) = 0 \Rightarrow B+D = 0 \) 所以 \( E = -A \),\( D = -B \)。 现在利用(4)检查一致性:将 \( D=-B, E=-A \) 代入(4): \[ -8A - B + (-B) + 8(-A) = -8A - B - B - 8A = -16A - 2B = 0 \Rightarrow 8A + B = 0 \quad (4') \] 利用(2):将 \( D=-B, E=-A \) 代入(2): \[ -2A - B + (-B) + 2(-A) = -2A - B - B - 2A = -4A - 2B = 1 \Rightarrow 2A + B = -\frac{1}{2} \quad (2') \] 现在我们有两个方程: \[ 8A + B = 0 \quad \text{和} \quad 2A + B = -\frac{1}{2} \] 相减:\( (8A+B) - (2A+B) = 0 - (-\frac{1}{2}) \Rightarrow 6A = \frac{1}{2} \Rightarrow A = \frac{1}{12} \) 代入 \( 8A+B=0 \):\( 8 \times \frac{1}{12} + B = 0 \Rightarrow \frac{2}{3} + B = 0 \Rightarrow B = -\frac{2}{3} \) 于是: \[ A = \frac{1}{12}, \quad B = -\frac{2}{3}, \quad E = -A = -\frac{1}{12}, \quad D = -B = \frac{2}{3} \] 最后利用(1)求 \( C \): \[ A + B + C + D + E = \frac{1}{12} - \frac{2}{3} + C + \frac{2}{3} - \frac{1}{12} = C = 0 \] 因此,所有系数为: \[ A = \frac{1}{12}, \quad B = -\frac{2}{3}, \quad C = 0, \quad D = \frac{2}{3}, \quad E = -\frac{1}{12} \] 步骤4:得到五点中心差分公式 将系数代入近似式: \[ f'(x_ 0) \approx \frac{ \frac{1}{12} f(x_ 0 - 2h) - \frac{2}{3} f(x_ 0 - h) + 0 \cdot f(x_ 0) + \frac{2}{3} f(x_ 0 + h) - \frac{1}{12} f(x_ 0 + 2h) }{h} \] 通常写作更简洁的形式: \[ \boxed{ f'(x_ 0) \approx \frac{ f(x_ 0 - 2h) - 8f(x_ 0 - h) + 8f(x_ 0 + h) - f(x_ 0 + 2h) }{12h} } \] 这个公式就是 五点中心差分公式 (实际上用了四个点,因为中心点 \( f(x_ 0) \) 的系数为零)。 步骤5:截断误差分析 为了分析截断误差,我们需要检查被我们忽略的高阶项。回顾泰勒展开,当我们代入系数后,所有直到四阶导的项都被精确消去了。接下来看五阶导项。 计算五阶导项 \( f^{(5)}(x_ 0) \) 的系数: 来自 \( f(x_ 0 - 2h) \):\( - \frac{(2h)^5}{5 !} \times A = - \frac{32h^5}{120} \times \frac{1}{12} = -\frac{32}{1440} h^5 \) 来自 \( f(x_ 0 - h) \):\( - \frac{h^5}{120} \times B = - \frac{h^5}{120} \times (-\frac{2}{3}) = +\frac{2}{360} h^5 \) 来自 \( f(x_ 0 + h) \):\( + \frac{h^5}{120} \times D = + \frac{h^5}{120} \times \frac{2}{3} = +\frac{2}{360} h^5 \) 来自 \( f(x_ 0 + 2h) \):\( + \frac{(2h)^5}{120} \times E = + \frac{32h^5}{120} \times (-\frac{1}{12}) = -\frac{32}{1440} h^5 \) 将这些系数相加(并除以 \( h \) 因为公式右边有 \( 1/h \)): \[ \frac{1}{h} \times h^5 \left( -\frac{32}{1440} + \frac{2}{360} + \frac{2}{360} - \frac{32}{1440} \right) \] 简化:\( \frac{2}{360} = \frac{1}{180} = \frac{8}{1440} \),所以括号内为: \[ \left( -\frac{32}{1440} + \frac{8}{1440} + \frac{8}{1440} - \frac{32}{1440} \right) = -\frac{48}{1440} = -\frac{1}{30} \] 因此五阶导项的总贡献为: \[ \frac{1}{h} \times h^5 \times \left(-\frac{1}{30}\right) = -\frac{h^4}{30} f^{(5)}(x_ 0) \] 这里我们假设各点的五阶导在 \( x_ 0 \) 处相同(因为步长很小,且函数光滑)。实际上,更严格的误差分析需要利用泰勒余项。但通常我们取主导项作为截断误差的估计。 于是,完整的表达式为: \[ f'(x_ 0) = \frac{ f(x_ 0 - 2h) - 8f(x_ 0 - h) + 8f(x_ 0 + h) - f(x_ 0 + 2h) }{12h} - \frac{h^4}{30} f^{(5)}(\xi) \] 其中 \( \xi \) 是位于 \( [ x_ 0-2h, x_ 0+2h] \) 之间的某一点(根据泰勒展开的拉格朗日余项形式)。因此, 截断误差为 \( -\frac{h^4}{30} f^{(5)}(\xi) \) ,这表明五点中心差分公式具有四阶精度(误差与 \( h^4 \) 成正比)。 总结 五点中心差分公式 (实际使用四个对称点): \[ f'(x_ 0) \approx \frac{ f(x_ 0 - 2h) - 8f(x_ 0 - h) + 8f(x_ 0 + h) - f(x_ 0 + 2h) }{12h} \] 精度 :四阶精度,截断误差为 \( O(h^4) \),具体主项为 \( -\frac{h^4}{30} f^{(5)}(\xi) \)。 优点 :相比两点或三点公式,精度显著提高,特别适用于对导数精度要求较高的场合。 注意事项 :当 \( h \) 过小时,舍入误差可能增大(因函数值相减造成有效数字损失),因此需权衡步长选择。 通过以上循序渐进的推导和分析,你应该对五点中心差分公式的构造原理和误差特性有了清晰的理解。