课程名称: 数值分析 班级: 数计一班 实验日期: 2013年10 月9日 学 号: 110701010056 姓名: 张能 指导教师: 杨一都老师 实验成绩:
一、实验名称
实验三: 数值积分 二、实验目的及要求
1. 让学生掌握复化梯形法, 复化Simpson法和Romberg公式以及变步长梯形法,变步长Simpson法
2. 让学生能够用这些方法解决一些具体问题 三、实验环境
每人一台微机,要求安装Windows2000或Windows XP操作系统,Matlab软件 四、实验内容
题1 从地面发射一枚火箭,在最初80 s 内记录起加速度如下表, 试求火箭在第
50s,80s时的速度.
t(s) a(m/s2) 0 10 20 30 40 50 60 70 80 30.00 31.63 33.44 35.47 37.75 40.33 42.39 46.69 50.67 要求:分别用复化梯形法,复化Simpson 法和 Romberg公式计算. 3题2 给定积分 edx 和
1x15dx10 ,分别用下列方法计算积分值要求准确到 ,x13并比较分析计算时间.
1) 变步长梯形法;
2) 变步长 Simpson 法 3) Romberg 方法 五、算法描述及实验步骤 3.13题:
1.复合梯形法:
n1h根据复合梯形公式:Tn=(f(a)2f(xk)f(b))
2k1第一步:根据已知输入数据a=[30.00,31.63,33.44,35.47,37.75,40.33,42.39,46.69,50.67]
第二步:输入h=10
第三步:T=(h/2)*(a(1)+a(6)+2*(a(2)+a(3)+a(4)+a(5)))
第四步:T=(h/2)*(a(1)+2*(a(2)+a(3)+a(4)+a(5)+a(6)+a(7))+a(8))) 2.复合Simpson法:
1
n1n1h根据复合Simpson公式:Sn=(f(a)4f(x1)2f(xk)f(b))
k6k0k12第一步:根据已知输入数据a=[30.00,31.63,33.44,35.47,37.75,40.33,42.39,46.69,50.67]
先用Lagrange插值得出t=5,15,25,35,45,55,65,75处的值 第二步:h=
ba;Sn=f(a)-f(b);x=a. n第三步:对k=1,2,...,n执行
x=x+h/2;Sn=Sn+4f(x);x=x+h/2;Sn=Sn+2f(x). 第四步:Sn=
h6Sn 第五步:输出Sn.
3.14题:
(1). 求积分 ,允许误差为ε。 被积函数f(x),a,b,ε. 复合梯形积分值T2n. h<=b-a.
T1=h/2(f(a)+f(b)). 反复执行步4—步10。 S<=0;x<=a+h/2. 反复执行步6—步7. S<=S+f(x);x<=x+h.
若x≥b,则退出本层循环。 T2<=T1/2+h/2S
e<=|T2-T1|;h<=h/2;T1<=T2. 若e≤ε则退出循环。 T2n<=T2. 输出T2n.
(2). 求积分 ,允许误差为ε。 被积函数f(x),a,b,ε. 复合梯形积分值T2n. h<=b-a.
T1=h/2(f(a)+f(b));S1=0;k<=0. 反复执行步3—步9. S<=0;x<=a+h/2. 反复执行步5—步6. S<=S+f(x);x<=x+h.
若x≥b,则退出本层循环。
T2<=T1/2+h/2S;S2<=4/3T2-1/3T1.
e<=|S2-S1|;h<=h/2;T1<=T2;S1=S2;k<=k+1 若e≤ε则退出循环。 S2n<=S2. 输出S2n.
(3).求积分 ,允许误差为ε。
被积函数f(x),积分区间端点a,b,ε.
2
复合梯形积分值R2n. h<=b-a.
T1=h/2(f(a)+f(b));S1=0;C1=0;R1=0;k<=0. 反复执行步3—步9. S<=0;x<=a+h/2. 反复执行步5—步6. S<=S+f(x);x<=x+h. 若x≥b,则退出本层循环. 执行
T2<=T1/2+h/2S;S2<=4/3T2-1/3T1;C2=16/15S2-1/15S1;R2=64/63C2-1/63C1. 执行
e<=|R2-R1|;h<=h/2;T1<=T2.T1<=T2;S1<=S2;C1<=C2;R1<=R2;k<=k+1. 若e≤ε且k≥5则退出循环。 R2n<=R2. 输出R2n.
六、调试过程及实验结果:
3.13题:(1)复合梯形公式法求得50s时速度为1734.5m/s;80s时速度为3080.3m/s (2)复合Simpson公式法求得分别为1733.6m/s、3086.9m/s 3.14题:通过不同方法计算结果分别为:17.3673 ;1.0986。
七、总结:
第一:我通过运用不同的方法解决问题,观察结论数据并不相同,有着各自的差异,说明不同的方法各有优劣;
第二:为了计算更精确,我们在实验过程中可以针对不同的题目以及数据量的多少应该适当的选取合适的方法进行计算;
第三:针对不同方法我们可以看到计算速度的差异。
八、附录(源程序清单): 3.13题 复合梯形法:
3
复合Simpson法: M文件:
执行程序清: >> x=0:10:80;
>> y=[30.00,31.63,33.44,35.47,37.75,40.33,42.39,46.69,50.67]; >> cx=5:10:75;
>> cy=Lagrange(x,y,5,cx) cy =
30.7962 32.5094 34.4257 36.5764 38.9978 41.7610 45.0023 48.9530
>> h=10;
>> Sn=(h/6)*(y(1)+4*(cy(1)+cy(2)+cy(3)+cy(4)+cy(5))+2*(y(2)+y(3)+y(4)+y(5))+y(6))
4
Sn =
1.7336e+003 >>
Sn=(h/6)*(y(1)+4*(cy(1)+cy(2)+cy(3)+cy(4)+cy(5)+cy(6)+cy(7)+cy(8))+2*(y(2)+y(3)+y(4)+y(5)+y(6)+y(7)+y(8))+y(9)) Sn =
3.0869e+003
3.14题:
(1).变步长梯形法: >> a=1;b=3;tol=0.000005; >> I=Vsm('f',a,b,tol) I =17.3673
>> a=1;b=3;tol=0.000005; >> I=Vsm('f',a,b,tol) I =1.0986
(2).变步长Simpson法: >> a=1;b=3;yol=0.000005; >> I=Vsm('f',a,b,tol) I = 17.3673
>> a=1;b=3;tol=0.000005; >> I=Vsm('f',a,b,tol) I = 1.0986
(3).Romberg积分法: >> a=1;b=3;yol=0.000005; >> I=Vsm('f',a,b,tol) I = 17.3673
>> a=1;b=3;tol=0.000005;
5
>> I=Vsm('f',a,b,tol) I = 1.0986
M文件:
function T2n=Vsm(f,a,b,tol) h=b-a;
T1=h/2*(feval(f,a)+feval(f,b)); while 1
S=0;x=a+h/2; while 1
S=S+feval(f,x);x=x+h; if x>=b break end end
T2=T1/2+h*S/2;
e=abs(T2-T1);h=h/2;T1=T2; if e<=tol break end end
T2n=T2;
(1)
function y=f(x) y=exp(x);
(2)function y=f(x) y=1/x;
6
因篇幅问题不能全部显示,请点此查看更多更全内容