3、数值积分基础:梯形法则的原理与推导、复合梯形法则

数值积分,说白了就是用计算机算积分。你可能会问:我们有那么多解析公式,为什么还要搞数值的?

我在项目中遇到过不少次,被积函数长得奇形怪状,根本找不到原函数。或者,你手里只有一堆离散的采样点,比如传感器每隔0.1秒采集一次数据,这时候你想算总位移——解析积分?没门。只能靠数值方法。

今天咱们就从最直观的梯形法则聊起。

3.1 梯形法则:用梯形面积近似曲边梯形

回忆一下定积分的几何意义:求曲线下方的面积。梯形法则的思路很简单——把曲线下的区域切成一个个小梯形,然后加起来。

为什么是梯形?因为矩形太粗糙,梯形能更好地贴合曲线的走势。你想想看,如果曲线是斜的,矩形要么欠估要么高估,而梯形至少能抓住斜率的变化。

3.1.1 单步梯形法则的推导

假设我们要计算:

I = ∫ₐᵇ f(x) dx

用一条直线连接点 (a, f(a)) 和 (b, f(b)),直线下方的面积就是梯形面积:

I ≈ (b - a) × [f(a) + f(b)] / 2

这就是单步梯形法则。说白了,就是用两端点的平均值乘以区间宽度。

核心思想:用线性插值近似被积函数,然后对插值函数精确积分。

嗯,这里要注意:如果 f(x) 本身就是线性函数,梯形法则是精确的。但大多数情况下,曲线是弯的,单步梯形法则误差会很大。

3.1.2 误差分析

我曾经踩过一个坑:用单步梯形法则算一个正弦函数的积分,区间取大了,结果误差大到离谱。后来才意识到,梯形法则的误差和区间长度的三次方成正比。

具体来说,单步梯形法则的截断误差为:

E = - (b - a)³ / 12 × f''(ξ),  ξ ∈ (a, b)

看到没?区间长度 (b-a) 是三次方。区间越大,误差增长得越快。所以,单步梯形法则只适合区间很小的情况。

避坑指南:我曾经用单步梯形法则算一个跨度很大的积分,结果误差大到不可接受。记住:区间宽度是三次方放大的,别偷懒。

3.2 复合梯形法则:化整为零

既然单步梯形法则在宽区间上误差大,那怎么办?很简单——把大区间切成很多小区间,在每个小区间上用梯形法则,然后加起来。这就是复合梯形法则。

我个人习惯把这种方法叫做「化整为零,逐个击破」。

3.2.1 推导过程

将区间 [a, b] 等分成 n 个子区间,步长 h = (b - a) / n。节点为:

x₀ = a, x₁ = a + h, ..., xₙ = b

在每个子区间 [xᵢ, xᵢ₊₁] 上应用梯形法则:

∫ₓᵢˣⁱ⁺¹ f(x) dx ≈ h × [f(xᵢ) + f(xᵢ₊₁)] / 2

把所有子区间加起来:

∫ₐᵇ f(x) dx ≈ h × [f(x₀)/2 + f(x₁) + f(x₂) + ... + f(xₙ₋₁) + f(xₙ)/2]

这就是复合梯形公式。你看,中间节点只出现一次,两端节点各出现半次。

记忆技巧:两端半,中间全,乘以步长就完事。

3.2.2 误差分析

复合梯形法则的误差为:

E = - (b - a) h² / 12 × f''(ξ),  ξ ∈ (a, b)

注意,现在是 h² 量级。h 越小,误差下降得越快。如果你把步长减半,误差大约变成原来的四分之一。

我建议你在实际工程中,先试一个粗略的 n,然后逐步加倍,观察结果的变化。如果两次结果相差很小,说明收敛了。

3.3 知识体系与核心逻辑

下面这张图帮你理清本章的知识脉络:

梯形法则知识体系 数值积分基础 单步梯形法则 复合梯形法则 线性插值近似 误差 O(h³) 仅适合小区间 化整为零 误差 O(h²) 工程常用 核心逻辑:用直线近似曲线 → 化整为零 → 提高精度

3.4 代码实现

下面是一个简单的 Python 实现。我习惯把代码写得清晰可读,方便调试。

def trapezoidal(f, a, b, n):
    """
    复合梯形法则求积分
    
    参数:
        f: 被积函数
        a, b: 积分区间
        n: 子区间数量
    
    返回:
        积分近似值
    """
    h = (b - a) / n
    x = a
    s = f(a) / 2.0
    
    for i in range(1, n):
        x += h
        s += f(x)
    
    s += f(b) / 2.0
    return s * h

# 示例:计算 ∫₀¹ x² dx = 1/3 ≈ 0.33333
f = lambda x: x**2
result = trapezoidal(f, 0, 1, 100)
print(f"积分结果: {result:.6f}")  # 输出: 0.33335

小技巧:实际工程中,我建议 n 取 2 的幂次,比如 64、128、256。这样方便做 Richardson 外推,能进一步提高精度。这个我们后面章节会讲到。

3.5 本章小结

方法 公式 误差阶 适用场景
单步梯形法则 (b-a)[f(a)+f(b)]/2 O(h³) 区间很小,或函数接近线性
复合梯形法则 h[½f₀ + f₁ + ... + ½fₙ] O(h²) 一般工程计算,精度可控

梯形法则虽然简单,但它是很多高级数值积分方法的基础。比如 Romberg 积分就是在梯形法则的基础上做外推。你先把梯形法则吃透了,后面学起来会轻松很多。

嗯,今天就到这里。记住:数值积分没有银弹,梯形法则虽然简单,但用好了也能解决大部分工程问题。


专注资料整理