您好,欢迎访问三七文档
探索实验7数值积分法一、实验目的了解求积公式及代数精度概念,理解并掌握求定积分的求积公式的算法构造和计算,学习用计算机求定积分的一些科学计算方法和简单的编程技术和能用程序实现这些算法。二、概念与结论1.求积公式:计算定积分的如下形式的近似公式:称为求积公式。2.代数精度:若求积公式对一切不高于m次的多项都准确成立,而对于m+1次多项式等号不成立,则称此求积公式的代数精度为m。代数精度越高,求积公式越好。3.求积余项:4.Newton-Cotes求积公式的代数精度n点Newton-Cotes求积公式的代数精度至少可以达到n-1,且当n为奇数时,可以达到n。5.Richardson外推定理:设函数F1(h)逼近量F*的余项为:F*-F1(h)=a1hp1+a2hp2+····+akpk+···式中pkpk-1···p2p10,F*和ai(i=1,2,···)都是与h无关的常数,且k1时,ak0,则由:定义的函数F2(h)也逼近F*,且有F*-F2(h)=b2hp2+····+bkpk+···6.关于复合梯形公式的展开定理设f(x)在[a,b]区间上无穷次可微,则有如下展开式:bankkkxfAdxxf1)()(bankkkxfAdxxf1)()()10(1)()()(11112qqhFqqhFhFppbankkkxfAdxxffR1)()()(badxxfI)(T(h)=I+a1h2+a2h4+a3h6+…+amh2m+…式中T(h)是函数f(x)在[a,b]区间上的复化梯形值Tn,三、程序中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组成的一个表,元素可以是任何内容。如:{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个元素应该也是一个表。四、方法与程序在实际问题中,往往会遇到被积函数f(x)的原函数无法用初等函数来表示,或函数只能用表格表示,或有的虽然能用初等函数表示,但过分复杂,所以这些情形都需要去建立定积分的近似计算公式来做积分计算。数值积分是进行定积分计算的一种方法,它可以解决不能用定积分基本公式计算的所有定积分问题。数值积分涉及很多计算公式,这里主要介绍Newton-Cotes求积公式、复合求积公式、Romberg求积方法和Monte-Carlo方法的构造过程和算法程序。1.n点Newton—Cotes求积公式n点Newton—Cotes求积公式又称为等距节点求积公式,它是利用被积函数f(x)在积分区间[a,b]的n个等分节点上的函数值构造的插值函数(x)代替f(x)做定积分计算所构造求积公式。这个求积公式是通常做定积分近似计算的梯形公式和抛物线公式的推广,主要在理论上用的多些。1.1n点Newton—Cotes求积公式的构造过程:将积分区间[a,b]分为n-1等分,其中n个节点xi=a+(i-1}h,i=1,2,…,n,h=(ba)/(n-1),然后用f(x)在这n个节点上建立插值于f(x)的n-1次代数多项式Pn-1(x),引入变换x=a+th,0tn-1则有)1)(())(()(,11,111nikkniinikkkikniinkiktxfxxxxxfxP带入定积分,有:Ck(n)称为Cotes(柯特斯)系数,则得到n点Newton—Cotes求积公式:n点Newton—Cotes求积公式的求积余项为当n=2时,2点的Newton—Cotes求积公式就是如下梯形公式:梯形求积公式求积余项为当n=3时,3点的Newton—Cotes求积公式就是如下抛物线(Simpson)公式:Simpson求积公式求积余项为如果想得到其他的Newton—Cotes求积公式只要在有关书中查出Cotes系数表就可以马上得到相应的Newton—Cotes求积公式。bankknkxfCabdxxf1)()()()())()((2)(bfafabdxxfba))()2(4)((6)(bfbafafabdxxfba10,1)(10,11,111111)1)((1))(()()(nnikkninnikkniibanikkkikniibanbadtkiktncdtkiktxfnabdxxxxxxfdxxPdxxf令dxxxxxxxnffRnban)())((!)()(21)(],{)()(121)(3bafabfR],{)()(28801)()4(5bafabfR1.2n点Newton—Cotes求积公式算法:1.输入被积函数f(x)及积分上下限a,b2.选择Cotes系数构造求积公式3.用求积公式求定积分1.3n点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},{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系数。1.4例题与实验例1.用n=3和n=4的Newton-Cotes求积公式求定积分的近似值。解:执行n点Newton—Cotes求积公式程后,在输入的窗口中按提示分别输入1、3、Exp[-x/2]、3,每次输入后用鼠标点击窗口的“OK”按扭,计算机在屏幕上给出用n=3的Newton-Cotes求积公式计算出的定积分结果:1212(------+---+---------)6E3/23E6Sqrt[E]定积分=0.76705953再执行n点Newton—Cotes求积公式程后,在输入的窗口中按提示分别输入1、3、Exp[-x/2]、4,每次输入后用鼠标点击窗口的“OK”按扭,计算机在屏幕上给出用n=4的Newton-Cotes求积公式计算出的定积分结果:13312(------+------+------+----------)8E3/28E7/68E5/68Sqrt[E]定积分=0.76691628因此用n=3和n=4的Newton-Cotes求积公式求本题定积分近似值分别为0.76705953和0.76691628注意到本题的精确值为0.766800999….,可见n=4的Newton-Cotes求积公式计算结果较好。2.复化求积公式复化求积公式是把积分区间分成若干小区间,在每个小区间上采用次数不高的插值公式,如梯形公式或抛物线公式,构造出相应的求积公式,然后再把它们加起来得到整个区间上的求积公式。复化求积公式克服了高次Newton-Cotes公式计算不稳定的问题,其运算简单且易于在计算机上实现。常用的复化求积公式是复化梯形公式和复化抛物线公式,下面分别讨论。2.1复化梯形公式的构造过程:把区间[a,b]n等分,取节点xk=a+kh,k=0,1,...n,h=(b-a)/n,对每个小区间[xk,xk+1]用梯形求积公式,再累加起来得:dxex312公式就是复化梯形公式。它的求积余项为:由复化梯形公式的余项,可以看到,当n不断变大时,Tn无限接近定积分值。因此复化梯形公式可以使定积分的计算达到任意精度。为了计算简单,提高效率,常用|T2n–Tn|来得到满足精度要求的定积分值。2.2复化抛物线公式的构造过程在每个小区间[xk,xk+1]上,有把区间[a,b]n等分,取节点xk=a+kh,k=0,1,...n,h=(b-a)/n,对每个小区间[xk,xk+1]用抛物线求积公式,再累加起来得:公式就是复化抛物线公式。它的求积余项为:11))(2)()((2)(nknkbaTxfbfafnabdxxf1111010))(2)()((2))()((2)()(1nkkkknkbankxxxfbfafnabxfxfhdxxfdxxfkk],[)(12)()(12)(),(21103bafhabxxfhTdxxfTfRkknkkbann2,))(4)(2)()((6))()(4)((6)()(2111102112110101hxxxfxfbfafnabxfxfxfhdxxfdxxfkknknkkkkkknkbankxxkk],[)(2180)()(2180)(),()4(44110)4(45bafhabxxfhSdxxfTfRkknkkbannnnknkkkbaSxfxfbfafnabdxxf111021))(4)(2)()((6)(由复化抛物线公式的余项,可以看到,当n不断变大时,Sn无限接近定积分值。因此复化抛物线公式也可以使定积分的计算达到任意精度,且收敛的速度比复化梯形公式更快。为了计算简单,提高效率,常用|S2n–Sn|来得到满足精度要求的定积分值。2.3复化梯形求积公式算法:1.输入被积函数f(x),积分上下限a,b,和求积精度2.n1,计算Tn3.计算T2n4.判断|T2n–Tn|是否成立,如果成立,输出定积分近似值,停止5.否则,TnT2n,n2n,转32.4复化抛物线求积公式算法:1.输入被积函数f(x),积分上下限a,b,和求积精度2
本文标题:实验名称数值积分1
链接地址:https://www.777doc.com/doc-2459644 .html