第一讲
数值积分及其应用
——
梯形法与抛物线法——
圆周率计算 数值积分及其应用
主要内容
基本概念
梯形法和抛物线法
自适应求积方法
二重积分
数值积分应用数值积分
数值积分是计算数学的基础和核心,很多连续问题都 需要通过数值积分才能转化为离散问题。
数值积分内容非常复杂,也非常丰富,特别是弱奇异 积分,奇异积分,超奇异积分,或者被积函数是急剧 震荡或急剧衰减的。
对于高维积分,由于维数效应,计算复杂度往往随维 数指数增长,如何高效地计算高维积分,仍然是计算 数学的一大难题。 定积分的定义
定积分的近似
n
充分大, x 充分 小b ( )
a f x dx
i [ x
i1, ] x
i
x
0 x
1x
2 x
n1 x
nx
1
x
21
x
i
x
i
x
n( )
i i, f x
1
i i i
x x x
max
ix
ix
0
lim
nx
x
i1 n i
1
( ) ( )
b n
i i
a i
f x dx f x
定积分几何意义
( ) f x
a x
i1x
ib x y
o
ab( )
S f x dx
S1 S2 Si Sn
1
( )
b n a i
i
S f x dx S
曲边小梯形的面积可以由直边小梯形的面积来近似
整个曲边梯形的面 积:
复合梯形法
S
i 12
i i
i i
y y
S
x
( ), 1, 2, ,
i i
y
f x i
n
b
( )
S
af x dx
1
1
1
2
n i i
n
i i
i i
S
y y
x
如果我们 n 等分区间 [a, b] ,即令:
则
复合梯形公式
梯形法
n=1
时,梯形公式:b
( )
S
af x dx
1 11 1
2
12
n n n
i i i i
i i
i i i
y y y y
S
x h
1 2 n
x x x
h b a
n
0 1 1
( ) 2 2
b n
a n
y y
f x dx h y y
( ) ( ) ( )
b b a
f x dx f a f b
n
等分区间 [a,b] ,得用抛物线代替该直线,
计算精度是否会更好?
计算节点和中点上的函数值:抛物线法
在区间 [xi-1, x
i]
上,用过以下三点的抛物线来近似原函数 f (x) 。
,
i, 0,1, ,
h b a x ih i n
n
1/2
( ), 0,1, ,
( 0.5 ), 1, ,
i i
i i
y f x i n
y
f x h i n
1
(
1,
1),
1/2(
1/2,
1/2), ( , )
i i i i i i i i i
P
x
y
P
x
y
P x y
设过以上三点的抛物线方程为:
则在区间 [xi-1
, x
i]
上,有y = x
2 + x + = p
i(x)
抛物线法
1 1
( ) ( )
i i
i i
x x
x
f x dx
xp x dx
i
1(
2)
i i
x
x
x x dx
3 3 2 2
1 1 1
( ) ( ) ( )
3 x
ix
i2 x
ix
ix
ix
i
1
3 2
3 2
i
i
x
x
x x
x
1
( 4 )
i i
x x
y y y
b a ( 4 )
y y y
2 2
1
1 1
( ) ( )
6
i i
i i i i
x x
x x x x
2
1 1
( x
ix
i) 2 ( x
ix
i) 4
相加后可得:复合抛物线(辛普生, Simpson )公式
抛物线法
n=1
时,抛物线公式:0 1/2 3/2 1/2
1 2 1
( ) [ 4( )
6
2( )]
b
n n
a
n
f x dx b a y y y y y
n
y y y
1 1
1 1/2
1
( ) ( )
( 4 )
6
i
i
b n x
a x
i n
i i i
i
f x dx f x dx
b a y y y
n
( ) ( ) 4 ( ) ( )
6 2
b a
b a a b
f x dx f a f f b
误差分析
定理:设 I 是定积分精确值, Tn 是由复合梯形法计算出来 的近似值,若 f(x)C2
[a, b]
,则存在 (a, b) ,使得定理:设 I 是定积分精确值, Sn 是由复合抛物线法计算出 来的近似值,若 f(x)C4
[a, b]
,则存在 (a, b) ,使得( )
2"( )
n
12
b a h
I T
f
4
( )
(4)180 2 ( )
n
b a h
I S
f
h b a n
h b a n
问题:如何计算圆周率
的值?应用举例
在 Matlab 中可以显示任意精度的 的值
vpa(pi,20) %
显示 20 位有效数字Pi=3.
1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679 8214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196 4428810975665933446128475648233786783165271201909145648566923460348610454326648213393607260249141273 7245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094 3305727036575959195309218611738193261179310511854807446237996274956735188575272489122793818301194912 9833673362440656643086021394946395224737190702179860943702770539217176293176752384674818467669405132 0005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235 4201995611212902196086403441815981362977477130996051870721134999999837297804995105973173281609631859 5024459455346908302642522308253344685035261931188171010003137838752886587533208381420617177669147303 5982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989 3809525720106548586327886593615338182796823030195203530185296899577362259941389124972177528347913151 ... ... ... ...
的计算:刘徽割圆 从正六边形开始,逐步求边长与面积
刘徽割圆法
设 62n 的正多边形的边长为 an 通过递推计算可得(单位圆)
三角形 OAC 的面积为:
计算到正 96 边形
(公元 263 年)
2 2 2
1
1 1
2 2
n n
n
a a
a
2 2 2 2
( )
2AC AD DC AD OC OD
1
1
2 4
n n
S
OC AD
a 6 2
n1S 3 2
na
的计算:幂级数展开 幂级数展开
两边积分
令
x = 1
n
很大时精度仍不高
12 4 2 2
2
1 1 1
1
n n
x x x
x
3
2 1arctan 1
13 2 1
n n
x x
x x
n
11 1
1 1
4 3 2 1
n
n
和 的展开 式的收敛速度都比 快 得多
的计算:快速公式 快速计算公式
Machin
公式, 17061 1
arctan arctan
4 2 3
1 1
4arctan arctan
4 5 239
1 1
12arctan 32arctan
4 49 57
1 1
5arctan 12arctan
239 110443
2 arctan1
1 arctan
3 arctan 1
的计算:积分法 积分法
复合梯形法
复合抛物线法
1 0 2
1 d
4 1 x
x
11 0 0
1
( ) 1 ( ) ( ) ( )
2
n
n i
i
f x dx h f x f x h
f x
1
0 1/2 3/2 1/2
0
1 2 1
( ) 1 [ 4( )
6
2( )]
n n
n
f x dx y y y y y
n
y y y
的计算:其他方法
Monte Carlo
法:Buffon
投针实验
Ramanujan
(拉马努金)公式:(每项大约可增加 8 位有效数字,需使用 FFT )
Chudnovsky
公式:(每项大约可增加 14 位有效数字,需使用 FFT )
4 4
0
1 2 2 (4 )!(1103 26390 ) 9801
n( !) 396
nn n
n
3 3
0
1 1 (6 )!(13591409 545140134 )
(3 )!( !) ( 640320)
426880 10005
n nn n
n n
的计算:其他方法 算术几何平均值 (Arithmetic-Geometric Mean,
AGM)
(需使用 FFT ,每迭代一次有效位数乘 2 )
0 0
1, 1 ,
a
b
2
1,
12
n n
n n n n
a b
a
b
a b
lim
nlim
nn n
M a b
2 2
0
2
1 2 ( )
2
n
n n
n
a b M