matlab实验报告定积分的近似计算.doc

上传人:精*** 文档编号:1031371 上传时间:2024-03-24 格式:DOC 页数:6 大小:87KB
下载 相关 举报
matlab实验报告定积分的近似计算.doc_第1页
第1页 / 共6页
matlab实验报告定积分的近似计算.doc_第2页
第2页 / 共6页
matlab实验报告定积分的近似计算.doc_第3页
第3页 / 共6页
matlab实验报告定积分的近似计算.doc_第4页
第4页 / 共6页
matlab实验报告定积分的近似计算.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、数学实验报告实验序号: 2 日期:年 月 日 班级姓名学号实验名称:定积分的近似计算问题背景描述:利用牛顿莱布尼兹公式虽然可以精确地计算定积分的值,但它仅适用于被积函数的原函数能用初等函数表达出来的情形。但当被积函数的原函数不知道时,如何计算?这时就需要利用近似计算。特别是在许多实际应用中,被积函数甚至没有解析表达式,而是一条实验记录曲线,或一组离散的采样值,此时只能用近似方法计算定积分。本实验将主要研究定积分的三种近似计算算法:矩形法、梯形法和抛物线法。同时介绍 Matlab 计算定积分的相关函数。对于定积分的近似数值计算,matlab有专门函数可用。并且十分方便,准确。实验目的:(1):熟

2、悉matlab软件的用户环境(2):了解matlab软件一般目的命令(3):掌握matlab数组操作与运算函数(4):掌握研究定积分的三种近似计算算法:矩形法、梯形法、抛物线法、并运用这些方法编写程序计算定积分实验原理与数学模型:定积分的定义: 矩形法: 【左点法 : 右点法:中点法:】梯形法:如果我们 n 等分区间 a,b,即令:=。则=抛物线法:在matlab中:梯形法:trapz(x,y)x 为分割点(节点)组成的向量,y 为被积函数在节点上的函数值组成的向量。抛物线法:quad(f,a,b,tol)f = f(x) 为被积函数,a,b 为积分区间,tol 为计算精度抛物线法计算二重积分

3、: dblquad(f,a,b,c,d,tol) 符号积分:int(f,v,a,b)计算函数 f 关于自变量 v 的定积分,积分区间为 a, b实验所用软件及版本:Matlab 7.0主要内容(要点):1:分别用梯形法与抛物线法,计算,取并尝试直接使用函数trapz()、quad()进行计算求解,比较结果的差异2: 试计算定积分(注意:可以运用trapz()、quad()或附录程序求解吗?为什么?)3:学习fulu2sum.m的程序设计方法,尝试用函数 sum 改写附录1和附录3的程序,避免for 循环实验过程记录(含基本步骤、主要程序清单及异常情况记录等):1:梯形法:format long

4、n=120;a=1;b=2;syms x fxfx=1/x;i=1:n;xj=a+(i-1)*(b-a)/n;inum = 0.69315152080005integrate = 0.69314718055995The relative error between inum and real-value is about:6.26164e-006xi=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(int

5、egrate)fprintf(The relative error between inum and real-value is about:%gnn,abs(inum-integrate)/integrate)抛物线法:format longn=120;a=1;b=2;syms x fxfx=1/x;i=1:n;xj=a+(i-1)*(b-a)/n;inum = 0.69314718056936 integrate =log(2) integrate =0.69314718055995The relative error between inum and real-value is abou

6、t:1.35886e-011xi=a+i*(b-a)/n;xk=(xi+xj)/2;fxj=subs(fx,x,xj);fxi=subs(fx,x,xi);fxk=subs(fx,x,xk);f=(fxj+4*fxk+fxi)*(b-a)/(6*n);inum=sum(f)integrate=int(fx,1,2)integrate=double(integrate)fprintf(The relative error between inum and real-value is about:%gnn,abs(inum-integrate)/integrate)q =0.69314719986

7、297直接使用函数trapz():q=quad(1./x,1,2):直接使用函数quad():ans =0.69315152080005x=1:1/120:2;y=1./x;trapz(x,y)2:用int直接计算定积分:F =1/2*pisyms xf=(sin(x)/x;F=int(f,x,0,inf)若运用trapz()、quad()或附录程序求解:q =NaNans = NaN【q=quad(sin(x)./x,0,inf)】【x=0:pi/100:pi*1000;y=sin(x)./x;trapz(x,y)】但是求出的值都是NaN,不是正确值。3:用函数 sum 改写附录1:form

8、at longinum1 = 0.78789399673078inum2 =0.78289399673078inum3 =0.78540024673078integrate =0.78539816339745The relative error between inum1 and real-value is about:0.00317779The relative error between inum2 and real-value is about:0.0031884The relative error between inum3 and real-value is about:2.6525

9、8e-006n=100;a=0;b=1;syms x fxfx=1/(1+x2);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);fxij=subs(fx,x,(xi+xj)/2);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(The relative er

10、ror between inum1 and real-value is about:%gnn,abs(inum1-integrate)/integrate)fprintf(The relative error between inum2 and real-value is about:%gnn,abs(inum2-integrate)/integrate)fprintf(The relative error between inum3 and real-value is about:%gnn,abs(inum3-integrate)/integrate)用函数 sum 改写附录3:format

11、 longinum = 0.78539816339745 integrate =1/4*pi integrate = 0.78539816339745The relative error between inum and real-value is about:2.82716e-016n=100;a=0;b=1;syms x fxfx=1/(1+x2);i=1:n;xj=a+(i-1)*(b-a)/n;xi=a+i*(b-a)/n;xk=(xi+xj)/2;fxj=subs(fx,x,xj);fxi=subs(fx,x,xi);fxk=subs(fx,x,xk);f=(fxj+4*fxk+fx

12、i)*(b-a)/(6*n);inum=sum(f)integrate=int(fx,0,1)integrate=double(integrate)fprintf(The relative error between inum and real-value is about:%gnn,abs(inum-integrate)/integrate)情况记录:第一题的梯形法和抛物线法不会,后来做了最后一题,学习了fulu2sum.m的程序设计方法。于是学会了第一题的梯形法和抛物线法。第二题开始直接用trapz()、quad(),但是结果都是NaN。怎么调试都是这个答案,后来用了int的方法就得出了1

13、/2*pi。实验结果报告及实验总结:第一题的梯形法和抛物线法参照了最后一题中的fulu2sum.m的程序设计方法。按照附录A和附录C写出了第一题的梯形法和抛物线法。而trapz()、quad()设计较为顺利。第二题用trapz()、quad()不能得出正确答案,而用int(f,v,a,b)公式可以得出正确答案。第三题学习了附录fulu2sum.m之后,很容易就得出了用函数 sum 改写附录1和附录3的程序答案。思考与深入: 对于定积分的计算,我们在数学分析课程中是有所了解的。有些定积分真的很难运算,目前是只局限在部分公式中,复杂的根本不会算。而matlab却可以在短时间内算出复杂的函数和定积分。其功能的确十分强大。所以,我们还要更加认真深入学习matlab,在这信息飞速发展的社会,将来某一天,matlab必将的教学工具。而且就近的说,我们以后的教学建模,毕业论文,实践教学等中可能会涉及matlab程序设计。教师评语:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 课程设计

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922