定积分的近似计算_第1页
定积分的近似计算_第2页
定积分的近似计算_第3页
定积分的近似计算_第4页
定积分的近似计算_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数学实验报告实验序号:4日期:2012年12月13日实验名称定积分的近似计算问题背景描述:利用牛顿一莱布尼兹公式虽然可以精确地计算定积分的值,但它仅适用于被积函数的原函数能用初等函数表达出来的情形.如果这点办不到或者不容易办到,这就有必要考虑近似计算的方法.在定积分的很多应用问题中,被积函数甚至没有解析表达式,可能只是一条实验记录曲线,或者是一组离散的采样值,这时只能应用近似方法去计算相应的定积分.实验目的:本实验将主要研究定积分的三种近似计算算法:矩形法、梯形法、抛物线法。对于定积分的近似数值计算,有专门函数可用。实验原理与数学模型:1矩形法根据定积分的定义,每一个积分和都可以看作是定积分的

2、一个近似值,即在几何意义上,这是用一系列小矩形面积近似小曲边梯形的结果,所以把这个近似计算方法称为矩形法.不过,只有当积分区间被分割得很细时,矩形法才有一定的精确度.针对不同的取法,计算结果会有不同。()左点法:对等分区间在区间上取左端点,即取)右点法:同()中划分区间,在区间上取右端点,即取)中点法:同()中划分区间,在区间上取中点,即取梯形法等分区间相应函数值为主要内容(要点):1分别用梯形法与抛物线法,计算,取.并尝试直接使用函数、进行计算求解,比较结果的差异.2试计算定积分(注意:可以运用、或附录程序求解吗?为什么?)3.学习fulu2sum.m的程序设计方法,尝试用函数sum改写附录

3、1和附录3的程序,避免for循环。实验过程记录(含基本步骤、主要程序清单及异常情况记录等):1:formatlongn=120;a=l;b=2;symsxfxfx=1/x;%所有左点的数组%所有右点的数组%所有左点值%所有右点值%梯形面积%加和梯形面积求解i=1:n;xj=a+(i-1)*(b-a)/n;xi=a+i*(b-a)/n;fxj=subs(fx,x,xj);fxi=subs(fx,x,xi);f=(fxi+fxj)/2*(b-a)/n;inum=sum(f)integrate=int(fx,1,2);integrate=double(integrate)fprintf(Therel

4、ativeerrorbetweeninumandreal-valueisabout:%g/n/n,.abs(inum-integrate)/integrate)【调试结果】inum=0.69315152080005integrate=0.69314718055995Therelativeerrorbetweeninumandreal-valueisabout:6.26164e-006/n/nQ抛物线法:%抛物线法formatlongn=120;a=1;b=2;inum=0;symsxfxfx=1/x;fori=1:nxj=a+(i-1)*(b-a)/n;%左点xi=a+i*(b-a)/n;%右

5、点xk=(xi+xj)/2;%中点fxj=subs(fx,x,xj);fxi=subs(fx,x,xi);fxk=subs(fx,x,xk);inum=inum+(fxj+4*fxk+fxi)*(b-a)/(6*n);endinumintegrate=int(fx,l,2);integrate=double(integrate);fprintf(Therelativeerrorbetweeninumandreal-valueisabout:%g/n/n,.abs(inum-integrate)/integrate)【调试结果】inum=0.69314718056936Therelativeer

6、rorbetweeninumandreal-valueisabout:1.35886e-011/n/n使用函数trapz()x=1:1/120:2;y=1./x;trapz(x,y)【调试结果】ans=0.69315152080005使用函数quad()quad(1./x,1,2)【调试结果】ans=0.693147199862972:使用函数trapz()x=1:1/120:inf;y=sin(x)./x;trapz(x,y)【调试结果】?Errorusing=colonMaximumvariablesizeallowedbytheprogramisexceeded.使用函数quad()qu

7、ad(sin(x)./x,O,inf)【调试结果】ans=NaNQ程序法%矩阵法formatlongn=inf;a=0;b=inf;symsxfxfx=sin(x)./x;%左点%右点i=1:n;xj=a+(i-l)*(b-a)/n;xi=a+i*(b-a)/n;%左点值%右点值%中点值xij=(xi+xj)/2;fxj=subs(fx,x,xj);fxi=subs(fx,x,xi);fxij=subs(fx,x,xij);f1=fxj*(b-a)/n;f2=fxi*(b-a)/n;f3=fxij*(b-a)/n;inum1=sum(f1)inum2=sum(f2)inum3=sum(f3)i

