贵州师范大学数学与计算机科学学院学生实验报告课程名称: 数值分析 班级: 12级信本 实验日期: 2014年 11月5日 学 号: 120703010031 姓名: 李盼 指导教师: 实验成绩:一、实验名称实验三:数值积分二、实验目的及要求1. 让学生掌握复化梯形法, 复化Simpson 法和Romberg 公式以及变步长梯形法,变步长Simpson 法2. 让学生能够用这些方法解决一些具体问题三、实验环境每人一台计算机,要求安装Windows XP 操作系统,Microsoft office2003、MATLAB6.5(或7.0).四、实验内容1.要求:分别用复合梯形法,复合Simpson 法和 Romberg 公式计算.2.给定积分dx x ⎰311, 分别用下列方法计算积分值要求准确到510-, 并比较分析计算时间. 1) 变步长梯形法;2) 变步长 Simpson 法.五、算法描述及实验步骤1复合梯形法输入:被积函数数据点t,a ;输出:积分值n T 。
复合Simpson输入:被积函数)(x f ,积分区间[a,b]和n,输出:复合Simpson 积分值n S 。
步1 :b a h n-⇐; (a)(b)n S f f ⇐-;x a ⇐. 步2:对k=1,2,…,n 执行;4();;2().22n n n n h h x x S S f x x x S S f x ⇐+⇐-⇐+⇐-步3:*6n n h S S ⇐。
步4:输出n S 。
Romberg 公式根据已知数据对其进行多项式拟合得出p(x);()()f x p x ⇐。
输入 :被积函数)(x f ,积分区间端点a,b,允许误差ε,输出:Romberg 积分值2n R 。
步1:a b h -⇐;));()((21b f a f h T +⇐.0;0;0;0111⇐===k R C S 步2:反复执行步3-步9步3:.2;0h a x S +⇐⇐ 步4:反复执行步5-步6步5:.);(h x x x f S S +⇐+⇐步6:若b x ≥,则退出本层循环。
步7:执行 ;3134;2212212T T S S h T T -⇐+⇐.6316364;1511516122122C C R S S C -⇐-⇐ 步8:执行.1;;;;;2|;|2121212112+⇐⇐⇐⇐⇐⇐-⇐k k R R C C S S T T h h R R e步9:若ε≤e 且5≥k ,则退出循环。
步10:.22R R n ⇐2:变步长梯形法功能 求积分dx x ⎰311,允许误差为ε。
输入 被积函数)(x f ,a,b,ε.步1:a b h -⇐。
步2:)).()((21b f a f h T +⇐ 步3:反复执行步4--步10.步4:.2;0h a x S +=⇐步5:反复执行步6--步7步6:.);(h x x x f S S +⇐+⇐步7:若b x ≥,则退出本层循环。
步8:.2212S h T T ⨯+⇐ 步9:.;2|;|2121T T h h T T e ⇐⇐-⇐ 步10:若ε≤e ,则退出循环。
步11:22T T n =.步12:输出n T 2。
变步长 Simpson 法.输入:被积函数)(x f ,积分区间[a,b]和n,输出:复合Simpson 积分值n S 。
步1 :b a h n-⇐; (a)(b)n S f f ⇐-;x a ⇐. 步2:对k=1,2,…,n 执行 ;4();;2().22n n n n h h x x S S f x x x S S f x ⇐+⇐-⇐+⇐- 步3:*6n n h S S ⇐。
步4:输出n S 。
六、调试过程及实验结果复合梯形法:>> a=[30.00 31.63 33.44 35.47 37.75 40.33 42.39 46.69 50.67]; >> h=10;>> v0=0;>> v50=v0+(h/2)*(a(1)+2*(a(2)+a(3)+a(4)+a(5))+a(6))v50 =1.7345e+003>> v80=v0+(h/2)*(a(1)+2*(a(2)+a(3)+a(4)+a(5)+a(6)+a(7)+a(8))+a(9))v80 =3.0803e+003复合Simpson 法:>> a=[30.00 31.63 33.44 35.47 37.75 40.33 42.39 46.69 50.67];>> h=20;>> v0=0;>> v80=v0+(h/6)*(a(1)+4*(a(2)+a(4)+a(6)+a(8))+2*(a(3)+a(5)+a(7))+a(9))v80 =3.0810e+003>> x=[0 10 20 30 40 50];>> y=[30.00 31.63 33.44 35.47 37.75 40.33];>> p=polyfit(x,y,2);>> poly2sym(p);>> x=[5 15 25 35 45];>> q=polyval(p,x);>> a=[30.00 q(1) 31.63 q(2) 33.44 q(3) 35.47 q(4) 37.75 q(5) 40.33]; >> h=10;>>v50=v0+(h/6)*(a(1)+4*(a(2)+a(4)+a(6)+a(8)+a(10))+2*(a(3)+a(5)+a(7)+a(9 ))+a(11))v50 =1.7336e+003Romberg公式function R2n=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;while 1S=0;x=a+h/2;while 1S=S+feval(f,x);x=x+h;if x>=bbreadendendT2=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;if e<=tol&k>=5breakendendR2n=R2;function y=f(x)y=(5930286613325939*x^3)/295147905179352825856 - (6590784751299553*x ^2)/9223372036854775808 + (3387527922312091*x)/18014398509481984 + 74033/2475>> x=[0:10:80]x = 0 10 20 30 40 50 60 70 80>> y=[30.00,31.63,33.44,35.47,37.75,40.33,42.39,46.69,50.67]y =30.0000 31.6300 33.4400 35.4700 37.7500 40.3300 42.3900 46. 6900 50.6700>> p=polyfit(x,y,3);>> y=poly2sym(p);>> v80=Romberg('f',0,80,0.000005)v80 =3.0785e+003>> v50=Romberg('f',0,50,0.000005)v50 =1.7323e+0031)2:变步长梯形法:程序:function T2n=vsm(f,a,b,tol)h=b-a;T1=(h/2)*(feval(f,a)+feval(f,b));S=0;x=a+h/2;while 1S=S+feval(f,x);x=x+h;if x>=bbreakendendT2=T1/2+(h/2)*S;e=abs(T2-T1);h=h/2;T1=T2;if e<=tolbreakendendT2n=T2;定义被积函数:function y=f(x)y=1/x;>> a=1;b=3;tol=0.000005; >> I=vsm('f',a,b,tol)I =1.0986调试结果:>> Tn=tixing('f',1,3,30)Tn =1.09892)变步长 Simpson 法:程序:function Sn=Simpson(f,a,b,n) h=(b-a)/n;x=a;S=feval(f,a)-feval(f,b);x=x+h/2;S=S+4*feval(f,x); x=x+h/2;S=S+2*feval(f,x); endSn=h/6*S;function y=f(x)y=1/x;调试结果:>> Sn=Simpson('f',1,3,20)Sn =1.0986七、总结知识掌握不牢固。
操作生疏,八、附录(源程序清单)。