3. 求积公式的代数精度
求积公式的精度可以用余项R来表示,即:
∫
a
b
f
(
x
)
d
x
=
∑
k
=
0
n
A
i
f
(
x
i
)
+
R
\int_a^bf(x)dx=\sum_{k=0}^nA_if(x_i)+R
∫abf(x)dx=k=0∑nAif(xi)+R
一般地,R越小,表明求积公式的精度越高。但是,当被积函数
f
(
x
)
f(x)
f(x)是多项式时,R却表现出某种特性,即某一确定的求积公式,对某些多项式的积分是精确的,而对另外一些多项式的积分是不精确的。
为了更好地刻画求积分精度的这种性质,需要引入下面代数精度的概念:
定义1:如果求积公式(1)对于一切次数小于和等于n的多项式的积分是准确的,而对次数为n+1的多项式的积分至少有一个是不准确的,则称该求积公式具有n次代数精度,或称该公式是n阶的。
在具体考察一个求积公式的代数精度时,用某求积公式计算被积函数 f ( x ) = x k f(x)=x^k f(x)=xk的积分,如果在 k = 0 , 1 , 2 , ⋯ , n k=0,1,2,\cdots,n k=0,1,2,⋯,n时均是准确的,而在 k = n + 1 k=n+1 k=n+1时不是准确的。那么就可以确定该求积公式的代数精度是n次而不必再继续考察其对所有的n+1次多项式的积分是否精确成立。
在一般情形下,就用代数精度来衡量一个求积公式的精度。
定理1:对于任意给定的n+1个互异的节点:
a
=
x
0
<
x
1
<
x
2
<
⋯
,
x
n
=
b
a=x_0<x_1<x_2<\cdots,x_n=b
a=x0<x1<x2<⋯,xn=b
总存在系数
A
0
,
A
1
,
A
2
,
⋯
,
A
n
A_0,A_1,A_2,\cdots,A_n
A0,A1,A2,⋯,An,使得求积公式(1)至少具有n次代数精度。
4. 求积公式的构造方法
- 待定系数法
待定系数法就是以代数精度为标准来构造求积公式(1)。
例如:构造一个形如(1)式的求积公式,使其具有一次代数精度。此求积公式的具体形式为:
∫
a
b
f
(
x
)
d
x
=
A
0
f
(
a
)
+
A
1
(
b
)
\int_a^bf(x)dx=A_0f(a)+A_1(b)
∫abf(x)dx=A0f(a)+A1(b)
利用代数精度的概念,可得以下两个方程式:
(1)令 f ( x ) = 1 f(x)=1 f(x)=1,则有 A 0 + A 1 = b − a A_0+A_1=b-a A0+A1=b−a。
(2)令 f ( x ) = x f(x)=x f(x)=x,则有 A 0 a + A 1 b = ( b 2 − a 2 ) / 2 A_0a+A_1b=(b^2-a^2)/2 A0a+A1b=(b2−a2)/2.
解得
A
0
=
A
1
=
(
b
−
a
)
/
2
A_0=A_1=(b-a)/2
A0=A1=(b−a)/2
因此,以区间两端点a、b为节点的两点求积公式为:
A
0
=
A
1
=
(
b
−
a
)
/
2
A_0=A_1=(b-a)/2
A0=A1=(b−a)/2
因此,以区间两端点
a
、
b
a、b
a、b为节点的两点求积公式为:
T
=
b
−
a
2
[
f
(
a
)
+
f
(
b
)
]
T=\frac{b-a}{2}[f(a)+f(b)]
T=2b−a[f(a)+f(b)]
该式即为梯形求积公式。也就是说,梯形求积公式仅具有一次代数精度。
一般地,对于n+1求积节点
x
i
(
i
=
0
,
1
,
2
,
⋯
,
n
)
x_i(i=0,1,2,\cdots,n)
xi(i=0,1,2,⋯,n),若构造一个求积公式(1),使其具有n次代数精度,则必须使其当
f
(
x
)
=
1
,
x
,
x
2
,
⋯
,
x
n
f(x)=1,x,x^2,\cdots,x^n
f(x)=1,x,x2,⋯,xn
时均能准确成立,即可得到如下的方程组:
{
A
0
+
A
1
+
⋯
+
A
n
=
b
−
a
A
0
x
0
+
A
1
x
1
+
⋯
+
A
n
x
n
=
(
b
2
−
a
2
)
/
2
⋯
A
0
x
0
n
+
A
1
x
1
n
+
⋯
+
A
n
x
n
n
=
(
b
n
+
1
−
a
n
+
1
)
/
(
n
+
1
)
(2)
\begin{cases} A_0+A_1+\cdots+A_n=b-a \\ A_0x_0+A_1x_1+\cdots+A_nx_n=(b^2-a^2)/2 \\ \cdots \\ A_0x_0^n+A_1x_1^n+\cdots+A_nx_n^n=(b^{n+1}-a^{n+1})/(n+1) \end{cases} \tag{2}
⎩⎪⎪⎪⎨⎪⎪⎪⎧A0+A1+⋯+An=b−aA0x0+A1x1+⋯+Anxn=(b2−a2)/2⋯A0x0n+A1x1n+⋯+Anxnn=(bn+1−an+1)/(n+1)(2)
对于方程组(2):
(1)若 x i ( i = 0 , 1 , 2 , ⋯ , n ) x_i(i=0,1,2,\cdots,n) xi(i=0,1,2,⋯,n)已给定,则方程组(2)只有n+1个待定系数 A 0 , A 1 , ⋯ , A n A_0,A_1,\cdots,A_n A0,A1,⋯,An,是一个线性方程组;当 x i ( i = 0 , 1 , 2 , ⋯ , n ) x_i(i=0,1,2,\cdots,n) xi(i=0,1,2,⋯,n)互异时,其系数矩阵行列式——范德蒙行列式不为零,故方程组有惟一解,这样就可以求出全部的系数 A 0 , A 1 , ⋯ , A n A_0,A_1,\cdots,A_n A0,A1,⋯,An,而且构造的求积公式(1)至少具有n次代数精度。
当 x i ( i = 0 , 1 , 2 , ⋯ , n ) x_i(i=0,1,2,\cdots,n) xi(i=0,1,2,⋯,n)为等距节点时,构造的求积公式称为Newton-Cotes(牛顿-柯特斯公式)。
(2)若
A
i
A_i
Ai和
x
i
(
i
=
0
,
1
,
2
,
⋯
,
n
)
x_i(i=0,1,2,\cdots,n)
xi(i=0,1,2,⋯,n)均为待定,则方程组(2)具有(2n+2)个待定系数
A
0
,
A
1
,
⋯
,
A
n
A_0,A_1,\cdots,A_n
A0,A1,⋯,An和
x
0
,
x
1
,
⋯
,
x
n
x_0,x_1,\cdots,x_n
x0,x1,⋯,xn。为求出这些系数,必须使求积公式(1)当
f
(
x
)
=
x
k
(
k
=
0
,
1
,
2
,
⋯
,
2
n
+
1
)
f(x)=x^k(k=0,1,2,\cdots,2n+1)
f(x)=xk(k=0,1,2,⋯,2n+1)时均准确成立,即使之具有
2
n
+
1
2n+1
2n+1次代数精度,从而得到2n+2个方程构造的高阶非线性方程组:
{
A
0
+
A
1
+
⋯
+
A
n
=
b
−
a
A
0
x
0
+
A
1
x
1
+
⋯
+
A
n
x
n
=
(
b
2
−
a
2
)
/
2
⋯
A
0
x
0
2
n
+
1
+
A
1
x
1
2
n
+
1
+
⋯
+
A
n
x
n
2
n
+
1
=
(
b
2
n
+
2
−
a
2
n
+
2
)
/
(
2
n
+
2
)
(3)
\begin{cases} A_0+A_1+\cdots+A_n=b-a \\ A_0x_0+A_1x_1+\cdots+A_nx_n=(b^2-a^2)/2 \\ \cdots \\ A_0x_0^{2n+1}+A_1x_1^{2n+1}+\cdots+A_nx_n^{2n+1}=(b^{2n+2}-a^{2n+2})/(2n+2) \end{cases} \tag{3}
⎩⎪⎪⎪⎨⎪⎪⎪⎧A0+A1+⋯+An=b−aA0x0+A1x1+⋯+Anxn=(b2−a2)/2⋯A0x02n+1+A1x12n+1+⋯+Anxn2n+1=(b2n+2−a2n+2)/(2n+2)(3)
解方程组(3)得到
A
i
A_i
Ai和
x
i
(
i
=
0
,
1
,
2
,
⋯
,
n
)
x_i(i=0,1,2,\cdots,n)
xi(i=0,1,2,⋯,n),这样构造的求积公式称为Guass(高斯)求积公式。
- 插值公式构造法
在
I
=
∫
a
b
f
(
x
)
d
x
I=\int_a^bf(x)dx
I=∫abf(x)dx中,如果采用Lagrange插值多项式
p
n
(
x
)
=
∑
k
=
0
n
l
k
(
x
)
⋅
f
(
x
k
)
p_n(x)=\sum_{k=0}^nl_k(x)·f(x_k)
pn(x)=k=0∑nlk(x)⋅f(xk)
其中
l
k
(
x
)
=
∏
i
=
0
,
i
≠
k
n
x
−
x
i
x
k
−
x
i
l_k(x)=\prod_{i=0,i\neq k}^n\frac{x-x_i}{x_k-x_i}
lk(x)=i=0,i=k∏nxk−xix−xi
来近似地代替
f
(
x
)
f(x)
f(x),则有:
∫
a
b
f
(
x
)
d
x
≅
∫
a
b
p
n
(
x
)
d
x
=
∫
a
b
∑
k
=
0
n
l
k
(
x
)
f
(
x
k
)
d
x
=
∑
k
=
0
n
∫
a
b
l
k
(
x
)
d
x
⋅
f
(
x
k
)
\int_a^bf(x)dx \cong\int_a^bp_n(x)dx=\int_a^b\sum_{k=0}^nl_k(x)f(x_k)dx=\sum_{k=0}^n\int_a^bl_k(x)dx·f(x_k)
∫abf(x)dx≅∫abpn(x)dx=∫abk=0∑nlk(x)f(xk)dx=k=0∑n∫ablk(x)dx⋅f(xk)
令
A
k
=
∫
a
b
l
k
(
x
)
d
x
(4)
A_k=\int_a^bl_k(x)dx \tag{4}
Ak=∫ablk(x)dx(4)
得
∫
a
b
f
(
x
)
d
x
≅
∫
a
b
p
n
(
x
)
d
x
=
∑
k
=
0
n
A
k
⋅
f
(
x
k
)
(5)
\int_a^bf(x)dx\cong \int_a^bp_n(x)dx=\sum_{k=0}^nA_k·f(x_k) \tag{5}
∫abf(x)dx≅∫abpn(x)dx=k=0∑nAk⋅f(xk)(5)
在求积公式(1)中,如果求积系数
A
k
(
k
=
0
,
1
,
2
,
⋯
,
n
)
A_k(k=0,1,2,\cdots,n)
Ak(k=0,1,2,⋯,n)由(4)式计算得到,则称该求积公式为插值型的。相应地公式(5)称为插值型求积公式。
定理2:由n+1个求积节点构造的求积公式(1)至少有n次代数精度的充要条件是该公式是插值型的。