跳转至

Simpson 方法怎样给出预算与误差证书?

先备知识

第 22.4 单元的中点和梯形公式对线性函数精确,误差由二阶导数控制。Simpson 方法把 两个相邻小区间合成一个面板,用三个节点的权重消去更低阶误差,从而获得四阶全局界。

本单元需要第四部的 Rolle 定理与有限 Taylor 思想,但不会把有限多项式近似升级为 无穷展开。

学习目标

完成本单元后,你应能:

  1. 从一个双区间面板推出 \(1,4,1\) 权重;
  2. 验证 Simpson 对三次多项式精确;
  3. 证明单面板和复合四阶误差界;
  4. 说明网格数为什么必须是正偶数;
  5. 从目标容差反求最小偶数预算;
  6. 区分误差界存在、目标达到与预算耗尽;
  7. 解释调用者必须证明的导数界。

牵引问题

中点与梯形都只有二阶全局误差。如果把粗网格梯形与面板中点按恰当比例组合,能否 消去主要二阶误差?即使得到四阶公式,怎样知道有限预算是否足以达到给定容差?

探索与猜想

在对称面板 \([m-h,m+h]\) 上,三个节点是 \(m-h,m,m+h\)。设近似为

\[ h\left(Af(m-h)+Bf(m)+Af(m+h)\right). \]

对常数函数精确要求 \(2A+B=2\);对二次函数精确要求 \(2A=2/3\)。所以 \(A=1/3,B=4/3\),得到经典权重。对称性又使奇次项自动抵消。

概念与理论

单面板 Simpson 公式

在面板 \([m-h,m+h]\) 上,

\[ S_{\mathrm{panel}}(f) =\frac h3\bigl[f(m-h)+4f(m)+f(m+h)\bigr]. \]

\(1,x,x^2,x^3\) 分别代入,或围绕 \(m\) 写成 \(1,(x-m),(x-m)^2,(x-m)^3\), 可以直接验证公式对所有三次多项式精确。

注意:三个节点通常只唯一决定二次插值多项式;Simpson 对三次多项式也精确,来自 对称区间上奇次项积分和对称节点和同时为零。

复合 Simpson 公式

\[ x_i=a+ih,\qquad h=\frac{b-a}{n}. \]

每个面板需要两个相邻小区间,所以 \(n\) 必须为正偶数。把 \(n/2\) 个面板相加:

\[ S_n=\frac h3\left[ f(x_0)+f(x_n) +4\sum_{\substack{1\le i<n\\i\ \mathrm{奇}}}f(x_i) +2\sum_{\substack{2\le i<n\\i\ \mathrm{偶}}}f(x_i) \right]. \]

奇数编号节点是面板中点,只属于一个面板,权重为 \(4\);正的偶数内部节点由相邻 面板共享,两个端点权重 \(1\) 相加成为 \(2\)

单面板四阶误差引理

在平移后的面板 \([-h,h]\) 上定义误差泛函

\[ \mathcal E(f) =\int_{-h}^{h}f(x)\,dx -\frac h3[f(-h)+4f(0)+f(h)]. \]

它对三次以下多项式为零。对 \(x^4\) 直接计算:

\[ \mathcal E(x^4) =\frac{2h^5}{5}-\frac{2h^5}{3} =-\frac{4h^5}{15}. \]

下面给出反复 Rolle 定理常用证明的等价单变量核形式。对 \(f\in C^4[-h,h]\),四次 分部积分可验证

\[ \mathcal E(f)=\int_{-h}^{h}K_h(t)f^{(4)}(t)\,dt, \]

其中

\[ K_h(t)= \begin{cases} -\dfrac{(h+t)^3(h-3t)}{72},&-h\le t\le0,\\[6pt] -\dfrac{(h-t)^3(h+3t)}{72},&0\le t\le h. \end{cases} \]

验证时在 \([-h,0]\)\([0,h]\) 分别积分四次;端点项正好留下积分项与 \(1,4,1\) 三个节点值。这个核处处非正,并且

\[ \int_{-h}^{h}K_h(t)\,dt=-\frac{h^5}{90}. \]

由带权积分中值定理,存在 \(\xi\in(-h,h)\) 使

\[ \mathcal E(f) =f^{(4)}(\xi)\int_{-h}^{h}K_h(t)\,dt =-\frac{h^5}{90}f^{(4)}(\xi). \]

核证明与对辅助余项反复使用 Rolle 的证明表达的是同一个四阶消去事实;这里写出核, 是为了同时看清符号和常数。

复合 Simpson 误差

定理。\(f\in C^4[a,b]\),并且在整个区间上

\[ |f^{(4)}(x)|\le M_4, \]

则对正偶数 \(n\)

