复化梯形求积公式

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第二章
1.1
复合梯形求积公式
复合梯形求积公式是复合求积法的一种,在本章中,将从其原理、概念等方面对它做一个详细介绍。

在本章的最后,会对复合梯形求积法进行程序设计,使得可以从不同的方面对这种方法有更深的理解。

1.1.1 复合梯形求积公式的理论
当积分区间[a ,b]的长度较大,而节点个数1+n 固定时,直接使用Newton-Cotes 公式的余项将会较大。

但是如果增加节点个数,即1+n 增加时,公式的舍入误差又很难得到控制。

为了提高公式的精度,又使算法简单易行,往往使用复化方法。

即将积分区间][b a ,
分成若干子区间,然后在每个小区间上使用低阶Newton-Cotes 公,最后将每个小区间上的积分的近似值相加,这就叫做复合求
积法。

而复合梯形求积公式就是复合求积法的一种。

1.1.2复合求积公式的原理
将区间[]b a ,划分为n 等分,分点,,,1,0,,n k n
a
b h kh a x k =-=
+= 在每个子区间[](),1,,1,0,1-=+n k x x k k 上采用梯形公式,则得
[])
()()(2)()(11
1
1
f R x f x f h dx x f dx x f I n k n k k b
a
n k x x k k
++===+-=-=∑⎰∑⎰
+

()[()]()[()()]∑∑-=+-=++=+=1
1
110222n k b k k n k k n x f x f a f h
x f x f h T , (1.1)
称为复合梯形公式,其余项可由
)().
,(),(12
][''3
b a f a b f R ∈--
=ηη

()()()
11
0''3,12+-=∈⎥⎦

⎢⎣⎡-=-=∑k k k n k k n n x x f h T I f R ηη
由于[],,)(2b a C x f ∈ 且
()(),max 1min 1010
'
''
'10-≤≤-=-≤≤≤≤∑n k k n k k n k f n f ηη
所以()b a ,∈∃η使
()()k n k f n f ηη∑-==10
'
''
'1
于是复合梯形公式的余项为
()()η'
'212
f h a b f R n --
= 可以看出误差是2h 阶,且由
()()η'
'212
f h a b f R n --
= 式立即得到,当][b a C x f ,)(2∈时,则
(),lim dx x f T b
a n n ⎰=∞

即复合梯形公式是收敛的.事实上只要设()[]b a C x f ,∈,则可得收敛性,只要把n T 改写成为
()()]∑∑=-=-+⎢⎣⎡-=n
k k n k k n x f n a b x f n a b T 1
1021
当∞→n 时,上式右端括号内的两个和式均收敛到积分()dx x f b
a ⎰,所以复合梯形
公式(1.1)
收敛.此外,n T 的求积系数为正,由定理可知复合梯形公式是稳定的。

