复合辛普森公式的误差分析与步长选择
题目描述
给定一个数值积分问题:计算函数 \(f(x)\) 在区间 \([a, b]\) 上的定积分 \(I = \int_a^b f(x) \, dx\)。使用复合辛普森公式进行近似计算时,需分析其截断误差的表达式,并推导在给定误差容限 \(\varepsilon\) 的情况下,如何选择最优的子区间数量 \(n\)(或步长 \(h = \frac{b-a}{n}\)),以确保实际误差不超过 \(\varepsilon\)。要求考虑函数 \(f(x)\) 具有四阶连续导数的情况。
解题过程
- 复合辛普森公式回顾
- 将区间 \([a, b]\) 划分为 \(n\)(偶数)个等宽子区间,步长 \(h = \frac{b-a}{n}\),节点 \(x_k = a + kh\)(\(k = 0, 1, \dots, n\))。
- 积分近似公式为:
\[ S_n = \frac{h}{3} \left[ f(x_0) + f(x_n) + 2\sum_{k=1}^{n/2-1} f(x_{2k}) + 4\sum_{k=1}^{n/2} f(x_{2k-1}) \right]。 \]
- 截断误差分析
- 单个子区间 \([x_{2k-2}, x_{2k}]\) 上的辛普森公式误差为(基于泰勒展开):
\[ E_k = -\frac{h^5}{90} f^{(4)}(\xi_k), \quad \xi_k \in [x_{2k-2}, x_{2k}]。 \]
- 整体误差由 \(n/2\) 个子区间误差累加:
\[ E = \sum_{k=1}^{n/2} E_k = -\frac{h^5}{90} \sum_{k=1}^{n/2} f^{(4)}(\xi_k)。 \]
- 若 \(f^{(4)}(x)\) 在 \([a, b]\) 上连续,由介值定理,存在 \(\eta \in [a, b]\) 使得:
\[ \sum_{k=1}^{n/2} f^{(4)}(\xi_k) = \frac{n}{2} f^{(4)}(\eta) \implies E = -\frac{(b-a)h^4}{180} f^{(4)}(\eta)。 \]
- 因此误差界为:
\[ |E| \leq \frac{(b-a)h^4}{180} \max_{x \in [a, b]} |f^{(4)}(x)|。 \]
- 步长选择策略
- 给定误差容限 \(\varepsilon\),需满足 \(|E| \leq \varepsilon\)。代入误差界:
\[ \frac{(b-a)h^4}{180} M_4 \leq \varepsilon, \quad \text{其中 } M_4 = \max_{x \in [a, b]} |f^{(4)}(x)|。 \]
- 解出 \(h\) 的约束:
\[ h \leq \left( \frac{180\varepsilon}{(b-a)M_4} \right)^{1/4}。 \]
- 由于 \(n = \frac{b-a}{h}\) 需为偶数,取:
\[ n = \left\lceil \frac{b-a}{h} \right\rceil \quad \text{(向上取整为偶数)}。 \]
- 实际应用:若 \(M_4\) 未知,可通过预计算或自适应方法估计(如比较不同 \(n\) 的结果)。
- 示例验证
- 假设 \(f(x) = \sin(x)\), \([a, b] = [0, \pi]\), \(\varepsilon = 10^{-6}\)。
- 计算 \(M_4 = \max |\sin(x)| = 1\),代入公式:
\[ h \leq \left( \frac{180 \times 10^{-6}}{\pi \times 1} \right)^{1/4} \approx 0.1 \implies n \geq \frac{\pi}{0.1} \approx 31.4 \implies n = 32。 \]
- 实际计算中,取 \(n = 32\) 可确保误差远小于 \(10^{-6}\)。
总结
复合辛普森公式的误差与 \(h^4\) 成正比,步长选择需平衡计算量与精度。通过误差界推导的 \(n\) 是理论最优值,实际应用中可结合自适应调整进一步优化。