当前位置:
文档之家› Mathematica 之 “数值积分方法”
Mathematica 之 “数值积分方法”
事实上,由积分中值定理可求得梯形求积公式的截断误差:
f ' ' ( ) b R1 ( x a)( x b)dx a 2! f ' ' ( ) (b a)3 , a b 12
辛普生求积公式的截断误差
由积分中值定理可求得辛普生求积公式的截断误差:
2
R2
f
( 4)
n 段 :
a x0 x1 x2 xn1 xn b
在每个小区间 [xi-1, xi] ( i = 1, …, n)上应用求积法则,将 得到复化求积法则。
复化中点法则
xi 1 xi I ( f ) M ( f ) xi xi 1 f 2 i 1
第 4 节 数值积分方法
4.1 数值积分的概念
关于积分,有Newton-Leibniz公式
b
a
f ( x)dx F (b) F (a)
但是,在很多情况下,还是要数值积分:
1、函数有离散数据组成 2、F(x)求不出 3、F(x)非常复杂 定义数值积分如下:是离散点上的函数值的线性组合
I n ( f ) ai f ( xi )
i 1
n
f ( xi 1 ) f ( xi ) 2
复化梯形积分公式
做等距节点
ba h , xi a ih, i 0, , n n
xi1
xi
h h3 f ( x) ( f ( xi ) f ( xi 1 )) f ' ' (i ) 2 12
n 1
h h3 Tn ( f ) ( f ( xi ) f ( xi 1 )) f ' ' ( i ) 12 i 0 2 n 1 1 1 n 1 h 3 h f (a) f ( xi ) f (b) f ' ' ( i ) 2 i 1 2 i 0 12
i 0
n
称为积分系求和 有限求和
被积函数在有限个点上取样 求积法则(quadrature rule)
n -点求积规则(通过 n 点的计算) :
I ( f ) wi f ( xi ) Rn
i 1
n
I ( f ) wi f ( xi )
b
a b f (b) f (a ) ( x a)( x b) f 2 2
b
I ( f ) f ( x)dx p3 ( x)dx
a a
a b f (b) f (a) b ( x a)( x b)dx f 2 a a 2 ba ab f ( a ) 4 f ( ) f ( b ) 6 2
梯形法则
f (b) f (a) p2 ( x ) f ( a ) ( x a) ba
I ( f ) f ( x)dx p2 ( x)dx
a a b b
f (b) f (a) f (a) ( x a) dx a ba ba f (b) f (a) 2
自适应求积
例如:在整个最初区间上使用求积法则;
如果误差要求达不到,将区间二分割,在每一个子区间上应用求
积法则。 如果两个子段上的误差之和仍达不到要求,将误差最大的区间进 一步二分割,在每一个子区间上应用求积法则。 直到误差要求最终达到。
自适应求积
在被积函数变化最迅速的区域取样最密集。
这样一种自适应策略构成了大多数积分子程序的基础。
设
, x3 (a b) / 2
z j 1
f j 1 p j 1 ( x j 1 )
可得三点牛顿插值多项式:
j 1 ( x j 1 )
p3 ( x) p2 ( x) z33 ( x) y3 p2 ( x3 ) p2 ( x ) 3 ( x) 3 ( x3 ) y3 p2 ( x3 ) p2 ( x ) ( x x1 )( x x2 ) ( x3 x1 )( x3 x2 )
自适应数值积分计算
①先看看事后误差估计(不同的误差表达式,事后误差估计式是不同的) 以复化梯形公式为例
I ( f ) Tn ( f )
(b a) 2 h f ' ' ( ) 12
2
n等分区间
(b a) h I ( f ) T2 n ( f ) f ' ' ( ) 12 2
正确的四舍五入结果 : 0.746842
几种计算结果的比较:
4.2.1
误差估计
通过泰勒级数展开的方法进行估计 : 在中点
m (a b) / 2 附近展开:
f ' ' ( m) ( x m) 2 2! ( 4) f ' ' ' ( m) f ( m) ( x m) 3 ( x m) 4 3! 4!
n
与中点法则相联系的误差估计
与子区间[xi-1, xi]相联系的误差是:
1 (b a) 3 Ri f ' ' (m)x , x 24 n
在区间 [a,b] 上总的误差为:
nRi nx O(n 2 )
3
复化梯形法则
I ( f ) T ( f ) xi xi 1
2 1 1/ 2 e dx ( e e ) 2.185 2 1
2
1 x
1 x 2 1 x f ( x) e , f ' ( x) 2 e , f ' ' ( x) 3 4 e x x x
1 x
1
1
max f ' ' ( x) f ' ' (1) 8.1548
其中
k xk 8
运算量基 本相同
= 3.138988494
k 1 S4 f (0) 4 f ( xk ) 2 f ( xk ) f (1) 其中 xk 24 8 odd even
= 3.141592502
4.3.2 自适应求积
函数变化有急有缓,为了照顾变化剧烈部分的误差,我们需要加 密格点。对于变化缓慢的部分,加密格点会造成计算的浪费。建立一 种算法,可以自动在变化剧烈的地方加密格点计算,而变化缓慢的地 方,则取稀疏的格点。 带有误差估计的复化求积法则可以用于产生一个自动求积程序: 通过继续分割子区间,直到误差估计达到要求的数值之下。
误差
复化辛普生积分公式的误差估计
在子区间 [xi-1, xi]
上的误差 :
5
Ri f (iv) (m)x
在区间 [a,b] 上总的误差:
nRi O(n4 )
数值积分举例
例:计算
4 dx 0 1 x2
1
7 1 解:T8 f (0) 2 f ( xk ) f (1) 16 k 1
b
4 p 2( x)dx ( a b) 2
例4.1 求下面积分近似 : 数值结果 :
I ( f ) e dx
x2 0
1
M ( f ) (1 0)e 0.25 0.778801
1 0 1 T ( f ) (e e ) 0.683940 2
1 0 S ( f ) (e 4e 0.25 e 1 ) 0.747180 6
f ( x) f (m) f ' (m)( x m)
从a到b对x积分,再将m=(a+b)/2代入得(x偶次幂项为零):
f ' ' (m) f ( 4) (m) 3 I ( f ) f (m)(b a) (b a) (b a)5 24 1920
梯形求积公式的截断误差
( ) ab ( x a) x ( x b)dx a 4! 2
b
f ( 4 ) ( ) (b a)5 , a b 2880
数值积分及误差计算举例
例题:试梯形公式计算积分 解:用梯形公式计算:
e
1
2
1 x
dx
的近似值,并估计截断误差。
n 1
2h ( 2h) 5 ( 4 ) S n ( f ) ( f ( x2i ) f ( x2i 1 ) f ( x2i 2 )) f ( i ) 2880 i 0 6 m 1 m 1 h m1 (2h)5 ( 4) f (a) 4 f ( x2i 1 ) 2 f ( x2i ) f (b) f (i ) 3 i 0 i 1 i 0 2880
近似有: f ' ' ( )
2n等分区间
1 f ' ' ( ) I ( f ) T2 n ( f ) T2 n ( f ) Tn ( f ) 3 1 类似,复化Simpsom公式 I ( f ) S 2 n ( f ) S2n ( f ) Sn ( f ) 15
梯形法则
两点求积法则 梯形法则 :
ba I( f ) T( f ) ( )[ f (a) f (b)] 2
梯形法则的说明: 给定:
( x1 , y1 ) (a, f (a)); ( x2 , y2 ) (b, f (b))
可得两点牛顿插值多项式:
p2 ( x) p1 ( x) z 22 ( x) y2 p1 ( x2 ) y1 2 ( x ) 2 ( x2 ) y2 y1 y1 ( x x1 ) x2 x1
Simpson’s 法则
f (b) f (a ) a b ab f a f (a) ba 2 2 p2 ( x ) ( x a )( x b) ab a b a b 2 2 4 p2 ( x ) ( a b) 2