第7章 数值积分法7.1 实验目的了解求积公式及代数精度概念,理解并掌握求定积分的求积公式的算法构造和计算,学习用计算机求定积分的一些科学计算方法和简单的编程技术和能用程序实现这些算法。
7.2 概念与结论1. 求积公式计算定积分的如下形式的近似公式:称为求积公式。
2.代数精度若求积公式对一切不高于m 次的 多项都准确成立,而对于m+1次多项式等号不成立,则称此求积公式的代数精度为m 。
代数精度越高,求积公式越好。
3.求积余项4.Newton-Cotes 求积公式的代数精度n 点Newton-Cotes 求积公式的代数精度至少可以达到n-1,且当n 为奇数时,可以达到n 。
⎰∑=≈ba nk k k x f A dx x f 1)()(⎰∑=≈ba nk k k x f A dx x f 1)()(⎰∑=-=b a nk k k x f A dx x f f R 1)()()(⎰=b a dx x f I )(5.Richardson 外推定理设函数F 1(h)逼近量F*的余项为:F*-F 1(h)=a 1h p1+a 2h p2+····+a k p k+···式中p k >p k-1>···>p 2>p 1>0, F*和a i (i=1,2, ···)都是与h 无关的常数,且k ≥1时,a k ≠0,则由:定义的函数F 2(h)也逼近F*,且有F*-F 2(h)= b 2h p2+····+b k p k +···6. 关于复合梯形公式的展开定理设f(x)在[a,b]区间上无穷次可微,则有如下展开式:T(h)=I+a 1h 2+a 2h 4+a 3h 6+…+a m h 2m +…式中T(h)是函数f(x)在[a,b]区间上的复化梯形值Tn,7.3 程序中Mathematica 语句解释1. 随机函数Random[] 随机给出闭区间[0,1]内的一个实数Random[Real, xmax] 随机给出闭区间[0,xmax]内的一个实数Random[Real, {xmin, xmax}] 随机给出闭区间[xmin,xmax]内的一个实数Random[Integer] 随机给出整数0或1Random[Integer, {xmin, xmax}] 随机给出xmin 到xmax 之间的一个整数Random[Complex] 随机给出单位正方形内的一个复数2.{a1,a2,…,an}表示由元素a1,a2,…,an 组成的一个表,元素可以是任何内容。
)10(1)()()(11112<<--=q q h F q qh F h F p p如:{1,3,4,5},{1,x,{2,3},x+y},{{1,3},{1,2,3},{3,2,4}}等3.list[[k]]表list 中的第k 个元素4.list[[i,j]]表list 中第i 个元素中的第j 个元素,此时list 中的第i 个元素应该也是一个表。
7.4 方法、程序、实验在实际问题中,往往会遇到被积函数f(x)的原函数无法用初等函数来表示,或函数只能用表格表示,或有的虽然能用初等函数表示,但过分复杂,所以这些情形都需要去建立定积分的近似计算公式来做积分计算。
数值积分是进行定积分计算的一种方法,它可以解决不能用定积分基本公式计算的所有定积分问题。
数值积分涉及很多计算公式,这里主要介绍Newton-Cotes 求积公式、复合求积公式、Romberg 求积方法和Monte-Carlo 方法的构造过程和算法程序。
1. n 点 Newton —Cotes 求积公式n 点 Newton —Cotes 求积公式又称为等距节点求积公式,它是利用被积函数f(x)在积分区间[a,b]的n 个等分节点上的函数值构造的插值函数ϕ(x)代替f(x)做定积分计算所构造求积公式。
这个求积公式是通常做定积分近似计算的梯形公式和抛物线公式的推广,主要在理论上用的多些。
1) n 点 Newton —Cotes 求积公式的构造过程将积分区间[a,b] 分为n-1等分,其中n 个节点 x i =a+(i-1}h, i=1,2,…,n ,h=(b -a)/(n-1),然后用f(x)在这n 个节点上建立插值于f(x)的n-1次代数多项式P n-1(x),引入变换x=a+th, 0≤t ≤n-1则有)1)(())(()(,11,111∏∑∏∑≠==≠==--+-=--=n i k k n i i ni k k k i k n i i n k i k t x f x x x x x f x P带入定积分,有:C k (n)称为Cotes(柯特斯)系数, 则得到n 点 Newton —Cotes 求积公式:n 点 Newton —Cotes 求积公式的求积余项为当n=2时,2点的 Newton —Cotes 求积公式就是如下梯形公式:梯形求积公式求积余项为当n=3时,3点的Newton —Cotes 求积公式就是如下抛物线(Simpson )公式:⎰∑=-≈b a n k k n k x f C a b dx x f 1)()()()())()((2)(b f a f a b dx x f b a +-≈⎰⎰∏⎰∏∑⎰∏∑⎰⎰-≠=-≠==≠==--+--=-+---=--=≈10,1)(10,11,111111)1)((1))(()()(n n i k k n i n n i k k ni i b a n i k k ki k n i i b a n ba dt ki k t n c dt k i k t x f n a b dx x x x x x f dx x P dx x f 令dx x x x x x x n f f R n b a n )())((!)()(21)(---=⎰ξ],{)()(121)(3b a f a b f R ∈''--=ηηSimpson 求积公式求积余项为如果想得到其他的 Newton —Cotes 求积公式只要在有关书中查出Cotes 系数表就可以马上得到相应的Newton —Cotes 求积公式。
2) n 点 Newton —Cotes 求积公式算法1. 输入被积函数f(x)及积分上下限a,b2. 选择Cotes 系数构造求积公式3. 用求积公式求定积分3) n 点 Newton —Cotes 求积公式程序Clear[a,b,x,n,s];a=Input["a="]b=Input["b="]f[x_]=Input["被积函数f(x)="]n= Input["求积节点个数n="];c={{1/2,1/2},{1/6,4/6,1/6},{1/8,3/8,3/8,1/8},{7/90,16/45,2/15,16/45,7/90},{19/288,25/96,25/144,25/144,25/96,19/288}, {41/840,9/35,9/280,34/105,9/280,9/35,41/840},))()2(4)((6)(b f b a f a f a b dx x f b a +++-≈⎰],{)()(28801)()4(5b a f a b f R ∈--=ηη{751/17280,3577/17280,1323/17280,2989/17280,1323/17280,3577/17280,751/17280},{989/28350,5888/28350,-928/28350,10496/28350,-4540/28350,10496/28350,-928/28350,5888/28350,989/28350}};h=(b-a)/(n-1);x=Table[a+k*h,{k,0,n-1}];s=(b-a)*Sum[c[[n-1,k]]*f[x[[k]]],{k,1,n}]Print["定积分=",N[s,8]];说明本程序用n(n=2,3,4,5,6,7,8,9)点 Newton—Cotes求积公式求[a,b]上的定积分近似值。
程序执行后,按要求通过键盘输入积分下限a、积分上限b、被积函数f(x)和求积节点个数n后,计算机则给出定积分的近似值。
程序中变量说明a:存放积分下限b: 存放积分上限f[x]: 存放被积函数f(x)n: 存放求积节点个数c: 存放Cotes系数s: 存放定积分近似值h: 存放节点步长x:存放节点xi注语句c={{1/2,1/2},{1/6,4/6,1/6},{1/8,3/8,3/8,1/8},{7/90.16/45,2/15,16/45,7/90},{19/288,25/96,25/144,25/144,25/96,19/288}}的第i个分量表是具有i个节点的Cotes系数。
4)例题与实验例1.用n=3和n=4的Newton-Cotes求积公式求定积分的近似值。
解:执行n 点 Newton —Cotes 求积公式程后,在输入的窗口中按提示分别输入1、3、Exp[-x/2]、3每次输入后用鼠标点击窗口的“OK ”按扭,计算机在屏幕上给出用n=3的Newton-Cotes 求积公式计算出的定积分结果:)613261(23E E E ++定积分=0.76705953再执行n 点 Newton —Cotes 求积公式程后,在输入的窗口中按提示分别输入1、3、Exp[-x/2]、4每次输入后用鼠标点击窗口的“OK ”按扭,计算机在屏幕上给出用n=4的Newton-Cotes 求积公式计算出的定积分结果:)81838381(265673E E E E +++定积分=0.76691628因此用n=3和n=4的Newton-Cotes 求积公式求本题定积分近似值分别为0.76705953和0.76691628注意到本题的精确值为0.766800999….,可见n=4的Newton-Cotes 求积公式计算结果较好。
2. 复化求积公式复化求积公式是把积分区间分成若干小区间,在每个小区间上采用次数不高的插值公式,如梯形公式或抛物线公式,构造出相应的求积公式,然后再把它们加起来得到整个区间上的求积公式。
复化求积公式克服了高次Newton-Cotes 公式计算不稳定的问题,其运算简单且易于在计算机上实现。
常用的复化求积公式是复化梯形公式和复化抛物线公式,下面分别讨论。