复化辛普森公式的误差分析与步长选择
字数 2306 2025-11-11 06:22:59
复化辛普森公式的误差分析与步长选择
题目描述
计算定积分 \(I = \int_a^b f(x) \, dx\),其中 \(f(x)\) 在区间 \([a, b]\) 上四阶连续可导。使用复化辛普森公式进行数值积分时,如何分析其截断误差,并据此选择最优的步长 \(h\)(即子区间数量 \(n\)),使得在给定精度要求下计算量最小?
解题过程
- 复化辛普森公式回顾
- 将区间 \([a, b]\) 等分为 \(n\)(偶数)个子区间,步长 \(h = (b - a)/n\),节点 \(x_k = a + kh\)(\(k = 0, 1, \dots, n\))。
- 复化辛普森公式为:
\[ S_n(f) = \frac{h}{3} \left[ f(x_0) + f(x_n) + 4 \sum_{k=1}^{n/2} f(x_{2k-1}) + 2 \sum_{k=1}^{n/2-1} f(x_{2k}) \right]。 \]
- 每个子区间 \([x_{2k-2}, x_{2k}]\) 应用辛普森公式,整体公式是这些子区间结果的叠加。
- 误差分析:截断误差来源
- 单段辛普森公式的截断误差(余项)为:
\[ E_{\text{single}} = -\frac{(b-a)^5}{2880} f^{(4)}(\xi), \quad \xi \in [a, b]。 \]
该误差基于四阶导函数在区间内的性质。
- 复化后,总误差是各子区间误差的累加。由于 \(f^{(4)}(x)\) 连续,由积分中值定理,存在 \(\eta \in [a, b]\) 使得总误差为:
\[ E_n = -\frac{(b-a)}{180} h^4 f^{(4)}(\eta)。 \]
- 推导要点:
- 每个子区间 \([x_{2k-2}, x_{2k}]\) 长度为 \(2h\),其辛普森公式误差为 \(-\frac{(2h)^5}{2880} f^{(4)}(\xi_k) = -\frac{h^5}{90} f^{(4)}(\xi_k)\)。
- 总误差 \(E_n = \sum_{k=1}^{n/2} -\frac{h^5}{90} f^{(4)}(\xi_k) = -\frac{h^4(b-a)}{180} \cdot \frac{1}{n/2} \sum_{k=1}^{n/2} f^{(4)}(\xi_k)\)。
- 由于 \(f^{(4)}(x)\) 连续,均值 \(\frac{1}{n/2} \sum_{k=1}^{n/2} f^{(4)}(\xi_k) = f^{(4)}(\eta)\),从而得到上述公式。
- 步长选择策略
- 误差公式 \(|E_n| \approx \frac{(b-a)}{180} h^4 |f^{(4)}(\eta)|\) 表明误差以 \(O(h^4)\) 衰减。
- 给定精度要求 \(\epsilon\)(允许的最大绝对误差),需满足 \(|E_n| \leq \epsilon\)。
- 步长选择步骤:
- 粗略估计:若 \(M_4 = \max_{x \in [a,b]} |f^{(4)}(x)|\) 已知,解不等式 \(\frac{(b-a)}{180} h^4 M_4 \leq \epsilon\) 得:
\[ h \leq \left( \frac{180 \epsilon}{(b-a) M_4} \right)^{1/4}。 \]
子区间数 $ n = \frac{b-a}{h} $ 需取偶数并向上取整。
- **自适应调整**:若 $ M_4 $ 未知,可先取较小 $ n $(如 $ n=2 $)计算 $ S_n(f) $,再倍增 $ n $ 计算 $ S_{2n}(f) $,利用误差估计式 $ |I - S_{2n}| \approx \frac{|S_{2n} - S_n|}{15} $(基于 Richardson 外推)判断是否满足 $ \epsilon $。若不满足,继续倍增 $ n $ 直至收敛。
-
实际应用示例
- 以 \(I = \int_0^1 e^{-x^2} dx\) 为例,要求误差 \(\epsilon \leq 10^{-6}\)。
- 计算 \(f^{(4)}(x) = e^{-x^2}(16x^4 - 48x^2 + 12)\),在 \([0,1]\) 上取最大值 \(M_4 \approx 12\)(在 \(x=0\) 处)。
- 代入公式:\(h \leq \left( \frac{180 \times 10^{-6}}{1 \times 12} \right)^{1/4} \approx 0.062\),故 \(n \geq 1/0.062 \approx 16.1\),取偶数 \(n=16\)。
- 计算 \(S_{16}(f)\) 可得积分值约 0.746824,与实际值误差约 \(10^{-7}\),满足要求。
- 以 \(I = \int_0^1 e^{-x^2} dx\) 为例,要求误差 \(\epsilon \leq 10^{-6}\)。
-
关键注意事项
- 四阶导数必须连续,否则误差公式不适用。
- 步长 \(h\) 过小会增加舍入误差,需平衡截断误差与舍入误差。
- 自适应方法更稳健,适用于导数界未知或函数行为复杂的情况。
通过以上步骤,可系统分析复化辛普森公式的误差,并合理选择步长以高效达到精度目标。