资源描述:
《复合梯形和复合辛普森MATLAB程序.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、####实验报告课程名称数值分析实验项目名称数值积分实验类型上机实验学时班级学号姓名指导教师实验室名称实验时间2014.11.19实验成绩预习部分实验过程表现实验报告部分总成绩教师签字日期实验三数值积分一.数值积分的基本思想1.复合梯形公式:Tn=2;2.复合辛普森公式:Sn=[f(a)+f(b)+2+4];以上两种算法都是将a-b之间分成多个小区间(n),则h=(b-a)/n,xk=a+kh,xk+1/2=a+(k+1/2)h,利用梯形求积根据两公式便可。3.龙贝格算法:在指定区间内将步长依次二分的过程中运用如下公式(1)Sn=
2、T2n-Tn(2)Cn=S2n-Sn(3)Rn=C2n-Cn4T=T-T,k=1,2,…二、计算流程图1、复合梯形和复合辛普森算法框图:下图是龙贝格算法框图:开始读入a,b,ch=b-a,T1=h[f(a)+f(b)/2,k=1S=0,x=a+h/2S=S+f(x)x=x+hx
3、R2结束自适应辛普森积分算法流程框图:开始输入A,B,NH=(B-A)/(2*N)S=0.5*(F(A)-F(B)),调用函数FS=S+2*F[A+(2*I-1*H)]+(F(A+2*I*H)),调用函数FS=(B-A)/(3*N)S输出S结束I=1,N定义函数F二.实验题目及实验目的实验题目:用不同数值方法计算积分=-。(1)取不同的步长h。分别用复合梯形及复合辛普森求积计算积分,给出误差中关于h的函数,并与积分精确值比较两个公式的精度,是否存在一个最小的h,使得精度不能再被改善?(2)用龙贝格求积计算完成问题(1)。(3)用自
4、适应辛普森积分,使其精度达到10。实验目的:1、了解并掌握matlab软件的基本编程、操作方法;2、初步了解matlab中的部分函数,熟悉循环语句的使用;3、通过上机进一步领悟用复合梯形、复合辛普森公式,以及用龙贝格求积方法计算积分的原理。三.实验手段:指操作环境和平台:win7系统下MATLABR2009a程序语言:一种类似C语言的程序语言,但比C语言要宽松得多,非常方便。四.程序①复合梯形求积程序functiont=TiXing_quad(a,b,.h)formatlongx=a:h:b;y=sqrt(x).*log(x);y
5、(1)=0;t=0;fork=1:(b-a)/h,t=t+y(k)+y(k+1);endt=t*h/2;②复合辛普森求积程序functions=Simpson_quad(a,b,h)formatlongx=a:h:b;y=sqrt(x).*log(x);z=sqrt(x+h/2).*log(x+h/2);y(1)=0;s=0;fork=1:(b-a)/h,s=s+y(k)+y(k+1)+4*z(k);ends=s*h./6;③龙贝格求积程序function[q,R]=Romberg(a,b,eps)h=b-a;R(1,1)=h*(
6、0+sqrt(b).*log(b))/2;M=1;J=0;err=1;whileerr>epsJ=J+1;h=h/2;S=0;forp=1:Mx=a+h*(2*p-1);S=S+sqrt(x).*log(x);endR(J+1,1)=R(J,1)/2+h*S;M=2*M;fork=1:JR(J+1,k+1)=R(J+1,k)+(R(J+1,k)-R(J,k))/(4^k-1);enderr=abs(R(J+1,J)-R(J+1,J+1));endq=R(J+1,J+1);控制台输入代码:(1)>>a=0;>>b=1;>>h=0.2
7、;>>t=TiXing_quad(a,b,h)>>s=Simpson_quad(a,b,h)>>h=0.02;>>t=TiXing_quad(a,b,h)>>s=Simpson_quad(a,b,h)>>h=0.002;>>t=TiXing_quad(a,b,h)>>s=Simpson_quad(a,b,h)(2)>>a=0;>>b=1;>>eps=10^-8;>>[quad,R]=Romberg(a,b,eps)(3)>>a=0;>>b=1;>>eps=10^-4;>>q=ZiShiYingSimpson('sqrt(x).*l
8、og(x)',a,b,eps)五.实验结果比较与分析(1)h=0.2时,结果如下:h=0.02时,结果如下:h=0.002时;得到的结果如下:由结果(1)可知对于同一步长h,复合辛普森法求积分精度明显比复合梯形法求积的精度要高,且当步长取不同值时即