资源描述:
《验证数值积分求积公式及复合梯形公式程序设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、《复合梯形公式》实验报告实验名称:验证数值积分求积公式及复合梯形公式程序设计 成绩:___________专业班级:数学与应用数学1202班 姓名:王晓阳 学号:2012254010228实 验 日 期: 2014 年10月20日实验报告日期: 2014年 11月3日一.实验目的1掌握定积分的数值求解方法,验证数值积分求积公式.2.掌握数值积分的基本思想.3.掌握matlab实现数值积分函数的调用格式.4.编写复合梯形公式matlab程序及学会调用.5.学会用复合梯形公式求函数近似解.二、实验内容1.数值积分的实现(1)被
2、积函数是一个解析式Matlab提供了quad函数和quadl函数来求定积分.它们的调用格式为:Quad(filename,a,b,tol,trace)Quadl(filename,a,b,tol,trace)其中filename是被积函数名。a和b分别是定积分的下限和上限。Tol用来控制积分精度,默认时取。Trace控制是否展现积分过程,若取非0则展现积分过程,取0则不展现,默认时取trace=0。例6.20用两种不同的方法求.(2)被积函数由一个表格定义在matlab中,对由表格形式定义的函数关系的求定积分问题用trapz(X,
3、Y)函数。其中向量X、Y定义函数关系Y=f(X).X、Y是两个等长的向量;,,并且,积分区间是。例6.21用trapz函数计算.(3)二重积分数值求解Matlab提供的dblquad函数可以直接求出二重定积分的数值解。该函数的调用格式为:I=dblquad(f,a,b,c,d,tol,trace)该函数求f(x,y)在[a,b]*[c,d]区域上的二重定积分。例6.22计算二重定积分2.复合梯形公式由于牛顿-柯特斯公式在时不具有稳定性,故不可能通过提高阶的方法来提高求积精度.为了提高精度通常可把积分区间分成若干子区间(通常是等分)
4、,再在每个子区间上用低阶求积公式,这种方法称为复合求积法.将区间划分为n等份,分点,,在每个子区间上采用梯形公式,则得.记,称为复合梯形公式,其余项可由得.由于,所以,使.于是复合梯形公式的余项为..即,所以复合梯形公式收敛.以以原函数为例,进行matlab程序设计.三、实验环境MATLABR2014a四、实验步骤(一)验证数值积分公式(1)被积函数是一个解析式例6.20先建立一个函数M文件ex.m:functionex=ex(x)ex=exp(-x.^2);end然后在matlab命令窗口,输入命令:formatlongI=qu
5、ad('ex',0,1)(2)被积函数由一个表格定义例6.21在matlab命令窗口,输入命令:X=0:0.01:1;Y=exp(-X.^2);trapz(X,Y)(3)二重积分数值求解例6.22(1)建立一个函数文件fxy.mfunctionf=fxy(x,y)globalki;ki=ki+1;%ki用于统计被积函数的调用次数f=exp(-x.^2/2).*sin(x.^2+y);end(2)调用dblquad函数求解globalki;ki=0;I=dblquad('fxy',-2,2,-1,1)(二)复合梯形公式算法流程图输入
6、区间a,b和区间等份数n求出步长h第一部分T1=h/2*(f(a)+f(b))第二部分T2=sum(h*f(x(i)))Tn=T1+T2输出积分值Tn结束开始(三)程序设计以原函数为例,a,b分别为积分区间的上限和下限,n为将积分区间划分的份数.1.编写原函数M文件f.mfunctiony=f(x)y=sin(x)/x;2.编写求复合梯形公式M文件FT.mfunctionTn=FT(a,b,n)a=input('请输入a的值:');b=input('请输入b的值:');n=input('请输入n的值:');h=(b-a)/n;fo
7、rk=0:nx(k+1)=a+k*h;ifx(k+1)==0x(k+1)=10^(-10);endendT1=h/2*(f(x(1))+f(x(n+1)));fori=2:nF(i)=h*f(x(i));endT2=sum(F);Tn=T1+T2;3.运行程序4.用quad求解与复合梯形公式求解结果做对比I=quad('sin(x)./x',0,1)五、实验结果(一)验证数值积分公式(1)被积函数是一个解析式I=0.746824180726425(2)被积函数由一个表格定义ans=0.7468(3)二重积分数值求解I=1.5745
8、(二)复合梯形公式程序运行结果:FT请输入a的值:0请输入b的值:1请输入n的值:8ans=0.9457FT请输入a的值:0请输入b的值:1请输入n的值:3ans=0.9433调用quad命令运行结果I=0.9461六、实验讨论、结论1.对于函数,