浙江大学城市学院实验报告
课程名称 科学计算
实验项目名称 数值积分
实验成绩 指导老师(签名 ) 日期 2013/12/12
一. 实验目的和要求
1. 用Matlab 软件掌握梯形公式、辛普森公式和高斯公式计算数值积分; 2. 通过实例学习用数值积分解决实际问题。
二. 实验内容和原理
分析应用题2-1,2-2,2-3要求将问题的分析过程、Matlab 源程序和运行结果和结果的解释、算法的分析写在实验报告上。
2-1 分析应用题
用复合左(右)矩形、复合梯形、复合Simpson 三种积分公式计算由下表数据给出的积分
1.5
0.3
()y x dx ?
。
k
1 2 3 4 5 6 7 k x
0.3
0.5
0.7
0.9
1.1
1.3
1.5
其中函数()y x 为sin
3
x
y x =+,将计算值与精确值作比较。 2-2用以下几种数值积分公式计算积分
20
sin x dx π
?
,
对区间[0,]2
π
进行2等分,使用Simpson 积分公式,并在该区间上使用两点和三点Gauss 积分公式,输出它们的数值结果,并与精确值作比较,说明理由。
提示:两点Gauss 积分公式为
()((
222b
a
b a b a b a f x dx f f -++??
≈
-++????
?
三点Gauss 积分公式为
585()(()(2929292b
a
b a b a b a b a f x dx f f f ??
-+++≈
++????
?
使用两点guass 公式计算出的结果
2-3分析应用题
一辆汽车用84s 的时间驶完跑道的一圈。汽车的速度每隔6s 用雷达测速仪确定,并从开始以ft / s 在下表中的各项给出。 求跑道有多长? 注:可从数值积分的角度来求解。
2-1分析应用题
用复合左(右)矩形、复合梯形、复合Simpson 三种积分公式计算由下表数据给出的积分
1.5
0.3
()y x dx ?
。
k
1 2 3 4 5 6 7 k x
0.3
0.5
0.7
0.9
1.1
1.3
1.5
其中函数()y x 为sin
3
x
y x =+,将计算值与精确值作比较。 关于这道题目,我的理解是求出从k x 到1.5的积分,因此下面都是 function y=jingq(a)
y=0.5*1.5.^2-3*cos(1.5/3)-(0.5*a.^2-3*cos(a/3)); end
注:以下步长都取为0.1 >>
对于此题的复合左矩形编的程序 function z=jux(a) x=a;
y=x+sin(x/3); n=(1.5-a)/0.1; z=0;
for i=1:n
z=z+y* 0.1;
x=x+0.1;
y=x+sin(x/3); end end
复合矩形:
function z=tix(a) x1=a;
x2=x1+0.1;
n=(1.5-a)/0.1; z=0;
for i=2:n
z=z+(x1+sin(x1)+x2+sin(x2))/2; x1=x2;
x2=x1+0.1; end
z=z*0.1; end
由上面的表格可以看出,在小数点位数较少的情况下利用复合simpson 公式求出的积分结果与精确值一模一样 2-2 分析应用题
用以下几种数值积分公式计算积分
20
sin x dx π
?
,对区间[0,]2
π
进行2等分,使用Simpson
积分公式,并在该区间上使用两点和三点Gauss 积分公式,输出它们的数值结果,并与精确
值作比较,说明理由。
提示:两点Gauss 积分公式为
()((
222b
a
b a b a b a f x dx f f -++??
≈
-++????
?
三点Gauss 积分公式为
585()(()(2929292b
a
b a b a b a b a f x dx f f f ??
-+++≈
++????
?
使用两点guass 公式计算出的结果
>>
G2=pi/8*(sin(pi/8-pi/24*sqrt(3))+sin(pi/8+pi/24*sqrt(3)))+pi/8*(sin(3*pi/8-pi/24*sqrt(3))+sin(pi*3/8+pi/24*sqrt(3)))
G2 =
0.999910166769890
>>
使用三点guass 公式计算出的结果 >>
G3=pi/8*(5/9*sin(pi/8-pi/8*sqrt(3/5))+8/9*sin(pi/8)+5/9*sin(pi/8+pi/8*sqrt(3/5)))+pi/8*(5/9*sin(3*pi/8-pi/8*sqrt(3/5))+8/9*sin(3*pi/8)+5/9*sin(3*pi/8+pi/8*sqrt(3/5)))
G3 =
1.000000118910998 >>
>> 使用simpson 积分公式,将区间分为【0,pi/4】与【pi/4,pi/2】的两个部分,每个部分都使用公式
))2
()83(4)4()4()8(4(24sin sin sin 24
40
20
ππππππ
π
πππ
f f f f f dx x dx x dx x ++++=
+=???
>> sin(pi/8)
ans =
0.382683432365090
>> pi/24*(ans*4+sin(pi/4))
ans =
0.292932637839748
>> (sin(pi/4)+4*sin(3*pi/8)+sin(pi/2))*pi/24+ans
ans =
1.000134584974194
>>
精确值:1
在这三种方法中Guass三点法是误差最小的方法,,Gauss两点法精确度第二,simpson精确度最低。
2-3分析应用题
一辆汽车用84s的时间驶完跑道的一圈。汽车的速度每隔6s用雷达测速仪确定,并从开始
以ft / s在下表中的各项给出。
求跑道有多长?
注:可从数值积分的角度来求解。
function s=simpson(t,v)
n=(length(t)-1)/2;
s=0;
for i=1:n
s=s+(t(2*i+1)-t(2*i-1))/6*(v(2*i+1)+4*v(2*i)+v(2*i-1));
end
end
由于程序比较简单,在此就不加注释了
v=[124 134 148 156 147 133 121 109 99 85 78 89 104 116 123]
v =
124 134 148 156 147 133 121 109 99 85 78 89 104 116 123
>> t=[0 6 12 18 24 30 36 42 48 54 60 66 72 78 84]
t =
0 6 12 18 24 30 36 42 48 54 60 66 72 78 84
>> simpson(t,v)
ans =
9858
【MATLAB 相关函数】
? 复合矩形求积公式用到的matlab 函数
sum(x) 输入数组x ,输出为x 的和,可用于按矩形求积公式计算积分; cumsum(x) 输入数组x ,输出数组为x 的依次累加和,可用于按矩形求积公式计算积分。
? 复合梯形求积公式用到的matlab 函数
trapz(y) 输入数组y ,输出为按梯形积分公式计算的y 的积分(单位步长); trapz(x,y) 输入,x y 为同长度的数组,输出y 对x 的积分(按梯形公式计算,但步
长不一定相等)。
? 复合辛普森求积公式用到的matlab 函数
quad(‘fun ’,a,b)
用辛普森(2阶)求积公式计算以fun.m 文件命名的函数(或内部函数如sin ,log 等)
在区间(,)a b 上的积分,自动选择步长,相对误差为3
10 ,输出积分值; quad(‘fun ’,a,b,tol)
同上,但指定相对误差为tol 。
三. 操作方法与实验步骤(包括实验数据记录和处理)
四. 实验结果与分析