1贵州师范大学数学与计算机科学学院学生实验报告课程名称:数值分析班级:实验日期:2013年10月10日学号:姓名:指导教师:实验成绩:一、实验名称实验三:数值积分二、实验目的及要求1.让学生掌握复化梯形法,复化Simpson法和Romberg公式以及变步长梯形法,变步长Simpson法2.让学生能够用这些方法解决一些具体问题三、实验环境每人一台微机,要求安装Windows2000或WindowsXP操作系统,Matlab软件四、实验内容题1从地面发射一枚火箭,在最初80s内记录起加速度如下表,试求火箭在第50s,80s时的速度.要求:分别用复化梯形法,复化Simpson法和Romberg公式计算.题2给定积分dxex31和dxx311,分别用下列方法计算积分值要求准确到510,并比较分析计算时间.1)变步长梯形法;2)变步长Simpson法3)Romberg方法五、算法描述及实验步骤题1:(1)复合梯形法:tdttatV0)()())()(2)((211nkknbfxfafhTt(s)01020304050607080a(m/s2)30.0031.6333.4435.4737.7540.3342.3946.6950.672输入被积函数数据点t,a输出积分值V1,V2(2)复合Simpson法:tdttatV0)()())()(2)(4)((6101121nknkkknbfxfxfafhS输入被积函数数据点x,y及相邻数据点间的中间时刻,用向量t存放输出积分值V1,V2步1用数据点向量x,y拟合相对应的5次,8次多项式步2根据拟合的多项式算出t向量对应的a步3根据上述公式:v110/6*[y(1)+4*[a(1)+a(2)+a(3)+a(4)+a(5)]+2*[y(2)+y(3)+y(4)+y(5)]+y(6)]V210/6*[y(1)+4*[a(1)+a(2)+a(3)+a(4)+a(5)+a(6)+a(7)+a(8)]+2*[y(2)+y(3)+y(4)+y(5)+y(6)+y(7)+y(8)]+y(9)]步4输出V1,V2题2:(1)变步长梯形法:105.02)(221nkknnxfhTT)(nabh)(3122nnnTTTI输入被积函数f(x),积分区间端点a,b和允许误差.输出复合梯形积分值nT2步1abh步2))()((21bfafhT步3反复执行步4→步10步42;0haxS步5反复执行步6→步7步6hxxfSS);(步7若x≥b,则退出本层循环步8ShTT2212步92112;2;TThhTTe3步10若e≤,则退出循环步1122TTn步12输出nT2(3)Romberg积分法:输入被积函数f(x),积分区间端点a,b和允许误差输出Romberg积分值nR2步骤:编写函数式M文件定义北极函数,输出相应数据,然后调用Romberg积分程序。六、调试过程及实验结果:题1:(1)复合梯形法:t=[01020304050607080];a=[30.0031.6333.4435.4737.7540.3342.3946.6950.67];v1=10/2*[a(1)+2*(a(2)+a(3)+a(4)+a(5))+a(6)]v1=1.7345e+003v2=10/2*[a(1)+2*(a(2)+a(3)+a(4)+a(5)+a(6)+a(7)+a(8))+a(9)]v2=3.0803e+003vpa(v2,7)ans=3080.350(2)复合Simpson法:x=[01020304050];y=[30.0031.6333.4435.4737.7540.33];t=0:0.1:50;p5=polyfit(x,y,5);t=[515253545];a=polyval(p5,t)a=30.796232.509434.425736.576438.9978y=[30.0031.6333.4435.4737.7540.33];v1=10/6*[y(1)+4*[a(1)+a(2)+a(3)+a(4)+a(5)]+2*[y(2)+y(3)+y(4)+y(5)]+y(6)]4v1=1.7336e+003vpa(v1,7)ans=1733.554x=[01020304050607080];y=[30.0031.6333.4435.4737.7540.3342.3946.6950.67];t=0:0.1:80;p8=polyfit(x,y,8);t=[515253545556575];a=polyval(p8,t)a=31.242632.400234.479836.528239.078441.377243.942250.2328y=[30.0031.6333.4435.4737.7540.3342.3946.6950.67];v2=10/6*[y(1)+4*[a(1)+a(2)+a(3)+a(4)+a(5)+a(6)+a(7)+a(8)]+2*[y(2)+y(3)+y(4)+y(5)+y(6)+y(7)+y(8)]+y(9)]v2=3.0810e+003vpa(v2,7)ans=3088.660题2:1、dxeyx31(1)变步长梯形法:a=1;b=3;tol=0.000005;I=Vsm('f',a,b,tol)t1=0.0103I=17.3673(3)Romberg积分法[1]:a=1;b=3;tol=0.000005;I=Romberg('f',a,b,tol)t3=1.8141e-004I=517.36732、dxxy311(1)变步长梯形法:a=1;b=3;tol=0.000005;I=Vsm('f',a,b,tol)t1=0.0049I=1.0986(3)Romberg积分法:a=1;b=3;tol=0.000005;I=Romberg('f',a,b,tol)t3=1.7178e-004I=1.0986七、总结通过这次实验,学会了应用三种不同的方法求近似积分。首先从计算的结果可以看出,相同的节点个数,使用不同的方法所得到的结果是不同的,即所得结果的精度不同。对于几种积分方法,采取的都是等距节点,但如果被积函数在某处变化很激烈,那么在该处就应当设置较多的节点,这样才能保证结果更加的精确有效。八、附录(源程序清单)[1]变步长梯形法:functionT2n=Vsm(f,a,b,tol)h=b-a;T1=(h/2)*(feval(f,a)+feval(f,b));tic;while1S=0;x=a+h/2;while1S=S+feval(f,x);x=x+h;ifx=bbreakendend6T2=T1/2+h*S/2;e=abs(T2-T1);h=h/2;T1=T2;ife=tolbreakendendt1=tocT2n=T2;functiony=f(x)y=exp(x);functiony=f(x)y=1/x;[2]Romberg积分法:functionR2n=Romberg(f,a,b,tol)h=b-a;T1=(h/2)*(feval(f,a)+feval(f,b));S1=0;C1=0;R1=0;k=0;tic;while1S=0;x=a+h/2;while1S=S+feval(f,x);x=x+h;ifx=bbreakendendT2=T1/2+(h/2)*S;S2=(4/3)*T2-(1/3)*T1;C2=(16/15)*S2-(1/15)*S1;R2=(64/63)*C2-(1/63)*C1;e=abs(R2-R1);h=h/2;T1=T2;S1=S2;C1=C2;R1=R2;k=k+1;ife=tol&k=5breakendendt3=tocR2n=R2;functiony=f(x)y=exp(x);functiony=f(x)y=1/x;