热动 71 马千里 970669实验三 数值积分与微分实验目的1) 用 MATLAB 软件掌握梯形公式、辛普森公式和孟特卡罗方法计算数值积分;2) 通过实例学习用数值积分和数值微分解决实际问题。预备:对数值函数,用辛普森公式计算定积分的程序 simp.m:function s=simp(y,h,m)s=0;for k=1:m s=s+4*y(2*k);endfor k=1:(m-1) s=s+2*y(2*k+1);ends=(s+y(1)+y(2*m+1))*h/3;实验内容1.用矩形、梯形(trapz)、和辛普森(simp)三种公式计算由下表数据给出的积分k 1 2 3 4 5 6 7xk 0.3 0.5 0。7 0。9 1。1 1.3 1。5yk 0.3895 0。6598 0。9147 1.1611 1。3971 1。6212 1。8325已知该表数据为函数 y=x+sin(x/3)所产生,将计算值与精确值作比较。用 MATLAB 作积分:a.矩形法求积分》y=[0。3895 0。6598 0。9147 1.1611 1。3971 1。6212 1。8325];》s1=sum(y(1:6))*0。2s1 = 1.2287b.梯形法求积分》s2=trapz(y)*0。2s2 =1.3730c。用辛普森公式计算积分》s3=simp(y,0.2,3)s3 =1。3743d。精确值:各方法结果比较:矩形公式梯形公式辛普森公式精确值1。22871。37301.37431。4323 2.选择下面函数用梯形(trapz)、辛普森(quad)和孟特卡罗三种方法计算积分,改变步长(对梯形),改变精度要求(对辛普森),改变随机点数目(对孟特卡罗),进行比较、分析.a。梯形公式计算积分:为了便于改变区间数,编制函数 tpz(n)专用于计算按 n 个区间的梯形法积分。function s=tpz(n)x=linspace(-2,2,n+1);y=1/sqrt(2*pi).*exp(—x。*x./2);s=trapz(x,y);分别用 tpz(20) tpz(30) tpz(40)计算区间数分别为 n=20 n=30 n=40 时的结果,并与精确值(用误差函数计算)0。9545 比较n=10n=20n=30精确值0。95160.95380。95420。9545可见区间数越多(或步长越小),精度就越高.b。辛普森法先编制函数 ff( )function y=ff(x)y=1/sqrt(2*pi)*exp(—x*x/2);分别计算 quad(ff,—2,2,0。1) quad(ff,-2,2,0。01) quad(ff,-2,2,0.001)并与精确值比较quad ( ff,—2,2,0。1)quad (ff,-2,2,0.01)quad ( ff , -2,2,0.001)精确值 0。9544 0.9545 0.95450。9545可见辛普森法本身具有很高的精度,改变精度要求对结果影响不大。c。孟特卡罗法编制程序 mt( )如下:(n 是随机点的数目)function s=mt(n)s=0;x=—2。+4。*rand(1,n);y=1/sqrt(2*pi).*exp(-x.*x./2);s=sum(y...