2. 数值积分基础回顾

自适应步长积分并不是一套凭空出现的新算法,它建立在经典数值积分理论之上。要理解“为什么可以根据误差自动调整步长”,必须先回到三个基础问题:定积分在数值上究竟被逼近成了什么?求积公式的一般结构是什么?一个公式“有多准”该如何度量?本节围绕这三个问题展开,为后续的自适应策略建立理论起点。

一、定积分的数值逼近本质

定积分 I = ∫ab f(x) dx 的几何意义是曲线与 x 轴之间带符号的面积。黎曼积分的定义是把区间 [a,b] 分成若干小区间,在每个小区间内取一点求函数值,乘以区间长度后求和,再令最大区间长度趋于零取极限。数值积分正是截取这个极限过程中的“有限和”:用有限个函数值的加权和去近似积分值。

因此,任何数值求积公式都包含两个关键选择:节点(在哪些位置采样函数值)和权重(每个采样值乘多大系数)。误差则来自两方面:一是用有限和替代极限带来的截断误差,二是函数值本身计算不精确带来的舍入误差。自适应步长策略主要针对截断误差——它通过估计并控制截断误差,决定区间该细分到多细。

二、求积公式的一般形式

一般的求积公式可写成加权和形式:

I ≈ Q[f] = Σ_{i=0}^{n} A_i · f(x_i)
其中 x_i ∈ [a,b] 为求积节点,A_i 为求积权重

最常见的两类是牛顿–科茨型公式与高斯型公式。牛顿–科茨公式取等距节点,例如梯形公式(n=1)与辛普森公式(n=2):

梯形:  Q_T = (b-a)/2 · [f(a) + f(b)]
辛普森:Q_S = (b-a)/6 · [f(a) + 4f((a+b)/2) + f(b)]

高斯型公式则把节点位置也作为待定参数,用同样多的节点获得更高的精度。理解这个一般形式很重要:自适应算法并不绑定某一种公式,它把任意一个求积公式当作“基本单元”,通过在不同子区间上反复调用它来逼近整体积分。后续常见的“一对公式”(如辛普森公式与其二分复合版本)正是误差估计的载体。

三、代数精度:衡量公式“有多准”的标尺

代数精度是刻画求积公式精确程度的核心概念:若一个求积公式对所有次数不超过 m 的多项式都能给出精确积分值,而对某个 m+1 次多项式不能精确成立,则称其代数精度为 m。它之所以重要,是因为多项式是最容易精确积分的一类函数,而光滑函数又可用泰勒展开局部近似为多项式,所以代数精度直接决定了公式在小区间上的截断误差阶。

以梯形公式为例:对 f(x)=1 与 f(x)=x 均精确成立,但对 f(x)=x² 在 [0,1] 上,精确值为 1/3,梯形结果为 (1/2)(0+1)=1/2,不相等,故梯形公式代数精度为 1。辛普森公式对三次多项式均精确,代数精度为 3。一般地,n+1 个等距节点的牛顿–科茨公式,代数精度至少为 n(n 为偶数时可达到 n+1)。

代数精度与误差阶紧密相连:若公式代数精度为 m,则其局部截断误差通常正比于 hm+1(h 为子区间长度)。这意味着当步长减半时,误差大约缩小为原来的 1/2m+1。这一“误差随步长幂次下降”的规律,正是自适应策略能够通过比较粗细两种步长的结果来估计误差、并据此决定是否继续细分的理论依据。

定积分的数值逼近本质 I = ∫ f(x)dx ≈ Σ Aᵢ·f(xᵢ):用有限节点采样 + 权重求和,逼近黎曼和的极限 误差来源:截断误差(有限和替代极限) + 舍入误差(函数值计算不精确) 求积公式的一般形式 Q[f] = Σ Aᵢ·f(xᵢ) 节点 xᵢ:采样位置 权重 Aᵢ:系数 例:梯形 (b−a)/2·[f(a)+f(b)] 代数精度:公式“有多准” 对次数 ≤ m 的多项式精确成立 对 m+1 次多项式不精确 → 精度为 m 梯形:精度 1(x² 不精确) 辛普森:精度 3 代数精度 m → 局部截断误差 ∝ h^(m+1) → 步长减半误差约降为 1/2^(m+1) 自适应策略的理论起点:比较粗细步长结果估计误差,据此决定是否细分区间

四、从基础理论到自适应策略的衔接

把上述三点串起来,自适应步长的逻辑就清晰了。假设在某个子区间 [α,β] 上用辛普森公式得到 Q_S,再把区间二分、在两个半区间上分别用辛普森公式得到 Q_S'。由于辛普森公式代数精度为 3,其误差正比于 h⁵,可以推导出 Q_S' 与 Q_S 之差约为 Q_S' 误差的 15 倍,于是用 |Q_S' − Q_S|/15 作为误差估计。若该估计小于给定容差,就接受 Q_S';否则继续细分。这正是“用代数精度推出误差阶、用误差阶构造误差估计、用误差估计驱动步长选择”的完整链条。

理解代数精度时,建议亲手验证一两个公式:例如对 f(x)=x³ 在 [0,1] 上检验辛普森公式是否精确(精确值 1/4),再对 f(x)=x⁴ 检验其失效。这种“精确—失效”的边界,就是代数精度的直观含义。

需要强调的是,代数精度描述的是公式在单个区间上的局部性质,而实际积分往往跨越较大范围。自适应方法的价值就在于:它不要求整个区间上步长一致,而是根据函数在各处的光滑程度局部地选择步长——在函数变化剧烈处细分,在平缓处用大步长。而判断“哪里需要细分”的依据,归根结底仍来自求积公式的代数精度所决定的误差阶。掌握了这一层关系,后续学习误差估计器、步长控制律与容差设置时,就不会把它们当作孤立的技巧,而能看清它们共同的理论根基。