8、ntegrate=int(fx,0,inf);integrate=double(integrate);fprintf(therelativeerrorbetweeninum1andreal-valueisabout:%gnn,.abs(inum1-integrate)/integrate)fprintf(therelativeerrorbetweeninum2andreal-valueisabout:%gnn,.abs(inum2-integrate)/integrate)fprintf(therelativeerrorbetweeninum3andreal-valueisabout:%gnn

9、,.abs(inum3-integrate)/integrate)【调试结果】?Maximumvariablesizeallowedbytheprogramisexceeded.Q使用matlab命令symsx;f=sin(x)/x;I=int(f,O,inf)【调试结果】I=1/2*pi3:Q矩形法:利用求和函数%矩阵法formatlongn=100;a=0;b=l;symsxfxfx=1/(1+xA2);%左点%右点i=1:n;xj=a+(i-1)*(b-a)/n;xi=a+i*(b-a)/n;%左点值%右点值%中点值xij=(xi+xj)/2;fxj=subs(fx,x,xj);fxi=

10、subs(fx,x,xi);fxij=subs(fx,x,xij);f1=fxj*(b-a)/n;f2=fxi*(b-a)/n;f3=fxij*(b-a)/n;inum1=sum(f1)inum2=sum(f2)inum3=sum(f3)integrate=int(fx,0,1);integrate=double(integrate);fprintf(therelativeerrorbetweeninum1andreal-valueisabout:%gnn,.abs(inum1-integrate)/integrate)fprintf(therelativeerrorbetweeninum2a

11、ndreal-valueisabout:%gnn,.abs(inum2-integrate)/integrate)fprintf(therelativeerrorbetweeninum3andreal-valueisabout:%gnn,.abs(inum3-integrate)/integrate)【调试结果】inum1=0.78789399673078inum2=0.78289399673078inum3=0.78540024673078therelativeerrorbetweeninumlandreal-valueisabout:0.00317779therelativeerrorbe

12、tweeninum2andreal-valueisabout:0.0031884therelativeerrorbetweeninum3andreal-valueisabout:2.65258e-006Q抛物线法:使用求和函数%抛物线formatlongn=100;a=0;b=1;symsxfxfx=1/(1+xA2);i=1:n;xj=a+(i-1)*(b-a)/n;%左点xi=a+i*(b-a)/n;%右点xij=(xi+xj)/2;fxj=subs(fx,x,xj);%左点值fxi=subs(fx,x,xi);%右点值fxij=subs(fx,x,xij);%中点值f=(fxj+4*fx

13、ij+fxi)*(b-a)/(6*n);inum=sum(f)integrate=int(fx,0,1);integrate=double(integrate);fprintf(therelativeerrorbetweeninumandreal-valueisabout:%gnn,.abs(inum-integrate)/integrate)【调试结果】inum=0.78539816339745therelativeerrorbetweeninumandreal-valueisabout:2.82716e-016【情况记录】1梯形法和抛物线法程序设计较为顺利。但要注意使用循环函数和求和函数时

14、的不同命令,避免混淆出错。使用函数,时要注意被积函数是数值形式,应使用数组计算,应用点除即,否则将出错,不能调试出结果。2使用函数,和附录程序求解,均不能调试出获得出正确答案。最后尝试用命令中的符号求积分才得出正确结果。3参照附录中的求和函数程序设计顺利改变了附录和。发现使用求和函数时,不需要赋初值,应用了积分理论中分割、近似、求和、取极限的思想方法,避免了循环的冗杂性,较容易理解。实验结果报告及实验总结:1、结果Q梯形法inum=0.69315152080005integrate=0.69314718055995Therelativeerrorbetweeninumandreal-value

15、isabout:6.26164e-006/n/nQ抛物线法:inum=0.69314718056936Therelativeerrorbetweeninumandreal-valueisabout:1.35886e-011/n/nQ使用函数trapz()ans=0.69315152080005Q使用函数quad()ans=0.69314719986297将题中的近似计算结果与各命令的计算结果相比较,发现运用不同的方法,计算结果会有不同。因为由梯形法求近似值,当为凹曲线时,它就偏小;当为凸曲线时,它就偏大.误差较大。故由计算结果知,利用抛物线法近似计算定积分,更接近于实际值,精确程度更高.且发现

16、trapz()的调试结果与梯形法结果相同,故可猜测该中的数值积分命令函数trapz()采用了梯形法近似计算方法。2、Q使用函数trapz()?Errorusing=colonMaximumvariablesizeallowedbytheprogramisexceeded.Q使用函数quad()ans=NaNQ程序法?Maximumvariablesizeallowedbytheprogramisexceeded.Q使用matlab命令I=l/2*pi通过实验发现使用函数,和附录程序求解,均不能调试出或得出正确答案。用命令中的符号求积分才得出正确结果。故矩形法、梯形法、抛物线法是主要研究定积分的三种近似计算算法。的专门函数,也是用于定积分的近似数值计算。对于不定积分,由于积分区间无限大,故不能使用该分割方法。3、实验结果见实验过程中的调试结果。调试顺利。使用sum函数时,i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论