第11 页 共 52 页
一般说来,在积分区间[a,b]内,选取的点数越多,则计算的精度越高,但计算公式越复杂,计算工作量越大。
牛顿-柯特斯公式的具体构造方法如下: 把区间[a,b] n等分,其分点为
x1?a?ih,i?0,1,2,?,n, h?b?a n过这n+1个点,构造一个n次多项式
nPn(x)??i?0?(x)f(x1)
(x?x1)?'(x)其中?(x)?(x?x0)(x?x1)?(x?xn),用Pn(x)代替被积函数f(x),则有
n?baf(x)dx??Pn(x)dx??(?aai?0bb?(x)f(x1))dx
(x?x1)?'(x)n?(x)dx)f(x1)??A1f(x1) (1.3.1) ??(?a(x?x)?'(x)i?1i?01nb其中
b A1??a?(x)dx
(x?x1)?'(x)公式(1.3.1)叫做牛顿-柯特斯公式,使用牛顿-柯特斯公式的关键是计算系数Ai,用变量替换x=a+th,于是
a?th?) ?(x)??(n?1h?t(t?1)?(t n)而
第12 页 共 52 页
n?1) ?'(x)?hn?((1)i?(!n)?i(
)!这样
bn?(x)hn?1t(t?1)?(t?n)dx??nhdt n?i0(x?x1)?'(x)h(?1)(i!)(n?1)!h(t?i)A1??a(?1n)?ihntt(??1)t?(n) ? dt0i!(n?i)?!t?(i)引进记号
nt(t?1)?(t?n)(?1)n?1?dt ?0n(i!)(n?i)!(t?i) c(n)1则
A1?(b?a)c1(n)
这时,ci(n)是不依赖于函数f(x)和区间[a,b]的常数,可以事先计算出来,叫牛顿-柯特斯系数。经过计算我们可以得到n取任意值的牛顿-柯特斯系数表,如下表,其计算程序见附录1。
表一:牛顿-柯特斯系数表
第13 页 共 52 页
n ci(n) 1 1,1 222 1,4,1 6663 1,3,3,1 88884 2716167,,,, 9045154590192525192525,,,,, 28896144144962884134419999,,,,,, 840352801052803584075135774929892989493577751,,,,,,, 1728017280640172801728064017280172809892944646524845452486462944989,,?,,?,,?,, 283501417514175141752835141751417514175283505 6 7 8 ? ? 同理可以求出n=7,8,?诸级柯特斯系数,但是当n较大时,比如n=8时,系数中出现了负数,系数有正有负,这将使牛顿-柯特斯公式舍入误差增大,甚至大得使求积公式产生了不稳定。我们将会在后面的第四部分举出实例来证明这一点。因此,在实际计算中不用n较大的柯特斯公式,而是将区间[a,b]分成若干个小区间,在每个小区间上应用n较小的柯特斯公式进行计算。
实际上,n较小的牛顿-柯特斯公式在精度要求不是很高时已经可以体现出一定的优越性了,这里我们给出一个简单的例题证明这一点。
例题:利用梯形求积公式,抛物线求积公式和牛顿-柯特斯公式(取n=4)计算定积分
第14 页 共 52 页
2?
解:(1)梯形求积公式
2?10.510.5xdx
0.5xdx?2?(0.5?1)?0.8535534
20.5xdx?2?(0.5?40.75?1)?0.86186806
60.5xdx?2?(70.5?320.625?120.75?320.875?7)?0.86192814
9023xdx?2?x23(2)抛物线求积公式
2?10.5(3) 牛顿-柯特斯求积公式(取n=4)
2?10.5而积分的准确值为
2?10.510.5?0.86192882
由此可见,利用梯形求积公式,抛物线求积公式和牛顿-柯特斯公式(取n=4)计算所得结果与准确值之间的误差分别约为:0.00837542,0.00006076,0.00000068。求同一个问题的积分牛顿-柯特斯公式的误差比抛物线公式的误差小,而抛物线公式的误差又比梯形公式的误差要小。
2 数值方法中的加速收敛及Romberg积分法
上面一节介绍的三种求积法虽然简单易行,但是收敛速度缓慢。从理论上来讲,不断地将区间二分,总可以达到预先设定的精度要求。不过,每次将区间二分一次就会增大一倍的计算量,如果精度要求较高,这些方法会因为计算量过大而不可取。我们期望有一种收敛速度快、计算量小的积分法,这种方法就是要介绍的龙贝格积分法。
2.1 Romberg 积分法的构造
Romberg积分的基本思想是:用计算精度较低的先后两次积分近似值,通过
第15 页 共 52 页
误差补偿的办法来获取收敛速度较快的一种积分方法。
在第二节中讨论梯形积分法的误差估计时我们得到:
积分的近似值In的截断误差与步长的平方成正比。当步长折半后,则T2n的截断误差将仅为原误差的1/4。即得:
b?a2f''(?')h2nI?T2n1*12(表示积分的精确值) I??*b?aI?Tn42?f''(?)hn12*?将上式稍加整理,得:
1 I*?T2n?(T2n?Tn)
3由此式可知,只要步长折半前后两个积分近似值之差足够小,就能保证积分的截断误差I*?T2n也足够小,也就是说,只要
T2n?Tn??
就能判断下式
I*?T2n??
也成立。这个结论很重要,因为步长折半前后的两个积分近似值很容易求得,只要他们的差满足精度要求,就能判定积分近似值T2n必然满足精度要求。
I*?T2n1? 在 *I?Tn4式中,I*表示积分的精确值, Tn 、T2n分别表示将区间n和2n等分后,用梯形法得到的积分近似值。
将上式移项整理得:
1 I*?T2n?(T2n?Tn)
31此式说明积分近似值T2n的误差约等于(T2n?Tn),将这个误差作为一种补偿
3加到T2n上,可以期望得到更精确的积分值。事实上,将上式移项得:
141 I*?T2n?(T2?T)?T?Tn nnn2333