南通大学实验报告材料
- 格式:doc
- 大小:204.44 KB
- 文档页数:14
大学实验报告定积分与定积分的近似计算学院:理学院班级:数师153班学号: 1502012072:顾阳第一部分实验报告书解读一、实验目的实验主要是分析用矩阵公式,梯形公式,辛普森公式求定积分的近似值,并比较它们与定积分的近似情况。
可以先学习定积分的数值计算方法,理解定积分的定义,掌握牛顿-莱布尼茨公式。
二、实验材料1.1定积分的数值计算计算定积分⎰b a dx x f )(的近似值,可将积分区间n 等分而得矩形公式程序为n a b n a b i a f dx x f ni b a ---+≈∑⎰=])1([)(1 或 n ab n a b i a f dx x f n i b a --+≈∑⎰=][)(1也可用梯形公式近似计算 na b b f a f n a b i a f dx x f n i b a -++-+≈∑⎰-=]2)()()([)(11 如果要准确些,可用辛普森公式 n a b b f a f a b i a f n a b ia f dx x f n i n ib a 6)]()()2)21((4)(2[)(111-++--++-+≈∑∑⎰=-= 对于⎰10sin xdx ,矩形公式、梯形公式、辛普森公式的Mathematica 程序为a=0;b=1;k=10;f[x_]:=Sin[x];d=N[Integrate[f[x],{x,a,b}],k];(计算精确值)s1[m_]:=N[Sum[f[a+i*(b-a)/m]*(b-a)/m,{i,0,m-1}],k];(取小区间左端点的矩形公式)s2[m_]:=N[Sum[f[a+(i+1/2)*(b-a)/m]*(b-a)/m,{i,0,m-1}],k](取小区间中点的矩形公式)s3[m_]:=N[Sum[f[a+i*(b-a)/m]*(b-a)/m,{i,1,m}],k]; (取小区间右端点的矩形公式)s4[m_]:=N[Sum[(f[a+i*(b-a)/m]+f[a+(i+1)*(b-a)/m])/2*(b-a)/m,{i,0,m-1}],k]; (梯形公式) s5[m_]:=N[(b-a)/m/6*((f[a]+f[b])+2*Sum[f[a+i*(b-a)/m],{i,1,m-1}]+4*Sum[f[a+(i-1/2)*(b-a)/m],{i,1,m}]),k];(辛普森公式) t=Table[{s1[m],r1[m],s2[m],r2[m],s3[m],r3[m],s4[m],r4[m],s5[m],r 5[m]}, {m,100,1000,100}]1.2可积的条件设f(x)=sinx,取a=0,b=1对于⎰10sin xdx ,矩形公式、梯形公式、辛普森公式的Mathematica 程序为a=0;b=1;k=10;f[x_]:=Sin[x];d=N[Integrate[f[x],{x,a,b}],k];(计算精确值)s1[m_]:=N[Sum[f[a+i*(b-a)/m]*(b-a)/m,{i,0,m-1}],k];(取小区间左端点的矩形公式)s2[m_]:=N[Sum[f[a+(i+1/2)*(b-a)/m]*(b-a)/m,{i,0,m-1}],k](取小区间中点的矩形公式)s3[m_]:=N[Sum[f[a+i*(b-a)/m]*(b-a)/m,{i,1,m}],k]; (取小区间右端点的矩形公式)s4[m_]:=N[Sum[(f[a+i*(b-a)/m]+f[a+(i+1)*(b-a)/m])/2*(b-a)/m,{i,0,m-1}],k]; (梯形公式) s5[m_]:=N[(b-a)/m/6*((f[a]+f[b])+2*Sum[f[a+i*(b-a)/m],{i,1,m-1}] +4*Sum[f[a+(i-1/2)*(b-a)/m],{i,1,m}]),k];(辛普森公式) r1[m_]:=d-s1[m];r2[m_]:=d-s2[m];r3[m_]:=d-s3[m];r4[m_]:=t=Table[{s1[m],r1[m],s2[m],r2[m],s3[m],r3[m],s4[m],r4[m],s5[m],r 5[m]}, {m,100,1000,100}]1.3牛顿-莱布尼茨公式设函数)(x f 在[]b a ,上连续,而且)(x F 是)(x f 的一个原函数,则有牛顿-莱布尼兹公式⎰-=b a a F b F dx x f )()()(。
函数⎩⎨⎧≠==0001)(x x x f 在[]2,1-不连续、不存在原函数,但在[]2,1-上可积;函数⎩⎨⎧>≤-=--00cos sin 22)(11x x x x x x x g 在[]2,1-不连续,但在[]2,1-上可积。
此外函数⎩⎨⎧∉∈=Qx Q x x D 01)(处处不连续、不存在原函数,在任意区间(长度大于0)上不可积。
求原函数并验证牛顿-莱布尼兹公式的Mathematica 程序f[x_]:=Sin[x];Integrate[f(x),x](求不定积分)F[x_]:=%(定义原函数)d=NIntegrate[f(x),{x,a,b}](求定积分)df=F[b]-F[a] (计算原函数的增量)三、实验所用软件及版本Mathematica 5.0第二部分 实验计划(一)定积分的数值计算1.程序修改a=0;b=1;k=10;f[x_]:=Sin[x];d=N[Integrate[f[x],{x,a,b}],k];s1[m_]:=N[Sum[f[a+i*(b-a)/m]*(b-a)/m,{i,0,m-1}],k];s2[m_]:=N[Sum[f[a+(i+1/2)*(b-a)/m]*(b-a)/m,{i,0,m-1}],k]s3[m_]:=N[Sum[f[a+i*(b-a)/m]*(b-a)/m,{i,1,m}],k];s4[m_]:=N[Sum[(f[a+i*(b-a)/m]+f[a+(i+1)*(b-a)/m])/2*(b-a)/m,{i,0,m-1}],k];s5[m_]:=N[(b-a)/m/6*((f[a]+f[b])+2*Sum[f[a+i*(b-a)/m],{i,1,m-1}] +4*Sum[f[a+(i-1/2)*(b-a)/m],{i,1,m}]),k];r1[m_]:=d-s1[m];r2[m_]:=d-s2[m];r3[m_]:=d-s3[m];r4[m_]:=d-s4[m];r5[m_]:=d-s5[m];t=Table[{s1[m],r1[m],s2[m],r2[m],s3[m],r3[m],s4[m],r4[m],s5[m],r5[m]}, {m,100,1000,100}]利用以上程序计算,⎰10dx ,⎰10xdx ,⎰102dx x ,⎰10dx e x ,⎰+10)1(dx x In 并对几个公式比较。
2.实验思路对以上程序,分别将sinx 的x 替换成1,x ,x 2,e x ,In(1+x)(二)可积的条件1.实验思路:(1)如果函数f(x)在区间[a,b]上连续,则f(x)在区间[a,b]上可积,反之亦然。
(2)设一连续函数,判断其是否可积。
2.程序修改a=0;b=1;k=10;f[x_]:=Sin[x];d=N[Integrate[f[x],{x,a,b}],k];s1[m_]:=N[Sum[f[a+i*(b-a)/m]*(b-a)/m,{i,0,m-1}],k];s2[m_]:=N[Sum[f[a+(i+1/2)*(b-a)/m]*(b-a)/m,{i,0,m-1}],k]s3[m_]:=N[Sum[f[a+i*(b-a)/m]*(b-a)/m,{i,1,m}],k];s4[m_]:=N[Sum[(f[a+i*(b-a)/m]+f[a+(i+1)*(b-a)/m])/2*(b-a)/m,{i,0,m-1}],k];s5[m_]:=N[(b-a)/m/6*((f[a]+f[b])+2*Sum[f[a+i*(b-a)/m],{i,1,m-1}] +4*Sum[f[a+(i-1/2)*(b-a)/m],{i,1,m}]),k];r1[m_]:=d-s1[m];r2[m_]:=d-s2[m];r3[m_]:=d-s3[m];r4[m_]:=d-s4[m];r5[m_]:=d-s5[m];t=Table[{s1[m],r1[m],s2[m],r2[m],s3[m],r3[m],s4[m],r4[m],s5[m],r5[m]}, {m,100,1000,100}]利用以上程序计算,⎰10dx ,⎰10xdx ,⎰102dx x ,⎰10dx e x ,⎰+10)1(dx x In 并对几个公式比较。
(三)牛顿-莱布尼茨公式1. 程序修改f[x_]:=Sin[x];Integrate[f(x),x]F[x_]:=%d=NIntegrate[f(x),{x,a,b}]df=F[b]-F[a]r=d-df2.实验思路(1)先对一个函数sinx在区间[0,1]时,运行程序计算。
(2)在考虑其他函数,y=1,y=x,y=x2,y=e x,y=In(1+x),y=sign(x)在[0,1]时,进行程序计算。
第三部分实验过程与结果实验一定积分的实验计算1. 在mathmatica上输入以下程序a=0;b=1;k=10;f[x_]:=Sin[x];d=N[Integrate[f[x],{x,a,b}],k];s1[m_]:=N[Sum[f[a+i*(b-a)/m]*(b-a)/m,{i,0,m-1}],k];s2[m_]:=N[Sum[f[a+(i+1/2)*(b-a)/m]*(b-a)/m,{i,0,m-1}],k]s3[m_]:=N[Sum[f[a+i*(b-a)/m]*(b-a)/m,{i,1,m}],k];s4[m_]:=N[Sum[(f[a+i*(b-a)/m]+f[a+(i+1)*(b-a)/m])/2*(b-a)/m,{i,0,m-1}],k];s5[m_]:=N[(b-a)/m/6*((f[a]+f[b])+2*Sum[f[a+i*(b-a)/m],{i,1,m-1}] +4*Sum[f[a+(i-1/2)*(b-a)/m],{i,1,m}]),k];r1[m_]:=d-s1[m];r2[m_]:=d-s2[m];r3[m_]:=d-s3[m];r4[m_]:=d-s4[m];r5 [m_]:=d-s5[m];t=Table[{s1[m],r1[m],s2[m],r2[m],s3[m],r3[m],s4[m],r4[m],s5[m],r5 [m]}, {m,100,1000,100}]运行结果为:2.在mathmatica上输入以下程序a=0;b=1;k=10;f[x_]:=1d=N[Integrate[f[x],{x,a,b}],k];s1[m_]:=N[Sum[f[a+i*(b-a)/m]*(b-a)/m,{i,0,m-1}],k];s2[m_]:=N[Sum[f[a+(i+1/2)*(b-a)/m]*(b-a)/m,{i,0,m-1}],k]s3[m_]:=N[Sum[f[a+i*(b-a)/m]*(b-a)/m,{i,1,m}],k];s4[m_]:=N[Sum[(f[a+i*(b-a)/m]+f[a+(i+1)*(b-a)/m])/2*(b-a)/m,{i,0,m-1}],k];s5[m_]:=N[(b-a)/m/6*((f[a]+f[b])+2*Sum[f[a+i*(b-a)/m],{i,1,m-1}] +4*Sum[f[a+(i-1/2)*(b-a)/m],{i,1,m}]),k];r1[m_]:=d-s1[m];r2[m_]:=d-s2[m];r3[m_]:=d-s3[m];r4[m_]:=d-s4[m];r5 [m_]:=d-s5[m];t=Table[{s1[m],r1[m],s2[m],r2[m],s3[m],r3[m],s4[m],r4[m],s5[m],r5 [m]}, {m,100,1000,100}]运行结果为:3. 在mathmatica上输入以下程序a=0;b=1;k=10;f[x_]:=xd=N[Integrate[f[x],{x,a,b}],k];s1[m_]:=N[Sum[f[a+i*(b-a)/m]*(b-a)/m,{i,0,m-1}],k];s2[m_]:=N[Sum[f[a+(i+1/2)*(b-a)/m]*(b-a)/m,{i,0,m-1}],k]s3[m_]:=N[Sum[f[a+i*(b-a)/m]*(b-a)/m,{i,1,m}],k];s4[m_]:=N[Sum[(f[a+i*(b-a)/m]+f[a+(i+1)*(b-a)/m])/2*(b-a)/m,{i,0,m-1}],k];s5[m_]:=N[(b-a)/m/6*((f[a]+f[b])+2*Sum[f[a+i*(b-a)/m],{i,1,m-1}] +4*Sum[f[a+(i-1/2)*(b-a)/m],{i,1,m}]),k];r1[m_]:=d-s1[m];r2[m_]:=d-s2[m];r3[m_]:=d-s3[m];r4[m_]:=d-s4[m];r5 [m_]:=d-s5[m];t=Table[{s1[m],r1[m],s2[m],r2[m],s3[m],r3[m],s4[m],r4[m],s5[m],r5 [m]}, {m,100,1000,100}]运行结果为:4. 在mathmatica上输入以下程序a=0;b=1;k=10;f[x_]:=x^2d=N[Integrate[f[x],{x,a,b}],k];s1[m_]:=N[Sum[f[a+i*(b-a)/m]*(b-a)/m,{i,0,m-1}],k];s2[m_]:=N[Sum[f[a+(i+1/2)*(b-a)/m]*(b-a)/m,{i,0,m-1}],k]s3[m_]:=N[Sum[f[a+i*(b-a)/m]*(b-a)/m,{i,1,m}],k];s4[m_]:=N[Sum[(f[a+i*(b-a)/m]+f[a+(i+1)*(b-a)/m])/2*(b-a)/m,{i,0 ,m-1}],k];s5[m_]:=N[(b-a)/m/6*((f[a]+f[b])+2*Sum[f[a+i*(b-a)/m],{i,1,m-1}] +4*Sum[f[a+(i-1/2)*(b-a)/m],{i,1,m}]),k];r1[m_]:=d-s1[m];r2[m_]:=d-s2[m];r3[m_]:=d-s3[m];r4[m_]:=d-s4[m];r 5[m_]:=d-s5[m];t=Table[{s1[m],r1[m],s2[m],r2[m],s3[m],r3[m],s4[m],r4[m],s5[m],r 5[m]}, {m,100,1000,100}]运行结果为:5. 在mathmatica上输入以下程序a=0;b=1;k=10;f[x_]:=Exp[x]d=N[Integrate[f[x],{x,a,b}],k];s1[m_]:=N[Sum[f[a+i*(b-a)/m]*(b-a)/m,{i,0,m-1}],k];s2[m_]:=N[Sum[f[a+(i+1/2)*(b-a)/m]*(b-a)/m,{i,0,m-1}],k]s3[m_]:=N[Sum[f[a+i*(b-a)/m]*(b-a)/m,{i,1,m}],k];s4[m_]:=N[Sum[(f[a+i*(b-a)/m]+f[a+(i+1)*(b-a)/m])/2*(b-a)/m,{i,0,m-1}],k];s5[m_]:=N[(b-a)/m/6*((f[a]+f[b])+2*Sum[f[a+i*(b-a)/m],{i,1,m-1}] +4*Sum[f[a+(i-1/2)*(b-a)/m],{i,1,m}]),k];r1[m_]:=d-s1[m];r2[m_]:=d-s2[m];r3[m_]:=d-s3[m];r4[m_]:=d-s4[m];r5 [m_]:=d-s5[m];t=Table[{s1[m],r1[m],s2[m],r2[m],s3[m],r3[m],s4[m],r4[m],s5[m],r5 [m]}, {m,100,1000,100}]运行结果为:6. 在mathmatica上输入以下程序a=0;b=1;k=10;f[x_]:= Log[1+x]d=N[Integrate[f[x],{x,a,b}],k];s1[m_]:=N[Sum[f[a+i*(b-a)/m]*(b-a)/m,{i,0,m-1}],k];s2[m_]:=N[Sum[f[a+(i+1/2)*(b-a)/m]*(b-a)/m,{i,0,m-1}],k]s3[m_]:=N[Sum[f[a+i*(b-a)/m]*(b-a)/m,{i,1,m}],k];s4[m_]:=N[Sum[(f[a+i*(b-a)/m]+f[a+(i+1)*(b-a)/m])/2*(b-a)/m,{i,0,m-1}],k];s5[m_]:=N[(b-a)/m/6*((f[a]+f[b])+2*Sum[f[a+i*(b-a)/m],{i,1,m-1}] +4*Sum[f[a+(i-1/2)*(b-a)/m],{i,1,m}]),k];r1[m_]:=d-s1[m];r2[m_]:=d-s2[m];r3[m_]:=d-s3[m];r4[m_]:=d-s4[m];r5 [m_]:=d-s5[m];t=Table[{s1[m],r1[m],s2[m],r2[m],s3[m],r3[m],s4[m],r4[m],s5[m],r5 [m]}, {m,100,1000,100}]运行结果为:7. 实验观察结果:随着n的增大,以及公式的更加精确性,求积分的误差d越来越小,结果越来越准确。