核心概述
在区间 [a,b] 上用复化梯形与辛普森等规则近似积分并控制误差阶,作为固定步长的一般数值积分方法。
原文引述
Description: Composite trapezoid and Simpson rules for numerical integration on [a,b]. Deterministic, easy to implement; use adaptive Simpson for automatic accuracy control. Time: O(n) function evaluations Status: tested ——摘自本节点现有英文注释
展开阐述
-
定义与背景、典型适用场景
- 数值积分(Numerical Integration):对不可解析或成本较高的 f(x) 进行 ∫_a^b f(x) dx 的近似计算。
- 固定步长规则(复化梯形/辛普森)适合平滑函数;当函数局部变化剧烈或存在奇异点时固定步长不易匹配,应考虑自适应方案(见 105-数值算法-自适应积分)。
-
接口/字段/输入输出语义(据实现约定)
- double trapz(double a, double b, int n, auto f)
- 将 [a,b] 均分为 n 段(n≥1),返回复化梯形近似。
- double simpson(double a, double b, int n_even, auto f)
- n_even 为偶数,按 2 点一组应用 1/3 Simpson,返回复化辛普森近似。
- 可选:romberg(a,b,f,levels)
- 在复化梯形序列上做 Richardson 外推的 Romberg 表,提高阶数。
- 输出语义:返回对 ∫_a^b f(x) dx 的数值近似;n 越大在平滑情形下通常越精确。
- double trapz(double a, double b, int n, auto f)
-
核心流程与关键要点(公式与误差阶)
- 复化梯形(Trapezoid)
- h=(b−a)/n,x_i=a+i·h, I_T ≈ h·[ (f(x_0)+f(x_n))/2 + Σ_{i=1}^{n−1} f(x_i) ],
- 误差阶约 O(h^2)(依赖二阶导数上界)。
- 复化辛普森(Simpson 1/3)
- n 为偶数,h=(b−a)/n, I_S ≈ h/3 · [ f(x_0)+f(x_n) + 4·Σ_{奇 i} f(x_i) + 2·Σ_{偶 i, 2≤i≤n−2} f(x_i) ],
- 误差阶约 O(h^4)(依赖四阶导数上界)。
- Romberg(可选)
- 构造 T(h), T(h/2), T(h/4)…,按 R_{k,m}=R_{k,m−1} + (R_{k,m−1}−R_{k−1,m−1})/(4^{m−1}−1) 递推外推。
- 复化梯形(Trapezoid)
-
数值稳定性/精度注意
- 步长与误差:固定步长难以适配未知奇异/剧烈变化区域;建议优先考虑 105-数值算法-自适应积分 实现自动精度控制。
- 奇异点与不连续:在奇点处拆分区间或做变量代换;对强振荡可结合合适的积分技术(仅在仓库层面提示,不展开)。
- 浮点稳定性:长区间或函数值差异极大时注意累计误差;Kahan 求和有助减少损失。
- 并行化:f(x_i) 的评估可并行;合并求和时注意加法顺序的数值稳定。
-
复杂度与边界条件、常见变体/扩展
- 复化梯形/辛普森:O(n) 次函数评估与 O(n) 运算;Romberg 约 O(n) 评估 + O(n) 外推。
- 当需按目标精度 ε 自动控制时,改用 105-数值算法-自适应积分(自适应辛普森)。