\[ \left|\int_a^bf(x)\,dx-S_n\right| \le\frac{b-a}{180}M_4h^4. \]

证明。 每个面板误差绝对值不超过 \(M_4h^5/90\)。共有 \(n/2\) 个面板,所以

\[ |E_S| \le\frac n2\frac{M_4h^5}{90} =\frac{nh}{180}M_4h^4 =\frac{b-a}{180}M_4h^4. \]

证毕。

从容差到最小偶数网格

因为 \(h=(b-a)/n\),要求误差上界不超过 \(\tau>0\) 等价于

\[ \frac{M_4(b-a)^5}{180n^4}\le\tau. \]

所以先求

\[ n_{\mathrm{raw}} =\left(\frac{M_4(b-a)^5}{180\tau}\right)^{1/4}, \]

再向上取为最小正偶数。先取最近整数或向下取整都可能使误差界仍大于目标。

预算算法

certified_simpson 执行:

  1. 检查端点有限且 \(a<b\)
  2. 检查 \(\tau>0\)\(M_4\ge0\) 且数值有限;
  3. 检查最大子区间预算至少为 \(2\)
  4. 求满足解析界的最小正偶数 \(n\)
  5. 若预算足够,返回 status="target_met"target_met=True
  6. 若预算不足,用预算内最大正偶数网格,返回 status="budget_exhausted"target_met=False
  7. 两种状态都返回当前 error_bound,前提是调用者证明了 \(M_4\)

预算耗尽与数学假设失败不同:前者仍可能拥有一个有效但偏大的条件性界;错误导数界、 非有限函数值或非法区间则不能生成可靠结果。

例题与迁移

例 1:三次函数精确

\(f(x)=x^3-2x+1\)\([-1,2]\) 上取任意正偶数网格。因为 \(f^{(4)}\equiv0\),误差界为零,Simpson 结果必须等于

\[ \int_{-1}^{2}(x^3-2x+1)\,dx=\frac{15}{4}. \]

这不表示算法使用了原函数;它表示公式对三次多项式的代数精确性。

例 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\)。四段误差上界 大于目标,程序返回:

subdivisions=4
target_met=False
status="budget_exhausted"

这不应写成“算法发散”。它表示给定预算不足以让已证明的上界达到目标;可以增加预算、 放宽容差或证明更小的 \(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\)

\[ 2Ah^3=\int_{-h}^{h}x^2dx=\frac{2h^3}{3}, \]

所以 \(A=1/3\),再得 \(B=4/3\)

练习 2:奇次精确性

为什么上题得到的公式自动对 \(x\)\(x^3\) 精确?

答案

两个函数都关于面板中点为奇函数,真实积分为零;对称节点值也互相抵消,中点值 为零,所以 Simpson 和同样为零。

练习 3:误差界计算

在长度为 \(2\) 的区间上取 \(n=10\),且 \(|f^{(4)}|\le6\)。求 Simpson 误差上界。

答案

\(h=2/10=1/5\),故

\[ |E_S|\le\frac{2}{180}\cdot6\cdot\left(\frac15\right)^4 =\frac1{9375}. \]

练习 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\)。上界为

\[ \frac{24}{180\cdot4^4}=\frac1{1920}. \]

练习 6:调用者义务

程序接受了参数 fourth_derivative_bound=2.0。这是否证明 \(|f^{(4)}|\le2\)

答案

否。程序只检查参数是有限非负数。调用者必须用函数表达式、单调性或其他数学论证 证明该界覆盖整个积分区间。

练习 7:状态解释

结果包含 error_bound=0.003target_tolerance=0.001status="budget_exhausted"。写出不夸大的结论。

答案

在导数界已证明且采用解析误差模型的前提下,当前求积误差不超过 \(0.003\); 现有预算没有证明误差不超过目标 \(0.001\)。不能报告“目标已达到”。

练习 8:首个非法证书

某人把相邻两个 Simpson 网格结果之差 \(4\times10^{-6}\) 直接称为严格误差界。 指出缺失条件。

答案

两个近似彼此接近并不自动控制它们与真实积分的距离。除非另有已证明的后验误差 定理,否则严格界仍须来自整个区间上的 \(M_4\) 与 Simpson 误差公式。

常见误区与后续

  • 忘记复合 Simpson 的网格数必须为正偶数;
  • 只验证二次插值,却没有解释三次精确性;
  • 引用四阶误差常数而不给单面板来源;
  • 向下取整网格预算;
  • budget_exhausted 解释成函数不收敛;
  • 把程序接受导数界参数误写成程序证明了导数界;
  • 把解析求积误差界说成覆盖浮点舍入误差。

下一单元把反常积分的尾部截断与本单元的有限求积证书合并。Euler–Maclaurin、 Romberg、自适应求积和 Gauss 求积留在本章范围之外。