文档库 最新最全的文档下载
当前位置:文档库 › zucc科学计算实验八实验报告

zucc科学计算实验八实验报告

浙江大学城市学院实验报告

课程名称 科学计算

实验项目名称 数值积分

实验成绩 指导老师(签名 ) 日期 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 。

三. 操作方法与实验步骤(包括实验数据记录和处理)

四. 实验结果与分析

相关文档