1.2 复合梯形求积公式的实例
如果在区间(a ,b)上直接应用梯形公式则可得()a b h -=1:
()[()]()[()]b f a f a b b f a f h
T +-=+=
2
21 若在区间(a ,b)中,增加一个结点()2b a c +=,则把区间(()b a ,分成两个
小区间()c a ,与()b c ,,在两个小区间上分别应用梯形公式,然后相加就会得出新
的求积公式T 2:(其中()2212a b h
h -==)
()[()]()[()]b f c f h c f a f h T +++=2
22
22
=)]()2(2)([22b f b
a f a f a
b +++⨯-
继续增加结点,把区间()b a ,分成4等分,()()()(),,,,,,,,332211b x x x x x x a 在每个小区间上分别应用梯形公式后再相加,就会得出新的求积公式:
()[()]()[()]()[()]()[()]b f x f h x f x f h x f x f h x f a f h T +++++++=
3432421414
42
222
(){()}b f b a f b a f b a f a f a b +⎥⎦
⎤⎪⎭⎫ ⎝⎛++⎪⎭⎫
⎝⎛++⎢⎣⎡⎪⎭⎫
⎝⎛++⨯-=
43243242 ()⎪⎭
⎫ ⎝⎛-==4224a b h h 其中 其中()4,...,1,0,4=+=k kh a x k
同理,把区间(a ,b)分成8等分时,可得求积公式T 8:
(){()}b f b a f b a f b a f b a f b a f b a f b a f a f a b T +⎥⎦
⎤⎪⎭⎫ ⎝⎛++⎪⎭

⎝⎛++⎪⎭
⎫ ⎝⎛++⎪⎭⎫
⎝⎛++⎪⎭⎫ ⎝⎛++⎪⎭⎫ ⎝⎛++⎢⎣⎡⎪⎭
⎫ ⎝⎛++⨯-=
87862853844835826872828
上面我们将区间()b a ,分成k
2等分,是为了在计算后面的数值时,充分利用到前面的数据。

在一般情况下,若把区间()b a ,(分成n 等分,记结点为
,,kh a x k +=,()()n a b h n k /,,...,2,1,0-==在每一个小区间[x k ,x k -1]上应用梯形公
式,则有:
()()dx
x f dx x f n k x x b
a
k k ∑⎰⎰-=+=101
()[()]112
+-=
+≈∑
k k n k x f x f h
()()()]b n k k x f x f a f +⎢⎣

+=∑-=1
122h
就可导出复合梯形公式
()()()]b n k k n x f x f a f n a b T +⎢⎣⎡+-=∑-=1
1
22 利用梯形公式的余项公式(5.2.3),可得复合梯形公式的截断误差为:
()()()()(),''12''12
33
2ξξf n
a b f h a b T R n --=--= ()b ,a ∈ξ
例1 利用复合梯形公式计算积分:
⎰+1
21dx 4x
该积分的精确值是141592654.3=π。

此时1,0==b a ,下面分别用T 1、T 2、T 4、T 8进行计算。

函数f(x)=4/(1+x 2)在各结点上的值可列表如下:
k x 0 1/8 2/8 3/8 4/8 ()k x f 4.00000 3.93846 3.76470 3.50685 3.20000
k x 5/8 6/8 7/8 1 ()k x f
2.87640
2.56000
2.26549
2.00000
()[()]3105.01=+=f f T
()[()
()]1000.312
120412=++⨯=f f f T
(){()[()()]()}13117.314/34/24/120f 8
14=++++⨯=f f f f T
(){()[()()()()()()]
()}13198
.318
7868584
838281201618=++++++++⨯=f f f f f f f f f T
T 8
与准确值之间的误差为:,328105.01026.0⨯<⨯≈-T π即T 8只有三位有效数字。

如果要求误差不超过6
10-,就必须对函数f(x)=4/(1+x 2)的二阶导数在区
间[0,1]上的最大值作出估计。

因为:
()
2
218'x x
y +-=
,(
)()
3
2211
8''x x y +-=
,()
()
01232'''4
22
>+-=x x x y
可见"y 在区间[0,1]上是单调增函数,"y (0)=-8,"y (1)=0,因此,M ="
max ]1,0[y x ∈=8,则T n 的截断误差为:R(T n )=M n a b 2312)(-=22
332
812)01(n n =⨯- 若要求2
32n ≤610-,即>2n 6
1032⨯,则≥n 817。

由这个例题可以看出,梯形公式的精确度比较低,收敛也比较慢,因此,梯形公式并不直接用来计算积分,而是为其它的积分法(如龙贝格积分法)提供初始数据,在那里,由梯形公式得出的这些不够准确的近似值,将被一些简单的运算加工后变得非常准确。

1.3复合梯形求积公式算法的程序设计
一 实验内容
用复合梯形公式计算函数
32)(x x x f -=
在区间[0,0.6]上的弧长s. 二 算法原理 对于积分
()dx x f I a ⎰=b
数值方法的基本思想是用被积函数()x f 在某些节点k x 处所对应的函数值做线性组合
()k n
k k n x f A I ∑==0
来做近似。

我们可以从不同角度来构造就求积公式,常用的方法是利用插值多项式
()x f L n ≈
来获得求积公式(称之为差值型求积)。

Newton-Cotes 公式是在等距节点下的特殊插值型求积公式,但做实际计算时,往往出现数值不稳定,精度难以保证,所以采用复合求积法。

低级复合求积法是把积分区间[]b a ,分成若干小区间,分别在每一个小区间上用基本公式(如低阶的N-C 公式:梯形,Simpson ,cotes 公式等)做近似,然后求和,从而导出求定积分的数值公式。

一般在[a,b]上n 等分,取步长b a
h n -=,节点k x a kh =+,每个小区间
[i x ,1i x +]上用梯形公式
1
1()[()()],2
i i
x i i x h
f x dx f x f x ++=+⎰, 根据积分区间的可加性的复合梯形求积公式为
11
101
[()()][()2()()],22n n n i i k k k h h
T f x f x f a f x f b --+===+=++∑∑
然后计算可得答案
三 变量说明 a :存放区间下限 b :存放区间上限
f[x]:存放被积分函数
()32x x x f -=
h:存放节点步长
n:存放复合梯形公式的节点等分次数
s:存放弧长
四源程序代码
#include"stdio.h"
#include"math.h"
main ()
{
int n=8,k;
double a=0,b=0.6;
double x,s;
double h=(b-a)/8;
double f[9];
double s1=0;
for(k=0;k<=8;k++)
{
x=a+k*h;
f[k]=sqrt(1+(2*x-3*x*x)*(2*x-3*x*x));
}
for(k=1;k<=7;k++)
{
s1=s1+f[k];
}
s=h/2*(f[0]+2*s1+f[8]);
printf("%f\n",s);
}
五输出结果
0.619092。

相关文档
最新文档