1. Newton-Cotes公式的一般形式
对于
I
=
∫
a
b
f
(
x
)
d
x
I=\int_a^bf(x)dx
I=∫abf(x)dx,将区间
[
a
,
b
]
[a,b]
[a,b]分成n等份,步长为:
h
=
(
b
−
a
)
n
h=\frac{(b-a)}{n}
h=n(b−a)
故求积节点
x
k
=
a
+
k
h
(
k
=
0
,
1
,
2
,
⋯
,
n
)
x_k=a+kh(k=0,1,2,\cdots,n)
xk=a+kh(k=0,1,2,⋯,n),通过这
n
+
1
n+1
n+1个节点构造一个n次代数多项式
p
n
(
x
)
≅
f
(
x
)
p_n(x) \cong f(x)
pn(x)≅f(x)。令
x
=
a
+
t
h
(
t
=
0
,
1
,
2
,
⋯
,
k
,
⋯
,
n
)
x=a+th \quad (t=0,1,2,\cdots,k,\cdots,n)
x=a+th(t=0,1,2,⋯,k,⋯,n)
作积分变换
d
x
=
h
d
t
dx=hdt
dx=hdt
x = a , t = 0 ; x = b , t = n x=a,t=0; \quad x=b,t=n x=a,t=0;x=b,t=n
由
A
k
=
∫
a
b
l
k
(
x
)
d
x
A_k=\int_a^bl_k(x)dx
Ak=∫ablk(x)dx计算求积系数
A
k
(
k
=
0
,
1
,
2
,
⋯
,
n
)
A_k(k=0,1,2,\cdots,n)
Ak(k=0,1,2,⋯,n),即:
A
k
=
∫
a
b
l
k
(
x
)
d
x
=
∫
a
b
∏
j
=
0
,
j
≠
k
n
x
−
x
j
x
k
−
x
j
d
x
=
∫
0
n
∏
j
=
0
,
j
≠
k
n
(
a
+
t
h
)
−
(
a
+
j
h
)
(
a
+
k
h
)
−
(
a
+
j
h
)
h
d
t
=
∫
0
n
∏
j
=
0
,
j
≠
k
n
t
−
j
k
−
j
h
d
t
=
h
∫
0
n
∏
j
=
0
,
j
≠
k
n
t
−
j
k
−
j
d
t
A_k=\int_a^bl_k(x)dx=\int_a^b\prod^n_{j=0,j\neq k}\frac{x-x_j}{x_k-x_j}dx=\int_0^n\prod^n_{j=0,j\neq k}\frac{(a+th)-(a+jh)}{(a+kh)-(a+jh)}hdt \\ =\int_0^n \prod^n_{j=0,j\neq k}\frac{t-j}{k-j}hdt=h\int_0^n\prod_{j=0,j\neq k}^n\frac{t-j}{k-j}dt
Ak=∫ablk(x)dx=∫abj=0,j=k∏nxk−xjx−xjdx=∫0nj=0,j=k∏n(a+kh)−(a+jh)(a+th)−(a+jh)hdt=∫0nj=0,j=k∏nk−jt−jhdt=h∫0nj=0,j=k∏nk−jt−jdt
因为
∏
j
=
0
,
j
≠
k
n
(
k
−
j
)
=
k
(
k
−
1
)
⋯
(
k
−
(
k
−
1
)
)
⋅
(
k
−
(
k
+
1
)
)
⋯
(
k
−
n
)
=
k
(
k
−
1
)
⋯
1
⋅
(
−
1
)
(
−
2
)
⋯
(
−
(
n
−
k
)
)
=
k
!
(
−
1
)
n
−
k
(
n
−
k
)
!
\prod^n_{j=0, j\neq k}(k-j)=k(k-1)\cdots(k-(k-1))·(k-(k+1))\cdots (k-n)\\ =k(k-1)\cdots 1·(-1)(-2)\cdots (-(n-k))=k!(-1)^{n-k}(n-k)!
j=0,j=k∏n(k−j)=k(k−1)⋯(k−(k−1))⋅(k−(k+1))⋯(k−n)=k(k−1)⋯1⋅(−1)(−2)⋯(−(n−k))=k!(−1)n−k(n−k)!
所以
A
k
=
h
(
−
1
)
n
−
k
k
!
(
n
−
k
)
!
∫
0
n
∏
j
=
0
,
j
≠
k
n
(
t
−
j
)
d
t
A_k=\frac{h(-1)^{n-k}}{k!(n-k)!}\int_0^n\prod_{j=0,j\neq k}^n(t-j)dt
Ak=k!(n−k)!h(−1)n−k∫0nj=0,j=k∏n(t−j)dt
令
C
k
=
A
k
b
−
a
=
A
k
n
h
=
(
−
1
)
n
−
k
n
k
!
(
n
−
k
)
!
∫
0
n
∏
j
=
0
,
j
≠
k
n
(
t
−
j
)
d
t
(1)
C_k=\frac{A_k}{b-a}=\frac{A_k}{nh}=\frac{(-1)^{n-k}}{nk!(n-k)!}\int_0^n\prod_{j=0,j\neq k}^n(t-j)dt \tag{1}
Ck=b−aAk=nhAk=nk!(n−k)!(−1)n−k∫0nj=0,j=k∏n(t−j)dt(1)
称
C
k
C_k
Ck为Cotes(柯特斯)系数。故
∫
a
b
f
(
x
)
d
x
≅
(
b
−
a
)
∑
k
=
0
n
C
k
f
(
x
k
)
(2)
\int_a^bf(x)dx\cong (b-a)\sum_{k=0}^nC_kf(x_k) \tag{2}
∫abf(x)dx≅(b−a)k=0∑nCkf(xk)(2)
(1)式即为n阶的Newton-Cotes公式的一般形式。
如果给定n,则 C k C_k Ck可由(1)式计算出来。下标给出了 n = 1 ∼ 10 n=1\sim 10 n=1∼10的Cotes系数。应该注意
1)表中的系数 c k c_k ck要乘倍率K,才是公式(1)和(2)中的 C k C_k Ck。例如,当n=3时, C 0 = 1 8 , C 1 = 3 8 , C 2 = 3 8 , C 3 = 1 8 C_0=\frac{1}{8},C_1=\frac{3}{8},C_2=\frac{3}{8},C_3=\frac{1}{8} C0=81,C1=83,C2=83,C3=81。
2)当n大于等于6时,表中未列出的系数可根据对称性得到。例如,当n=6时, C 6 = 41 840 C_6=\frac{41}{840} C6=84041。
根据上述规则,可以写出
n
=
4
n=4
n=4的Newton-Cotes公式如下:
∫
a
b
f
(
x
)
d
x
≅
1
90
(
b
−
a
)
[
7
f
(
x
0
)
+
32
f
(
x
1
)
+
12
f
(
x
2
)
+
32
f
(
x
3
)
+
7
f
(
x
4
)
]
\int_a^bf(x)dx \cong \frac{1}{90}(b-a)[7f(x_0)+32f(x_1)+12f(x_2)+32f(x_3)+7f(x_4)]
∫abf(x)dx≅901(b−a)[7f(x0)+32f(x1)+12f(x2)+32f(x3)+7f(x4)]
其中,
x
0
=
a
,
x
4
=
b
x_0=a,x_4=b
x0=a,x4=b.
2. Newton-Cotes公式的稳定性
在Newton-Cotes公式(2)中,设计算函数值
f
(
x
k
)
(
k
=
1
,
2
,
⋯
,
n
)
f(x_k)(k=1,2,\cdots,n)
f(xk)(k=1,2,⋯,n)所产生的舍入误差为
ϵ
k
(
k
=
1
,
2
,
⋯
,
n
)
\epsilon_k(k=1,2,\cdots,n)
ϵk(k=1,2,⋯,n),则用Newton-Cotes公式计算积分的误差为:
η
=
(
b
−
a
)
∑
k
=
0
n
C
k
f
(
x
k
)
−
(
b
−
a
)
∑
k
=
0
n
C
k
[
f
(
x
k
)
+
ϵ
k
]
=
(
b
−
a
)
∑
j
=
0
n
C
k
ϵ
k
\eta=(b-a)\sum_{k=0}^nC_kf(x_k)-(b-a)\sum_{k=0}^nC_k[f(x_k)+\epsilon_k]=(b-a)\sum_{j=0}^nC_k\epsilon_k
η=(b−a)k=0∑nCkf(xk)−(b−a)k=0∑nCk[f(xk)+ϵk]=(b−a)j=0∑nCkϵk
令
ϵ
=
m
a
x
0
≤
k
≤
n
∣
ϵ
k
∣
\epsilon=max_{0\leq k\leq n}|\epsilon_k|
ϵ=max0≤k≤n∣ϵk∣,当Cotes系数全为正时
(
n
≤
7
,
n
=
9
)
(n\leq 7,n=9)
(n≤7,n=9),则
∣
η
∣
≤
(
b
−
a
)
∑
k
=
0
n
∣
C
k
ϵ
k
∣
≤
(
b
−
a
)
ϵ
∑
k
=
0
n
∣
C
k
∣
=
(
b
−
a
)
ϵ
|\eta|\leq (b-a)\sum_{k=0}^n|C_k\epsilon_k|\leq (b-a)\epsilon \sum_{k=0}^n|C_k|=(b-a)\epsilon
∣η∣≤(b−a)k=0∑n∣Ckϵk∣≤(b−a)ϵk=0∑n∣Ck∣=(b−a)ϵ
所以,Newton-Cotes公式是数值稳定的。如果Cotes系数有正有负,则
∑
k
=
0
n
∣
C
k
∣
>
1
\sum_{k=0}^n|C_k|>1
∑k=0n∣Ck∣>1
随着n的增大,该值变得越来越大,并且对 ∣ η ∣ |\eta| ∣η∣的影响越来越大,容易出现数值不稳定现象。因此,高阶 ( n ≥ 8 ) (n\geq 8) (n≥8)的Newton-Cotes公式在实际中很少应用。
3. 截断误差与代数精度
- 截断误差
Newton-Cotes公式是插值型求积公式,故其余项R是Lagrange插值多项式余项的积分:
R
=
∫
a
b
f
(
x
)
d
x
−
∑
i
=
0
n
A
i
f
(
x
i
)
=
∫
a
b
f
(
n
+
1
)
(
ξ
)
(
n
+
1
)
!
∏
i
=
0
n
(
x
−
x
i
)
d
x
,
ξ
∈
[
a
,
b
]
R=\int_a^bf(x)dx-\sum_{i=0}^nA_if(x_i)=\int_a^b\frac{f^{(n+1)}(\xi)}{(n+1)!}\prod_{i=0}^n(x-x_i)dx, \quad \xi\in[a,b]
R=∫abf(x)dx−i=0∑nAif(xi)=∫ab(n+1)!f(n+1)(ξ)i=0∏n(x−xi)dx,ξ∈[a,b]
即
R
=
∫
a
b
f
(
n
+
1
)
(
ξ
)
(
n
+
1
)
!
∏
i
=
0
n
(
x
−
x
i
)
d
x
,
ξ
∈
[
a
,
b
]
R=\int_a^b\frac{f^{(n+1)}(\xi)}{(n+1)!}\prod_{i=0}^n(x-x_i)dx, \quad \xi \in [a,b]
R=∫ab(n+1)!f(n+1)(ξ)i=0∏n(x−xi)dx,ξ∈[a,b]
做积分变换
x
=
a
+
t
h
,
d
x
=
h
d
t
,
x
=
a
,
t
=
0
;
x
=
b
,
t
=
n
x=a+th,dx=hdt,x=a,t=0;x=b,t=n
x=a+th,dx=hdt,x=a,t=0;x=b,t=n,有:
R
=
∫
0
a
f
(
n
+
1
)
(
ξ
)
(
n
+
1
)
!
(
a
+
t
h
−
a
−
0
h
)
(
a
+
t
h
−
a
−
1
h
)
⋯
(
a
+
t
h
−
a
−
n
h
)
h
d
t
R=\int_0^a\frac{f^{(n+1)}(\xi)}{(n+1)!}(a+th-a-0h)(a+th-a-1h)\cdots(a+th-a-nh)hdt
R=∫0a(n+1)!f(n+1)(ξ)(a+th−a−0h)(a+th−a−1h)⋯(a+th−a−nh)hdt
故
R
=
h
n
+
2
(
n
+
1
)
!
∫
0
n
f
(
n
+
1
)
(
ξ
)
∏
k
=
0
n
(
t
−
k
)
d
t
,
ξ
∈
[
a
,
b
]
R=\frac{h^{n+2}}{(n+1)!}\int_0^nf^{(n+1)}(\xi)\prod_{k=0}^n(t-k)dt, \quad \xi\in [a,b]
R=(n+1)!hn+2∫0nf(n+1)(ξ)k=0∏n(t−k)dt,ξ∈[a,b]
在推导几个低阶Newton-Cotes公式的截断误差时,会用到广义积分中值定理。即:
定理1:设函数
g
(
x
)
g(x)
g(x)即
f
(
x
)
g
(
x
)
f(x)g(x)
f(x)g(x)在[a,b]上可积,函数
f
(
x
)
f(x)
f(x)在
[
a
,
b
]
[a,b]
[a,b]上连续,且
m
≤
f
(
x
)
≤
M
m\leq f(x)\leq M
m≤f(x)≤M(m,M为常数),函数
g
(
x
)
g(x)
g(x)在
[
a
,
b
]
[a,b]
[a,b]上不变号,即始终有
g
(
x
)
≤
0
g(x)\leq 0
g(x)≤0或
g
(
x
)
≥
0
g(x) \geq 0
g(x)≥0,则
∫
a
b
f
(
x
)
g
(
x
)
d
x
=
f
(
ξ
)
∫
a
b
g
(
x
)
d
x
,
ξ
∈
[
a
,
b
]
\int_a^bf(x)g(x)dx=f(\xi)\int_a^bg(x)dx, \quad \xi \in[a,b]
∫abf(x)g(x)dx=f(ξ)∫abg(x)dx,ξ∈[a,b]
- 代数精度
定理2:具有n+1个求积节点的Newton-Cotes公式在n为偶数时,其代数精度为n+1次。