数值积分(四):Newton-Cotes 公式
梯形法则和中矩法则
计算定积分
一种思路是利用积分中值定理
对其进行近似.
Theorem 4.1
这就需要对 $f(\xi)$ 进行近似. 显然可以用计算区域两端的函数值平均对其进行近似,这样就会得到梯形法则
采用计算区域中点的函数值对其进行近似,就会得到中矩法则
由于中矩法则需要中点的函数值,因此在实际中应用较少. 为了方便编写数值计算程序,用 $x_0$ 代替 $a$,用 $h$ 代替步长 $\Delta x$,计算点即 $x_k=x_0+hk$,用 $f_k$ 代替 $f(x_k)$. 由于式 (4.2) 中只需要两个点,因此可写成
现在,我们来考虑梯形法则的误差. 由 Newton-Leibnitz 公式
Theorem 4.2
可得
对 $F(x_1)$ 作 Taylor 展开,类似式 (1.1),可得
其中 $\xi\in(x_0,x_1)$ .
因此可得
$F(x)$ 是 $f(x)$ 的原函数,因此上式即可写成
上式为真值.
再看计算值,对 $f(x_1)$ 作 Taylor 展开,可得
需要说明的是,式 (4.7) 和式 (4.9) 中的 $\xi$ 其实不能直接认为是相同的,但是可以证明二者是相等的,因此这里没有做区分. 证明也很容易,从 $f(x)=\dfrac{\mathrm{d}F(x)}{\mathrm{d}x}$ 出发即可.
因此计算值即式 (4.4) 可以写成
式 (4.8) 减去式 (4.10) 即可得到误差项
因此可得梯形法则
可以看出,梯形法则具有二阶精度.
Simpson 法则
简单来说,Simpson 法则
可以看做用三点拟合一条二次多项式,从而近似计算积分的值. 实际上,梯形法则、Simpson法则都是取不同个数的点然后通过 Lagrange 插值拟合多项式得到的,这也是 Newton-Cotes 公式的思路,如果选取四点拟合三次多项式,就得到了 Simpson 3/8 法则
,如果选取五点拟合四次多项式,就得到了 Boole 法则
.
多项式拟合
多项式拟合是拟合曲线的一种方法,给定 n+1 个点,可以用一个 n 次多项式进行拟合
多项式如下
带入数据点,得到方程组
由于这是一个线性方程组,因此可以通过 MATLAB 直接求解.
但是这种求解方法计算量较大,更为直接的一种方法是利用 Lagrange 插值法
,例如给定两个数据点 $(x_0,y_0)$ $(x_1,y_1)$,通过这两点的直线可以写成
上式也可简记为
类似的可以发现,Lagrange 系数 $L_{n,k}$ 有以下特点
这样,我们可以通过 n+1 个数据点,拟合出 n 次幂多项式
其中 Lagrange 系数为
并具有式 (4.17) 中的性质.
Simpson 法则
Simpson 法则实际上就是利用三个数据点构建一个 Lagrange 多项式
插入到积分中
分别计算各项积分的值
代入 $x_2=x_0+2h$,$x_1=x_0+h$ 得到
用同样的方法求解出
于是可以得到式 (4.22) 等于
现在让我们考虑 Simpson 法则的误差,与计算式 (4.8)时的操作类似,对 $F(x_2)$ 做 Taylor 展开
利用 $\dfrac{\mathrm{d}F(x)}{\mathrm{d}x}=f(x)$ 可得
分别对 $f(x_1)$ 和 $f(x_2)$ 做 Taylor 展开
近似值即可写成
用式 (4.24) 减去式 (4.27) 即可得误差项
从而得到 Simpson 法则
可以看出 Simpson 法则具有四阶精度.
通过推导 Lagrange 插值余项也可以得到求积公式的误差余项.
小结
通过 Newton-Cotes 公式的基本思路,我们可以推导出下面的法则,并估计相应的误差.
梯形法则 | $\dfrac h2(f_0+f_1)-\dfrac{h^3}{12}\dfrac{\mathrm{d}^2f(\xi)}{\mathrm{d}x^2}$ |
Simpson 法则 | $\dfrac h3(f_0+4f_1+f_2)-\dfrac{h^5}{90}\dfrac{\mathrm{d}^2f(\xi)}{\mathrm{d}x^2}$ |
Simpson 3/8 法则 | $\dfrac {3h}{8}(f_0+3f_1+3f_2+f_3)-\dfrac{3h^5}{80}\dfrac{\mathrm{d}^4f(\xi)}{\mathrm{d}x^4}$ |
Boole 法则 | $\dfrac{2h}{45}(7f_0+32f_1+12f_2+32f_3+7f_4)-\dfrac{h^7}{945}\dfrac{\mathrm{d}^6f(\xi)}{\mathrm{d}x^6}$ |
在此基础上,我们得到 Cotes 系数表
n | $C_0$ | $C_1$ | $C_2$ | $C_3$ | $C_4$ | $C_5$ | $C_6$ |
---|---|---|---|---|---|---|---|
n=1 | $\dfrac12$ | $\dfrac12$ | |||||
n=2 | $\dfrac16$ | $\dfrac46$ | $\dfrac16$ | ||||
n=3 | $\dfrac18$ | $\dfrac38$ | $\dfrac38$ | $\dfrac18$ | |||
n=4 | $\dfrac7{90}$ | $\dfrac{32}{90}$ | $\dfrac{12}{90}$ | $\dfrac{32}{90}$ | $\dfrac7{90}$ | ||
n=5 | $\dfrac{19}{288}$ | $\dfrac{75}{288}$ | $\dfrac{50}{288}$ | $\dfrac{50}{288}$ | $\dfrac{75}{288}$ | $\dfrac{19}{288}$ | |
n=6 | $\dfrac{41}{840}$ | $\dfrac{216}{840}$ | $\dfrac{27}{840}$ | $\dfrac{272}{840}$ | $\dfrac{27}{840}$ | $\dfrac{216}{840}$ | $\dfrac{41}{840}$ |