Simpson 方法怎样给出预算与误差证书?¶
先备知识¶
第 22.4 单元的中点和梯形公式对线性函数精确,误差由二阶导数控制。Simpson 方法把 两个相邻小区间合成一个面板,用三个节点的权重消去更低阶误差,从而获得四阶全局界。
本单元需要第四部的 Rolle 定理与有限 Taylor 思想,但不会把有限多项式近似升级为 无穷展开。
学习目标¶
完成本单元后,你应能:
- 从一个双区间面板推出 \(1,4,1\) 权重;
- 验证 Simpson 对三次多项式精确;
- 证明单面板和复合四阶误差界;
- 说明网格数为什么必须是正偶数;
- 从目标容差反求最小偶数预算;
- 区分误差界存在、目标达到与预算耗尽;
- 解释调用者必须证明的导数界。
牵引问题¶
中点与梯形都只有二阶全局误差。如果把粗网格梯形与面板中点按恰当比例组合,能否 消去主要二阶误差?即使得到四阶公式,怎样知道有限预算是否足以达到给定容差?
探索与猜想¶
在对称面板 \([m-h,m+h]\) 上,三个节点是 \(m-h,m,m+h\)。设近似为
对常数函数精确要求 \(2A+B=2\);对二次函数精确要求 \(2A=2/3\)。所以 \(A=1/3,B=4/3\),得到经典权重。对称性又使奇次项自动抵消。
概念与理论¶
单面板 Simpson 公式¶
在面板 \([m-h,m+h]\) 上,
把 \(1,x,x^2,x^3\) 分别代入,或围绕 \(m\) 写成 \(1,(x-m),(x-m)^2,(x-m)^3\), 可以直接验证公式对所有三次多项式精确。
注意:三个节点通常只唯一决定二次插值多项式;Simpson 对三次多项式也精确,来自 对称区间上奇次项积分和对称节点和同时为零。
复合 Simpson 公式¶
设
每个面板需要两个相邻小区间,所以 \(n\) 必须为正偶数。把 \(n/2\) 个面板相加:
奇数编号节点是面板中点,只属于一个面板,权重为 \(4\);正的偶数内部节点由相邻 面板共享,两个端点权重 \(1\) 相加成为 \(2\)。
单面板四阶误差引理¶
在平移后的面板 \([-h,h]\) 上定义误差泛函
它对三次以下多项式为零。对 \(x^4\) 直接计算:
下面给出反复 Rolle 定理常用证明的等价单变量核形式。对 \(f\in C^4[-h,h]\),四次 分部积分可验证
其中
验证时在 \([-h,0]\)、\([0,h]\) 分别积分四次;端点项正好留下积分项与 \(1,4,1\) 三个节点值。这个核处处非正,并且
由带权积分中值定理,存在 \(\xi\in(-h,h)\) 使
核证明与对辅助余项反复使用 Rolle 的证明表达的是同一个四阶消去事实;这里写出核, 是为了同时看清符号和常数。
复合 Simpson 误差¶
定理。 若 \(f\in C^4[a,b]\),并且在整个区间上
则对正偶数 \(n\),
证明。 每个面板误差绝对值不超过 \(M_4h^5/90\)。共有 \(n/2\) 个面板,所以
证毕。
从容差到最小偶数网格¶
因为 \(h=(b-a)/n\),要求误差上界不超过 \(\tau>0\) 等价于
所以先求
再向上取为最小正偶数。先取最近整数或向下取整都可能使误差界仍大于目标。
预算算法¶
certified_simpson 执行:
- 检查端点有限且 \(a<b\);
- 检查 \(\tau>0\)、\(M_4\ge0\) 且数值有限;
- 检查最大子区间预算至少为 \(2\);
- 求满足解析界的最小正偶数 \(n\);
- 若预算足够,返回
status="target_met"、target_met=True; - 若预算不足,用预算内最大正偶数网格,返回
status="budget_exhausted"、target_met=False; - 两种状态都返回当前
error_bound,前提是调用者证明了 \(M_4\)。
预算耗尽与数学假设失败不同:前者仍可能拥有一个有效但偏大的条件性界;错误导数界、 非有限函数值或非法区间则不能生成可靠结果。
例题与迁移¶
例 1:三次函数精确¶
对 \(f(x)=x^3-2x+1\) 在 \([-1,2]\) 上取任意正偶数网格。因为 \(f^{(4)}\equiv0\),误差界为零,Simpson 结果必须等于
这不表示算法使用了原函数;它表示公式对三次多项式的代数精确性。
例 2:指数函数的成功预算¶
在 \([0,1]\) 上,\(f(x)=e^x\) 满足 \(f^{(4)}(x)=e^x\le e\)。取 \(\tau=10^{-8}\),预算上限 \(1000\)。共享实现返回:
subdivisions=36
evaluations=37
error_bound=8.991082315041867e-09
target_met=True
status="target_met"
近似值约为 1.718281834141971。严格陈述是:在 \(M_4=e\) 已经证明且忽略浮点舍入
误差的模型下,解析求积误差不超过返回的 error_bound。
例 3:预算耗尽¶
仍计算 \(e^x\),把目标改成 \(10^{-12}\),最大子区间数改成 \(4\)。四段误差上界 大于目标,程序返回:
这不应写成“算法发散”。它表示给定预算不足以让已证明的上界达到目标;可以增加预算、 放宽容差或证明更小的 \(M_4\)。
即时检验与回望¶
即时检验 1¶
为什么 \(n=5\) 不能直接用于复合 Simpson?
答案
每个面板由两个相邻小区间组成。五段无法完整配成面板,所以标准复合公式要求 \(n\) 为正偶数。
即时检验 2¶
若 \(M_4=0\),目标容差再小,为什么两段已经足够?
答案
误差上界恒为零,说明函数在该区间上至多是三次多项式;单面板 Simpson 已经精确。
回望:权重负责低阶消去,四阶导数界负责最坏误差,偶数取整负责让面板结构完整,状态 字段负责区分“有界”与“达标”。
习题与答案¶
练习 1:重建权重¶
设对称面板近似为 \(h[A f(-h)+Bf(0)+A f(h)]\)。要求对常数和 \(x^2\) 精确, 求 \(A,B\)。
答案
对常数:\(2A+B=2\)。对 \(x^2\):
所以 \(A=1/3\),再得 \(B=4/3\)。
练习 2:奇次精确性¶
为什么上题得到的公式自动对 \(x\) 和 \(x^3\) 精确?
答案
两个函数都关于面板中点为奇函数,真实积分为零;对称节点值也互相抵消,中点值 为零,所以 Simpson 和同样为零。
练习 3:误差界计算¶
在长度为 \(2\) 的区间上取 \(n=10\),且 \(|f^{(4)}|\le6\)。求 Simpson 误差上界。
答案
\(h=2/10=1/5\),故
练习 4:最小偶数化¶
由误差不等式算得 \(n_{\mathrm{raw}}=8.01\)。标准复合 Simpson 至少取多少段?
答案
先向上得到 \(9\),但 \(9\) 不是偶数,因此还要增加到 \(10\)。取 \(8\) 会小于 原始门槛,取 \(9\) 又不能完整分面板。
练习 5:四次函数¶
对 \(f(x)=x^4\) 在 \([0,1]\) 上取 \(n=4\)。给出有效 \(M_4\) 与误差上界。
答案
\(f^{(4)}=24\),故 \(M_4=24\)。上界为
练习 6:调用者义务¶
程序接受了参数 fourth_derivative_bound=2.0。这是否证明 \(|f^{(4)}|\le2\)?
答案
否。程序只检查参数是有限非负数。调用者必须用函数表达式、单调性或其他数学论证 证明该界覆盖整个积分区间。
练习 7:状态解释¶
结果包含 error_bound=0.003、target_tolerance=0.001、
status="budget_exhausted"。写出不夸大的结论。
答案
在导数界已证明且采用解析误差模型的前提下,当前求积误差不超过 \(0.003\); 现有预算没有证明误差不超过目标 \(0.001\)。不能报告“目标已达到”。
练习 8:首个非法证书¶
某人把相邻两个 Simpson 网格结果之差 \(4\times10^{-6}\) 直接称为严格误差界。 指出缺失条件。
答案
两个近似彼此接近并不自动控制它们与真实积分的距离。除非另有已证明的后验误差 定理,否则严格界仍须来自整个区间上的 \(M_4\) 与 Simpson 误差公式。
常见误区与后续¶
- 忘记复合 Simpson 的网格数必须为正偶数;
- 只验证二次插值,却没有解释三次精确性;
- 引用四阶误差常数而不给单面板来源;
- 向下取整网格预算;
- 把
budget_exhausted解释成函数不收敛; - 把程序接受导数界参数误写成程序证明了导数界;
- 把解析求积误差界说成覆盖浮点舍入误差。
下一单元把反常积分的尾部截断与本单元的有限求积证书合并。Euler–Maclaurin、 Romberg、自适应求积和 Gauss 求积留在本章范围之外。