←
PDF 713 / 1160 Now consider the interval [a, b] divided into n equal strips of width h where n is an even numbe
→
English · PDF 713
Original PDF page 713
中文 · PDF 713

现在考虑区间 [a, b] 被分成 n 个宽度为 h 的等宽条带,其中 n 是偶数。那么我们可以写成

$$\int_a^b f(x) dx = \int_{x_0}^{x_2} f(x) dx + \int_{x_2}^{x_4} f(x) dx + \int_{x_4}^{x_6} f(x) dx + \dots + \int_{x_{n-2}}^{x_n} f(x) dx$$

其中 $x_k = a + kh$ 。

将基本公式应用于右边的每个积分,得到近似式

$$\int_a^b f(x) dx \approx \frac{h}{3} [f_0 + 4f_1 + f_2] + \frac{h\frac{h}{3} [f_2 + 4f_3 + f_4] + \frac{h}{3} [f_4 + 4f_5 + f_6] \ + \dots + \frac{h}{3} [f_{n-2} + 4f_{n-1} + f_n]$$

$$\int_a^b f(x) dx \approx \frac{h}{3} [f_0 + 4f_1 + 2f_2 + 4f_3 + 2f_4 + \dots + 2f_{n-2} + 4f_{n-1} + f_n] \quad (8.49)$$

或者用文字表述

积分约等于步长的三分之一乘以(四倍的奇数纵坐标之和加两倍的偶数纵坐标之和再加首尾纵坐标)。

这被称为 辛普森法则,用纸笔计算时的安排如例 8.74 所示。

MATLAB 中没有用于实现指定条带数的辛普森法则 (8.49) 的命令。相反,该软件包提供了命令 quad(f, a, b),它尝试近似标量值函数的积分 $f = f(x)$ 从 $a$ 到 $b$ 误差在 $1 \cdot e^{-6}$ 以内,使用递归自适应辛普森求积。无需指定条带数,且该方法对用户来说有一定的隐藏性。这是数值计算积分的一种高效方法,但作为学习工具价值有限。使用 quad 命令时,函数 $f(x)$ 必须表示为带有数组运算的 inline 函数 $.*$ , $./$ 和 $.^$ 在其规范中使用,以便可以用向量参数进行求值。作为说明,我们考虑例 8.73 的积分,其命令为

$$f = inline('(1 + x.^2).^{(1/2)}'); \quad quad(f, 0,1)$$