计算方法讲义:七 数值积分
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第七章 数值积分
如果函数f(x)在区间[a,b]上连续,且原函数为F(x),则可用牛顿―莱布尼兹
公式:)()()(a F b F dx x f b a
-=⎰来求得定积分。然而很多函数无法用牛顿―莱布尼兹公式求积分。
一个简单被积函数,例如,其不定积分可能很
复杂,见下面的MA TLAB 实例: >> syms a b c x
>> int(sqrt(a+b*x+c*x*x),x)
ans=1/4*(2*c*x+b)/c*(a+b*x+c*x^2)^(1/2)+1/2/c^(1/2)*log((1/2*b+c*x )/c^(1/2)+(a+b*x+c*x^2)^(1/2))*a-1/8/c^(3/2)*log((1/2*b+c*x)/c^(1/2)+(a+b*x+c*x^2)^(1/2))*b^2
所以有必要研究简单、高效的计算定积分的方法(即数值积分方法)。数值积分的基本思想是构造一个简单函数P n (x )来近似代替被积分函数f (x ),然后通过求⎰b
a n dx x P )(得⎰b
a dx x f )(的近似值。
7.1 插值型求积公式
设⎰=b
a dx x f I )(*,插值型求积公式就是构造插值多项式P n (x ),使
⎰=≈b
a n dx x P I I )(*
。
构造以a ,b 为结点的线性插值多项式)()()(1b f a
b a
x a f b a b x x P --+--=
,[])()()(21)()()(1b f a f a b dx b f a b a x a f b a b x dx x P T b
a b
a +-=⎥⎦
⎤
⎢⎣⎡--+--==⎰⎰称为梯形公式。
以a , 2
b
a c +=
,b 为三个插值节点,构造二次插值多项式)()
)(()
)(( )())(())(()())(())(()(2b f c b a b c x a x c f b c a c b x a x a f b a c a b x c x x P ----+----+----=
,
则可以推出)()()()(2102b f c f a f dx x P S b
a
λλλ++===⎰,)(6
1
))(())((0a b dx b a c a b x c x b
a
-=----=⎰
λ,
)(64))(())((1a b dx b c a c b x a x b
a
-=----=⎰
λ,)(6
1
))(())((2a b dx c b a b c x a x b a -=----=⎰λ。由此得公式:[])()(4)(6
b f
c f a f a
b S ++-=
,称为辛卜生(Sinpson )求积公式。 根据经典拉格朗日插值公式)()()(0
k n
k k n x f x l x P ∑==,代入求定积分则
有)()()()(0
k n
k b a k k n
k b
a k x f dx x l dx x f x l I ⋅==∑⎰∑⎰==,引入记号dx x l b
a k k )(⎰=λ,
)(0
k n
k k x f I ∑==λ,λk 为求积系数,x k 为求积节点。注意:一积分结果为函
数值的一个代数和,二是a
b dx x l n
k b
a k -=∑⎰=0
)(。
如果积分区间比较大,直接使用上述求积公式精度难以保证。可
对f (x )用分段抛物插值。通常采取的办法是复化求积方法: (1)等分求积区间,比如取步长n
a
b h -=
,分[a, b]为n 等分,分点为kh x x k +=0,k = 0, 1, 2,…, n 。
(2)在区间 [x k , x k+1]上使用以上求积公式求得I k 。 (3)取和值∑-==1
0n k k I I 作为整个区间上的积分值。
将梯型公式和辛卜生公式应用于各子区间[]1,+k k x x ()1,,0-=n k 上得到子区间的定积分,再将子区间的定积分加起来得到整个区间的定积分近似值,相关公式称为复化梯型公式和复化辛卜生公式。相对于
复化梯型公式,复化辛卜生公式是一种精度较高的求积公式。例如对于复化梯型公式,令[])()(2
1++=k k k x f x f h
I ,则
∑-==1
0n k k n I T [])()(211
0+-=+=∑k k n k x f x f h ⎥⎦
⎤
⎢⎣⎡++=∑-=)()(2)(21
1b f x f a f h n k k
x k 0 1/8 1/4 3/8 1/2 5/8 3/4 7/8 1 f (x k ) 4 3.93846 3.7647 3.50685 3.2 2.8764 2.46 2.26549 2 例 利用数据表计算积分 dx x
I ⎰+=1
2
*
14
( 1415926.3|arctg 410*===πx I )。解:取n = 8用复化梯形公式:
()13899
.31872432852212832412812)0(21818=⎥
⎦⎤+⎪⎭⎫
⎝⎛+⎪⎭⎫ ⎝⎛+⎪⎭⎫ ⎝⎛+⎢⎣⎡⎪⎭⎫ ⎝⎛+⎪⎭⎫ ⎝⎛+⎪⎭⎫ ⎝⎛+⎪⎭⎫ ⎝⎛+⨯=f f f f f f f f f T 7.2 变步长梯形方法
使用复化求积公式须给出合适的步长,步长太大精度难保证,步长太小会增加计算量,事先给出一个合适的步长是十分困难的。递推公式避免了老节点的重复计算,使计算量减少了一半。
变步长积分法思想是将区间逐次对分,比较前后两次计算结果,
若满足精度要求就停止,否则再次对分,直到到达精度要求为止。设将区间[a, b] n 等分,共有n+1个分点,按复化梯形公式计算T n ,需要计算n+1个f (x )的值。T 2n 的全部分点中有n+1个是原有的点。小区间[x k , x k +1]经过二分增加分点2
1
+k x 后,用复化梯形公式得积分为:
[]
)()(2)(4
121++++=
k k k k x f x f x f h
I ,因此有
[]
[]∑∑∑∑
-=+-=+-=+++-=+=++=++=1
1
010111
2)
(221)
(2)()(4)
()(2)(4212121n k k n n k k n k k k k k k n k n x f h T x f h x f x f h x f x f x f h
T