定积分的近似计算(数学实验报告matlab版)
matlab实验报告--定积分的近似计算

abs((inum2-integrate)/integrate))
fprintf('the relative error between inum3 and real-value is about: %g\n\n',...
abs((inum3-integrate)/integrate)) 【调试结果】
○2 使用函数 quad()
quad('sin(x)./x',0,inf) 【调试结果】 ans =
NaN
○3 程序法
%矩阵法
format long
n=inf;a=0;b=inf;
syms x fx
fx=sin(x)./x;
i=1:n;
xj=a+(i-1)*(b-a)/n; xi=a+i*(b-a)/n;
实验目的:
本实验将主要研究定积分的三种近似计算算法:矩形法、梯形法、抛物线法。对于定 积分的近似数值计算,Matlab 有专门函数可用。
实验原理与数学模型:
1. 矩形法 根据定积分的定义,每一个积分和都可以看作是定积分的一个近似值,即
在几何意义上,这是用一系列小矩形面积近似小曲边梯形的结果,所以把这个近似计 算方法称为矩形法.不过,只有当积分区间被分割得很细时,矩形法才有一定的精确度.
【调试结果】
inum =
0.78539816339745
the relative error between inum and real-value is about: 2.82716e-016
【情况记录】
1、梯形法和抛物线法程序设计较为顺利。但要注意使用 for 循环函数和求和函数时
的不同 matlab 命令,避免混淆出错。使用函数 trapz(),quad()时要注意被积函数是数 值形式,应使用数组计算,应用点除即 ./ ,否则将出错,不能调试出结果。
MATLAB实验三 定积分的近似计算

实验三定积分的近似计算一、问题背景与实验目的利用牛顿—莱布尼兹公式虽然可以精确地计算定积分的值,但它仅适用于被积函数的原函数能用初等函数表达出来的情形.如果这点办不到或者不容易办到,这就有必要考虑近似计算的方法.在定积分的很多应用问题中,被积函数甚至没有解析表达式,可能只是一条实验记录曲线,或者是一组离散的采样值,这时只能应用近似方法去计算相应的定积分.本实验将主要研究定积分的三种近似计算算法:矩形法、梯形法、抛物线法.对于定积分的近似数值计算,Matlab有专门函数可用.二、相关函数(命令)及简介1.sum(a):求数组a的和.2.format long:长格式,即屏幕显示15位有效数字.(注:由于本实验要比较近似解法和精确求解间的误差,需要更高的精度).3.double():若输入的是字符则转化为相应的ASCII码;若输入的是整型数值则转化为相应的实型数值.4.quad():抛物线法求数值积分.格式:quad(fun,a,b) ,注意此处的fun是函数,并且为数值形式的,所以使用*、/、^等运算时要在其前加上小数点,即.*、./、.^等.例:Q = quad('1./(x.^3-2*x-5)',0,2);5.trapz():梯形法求数值积分.格式:trapz(x,y)其中x为带有步长的积分区间;y为数值形式的运算(相当于上面介绍的函数fun)例:计算0sin()dx xπ⎰x=0:pi/100:pi;y=sin(x);trapz(x,y)6.dblquad():抛物线法求二重数值积分.格式:dblquad(fun,xmin,xmax,ymin,ymax),fun可以用inline定义,也可以通过某个函数文件的句柄传递.例1:Q1 = dblquad(inline('y*sin(x)'), pi, 2*pi, 0, pi)顺便计算下面的Q2,通过计算,比较Q1 与Q2结果(或加上手工验算),找出积分变量x、y的上下限的函数代入方法.Q2 = dblquad(inline('y*sin(x)'), 0, pi, pi, 2*pi)例2:Q3 = dblquad(@integrnd, pi, 2*pi, 0, pi)这时必须存在一个函数文件integrnd.m:function z = integrnd(x, y) z = y*sin(x);7.fprintf (文件地址,格式,写入的变量):把数据写入指定文件.例:x = 0:.1:1; y = [x; exp(x)];fid = fopen('exp.txt','w'); %打开文件 fprintf(fid,'%6.2f %12.8f\n',y); %写入 fclose(fid) %关闭文件 8.syms 变量1 变量2 …:定义变量为符号. 9.sym('表达式'):将表达式定义为符号.解释:Matlab 中的符号运算事实上是借用了Maple 的软件包,所以当在Matlab 中要对符号进行运算时,必须先把要用到的变量定义为符号. 10.int(f,v,a,b):求f 关于v 积分,积分区间由a 到b .11.subs(f ,'x',a):将 a 的值赋给符号表达式 f 中的 x ,并计算出值.若简单地使用subs(f),则将f 的所有符号变量用可能的数值代入,并计算出值.三、实验内容1. 矩形法根据定积分的定义,每一个积分和都可以看作是定积分的一个近似值,即1()d ()nbi i ai f x x f x ς==∆∑⎰在几何意义上,这是用一系列小矩形面积近似小曲边梯形的结果,所以把这个近似计算方法称为矩形法.不过,只有当积分区间被分割得很细时,矩形法才有一定的精确度.针对不同i ς的取法,计算结果会有不同,我们以 120d 1xx +⎰为例(取100=n ),(1) 左点法:对等分区间b x i n ab a x x a x n i =<<-+=<<<=ΛΛ10,在区间],[1i i x x -上取左端点,即取1-=i i x ς,12 01d ()1ni i i xf x x ς==∆≈+∑⎰0.78789399673078, 理论值 12 0d 14x x π=+⎰,此时计算的相对误差0.7878939967307840.0031784ππ-=≈(2)右点法:同(1)中划分区间,在区间],[1i i x x -上取右端点,即取i i x =ς,12 01d ()1ni i i xf x x ς==∆≈+∑⎰0.78289399673078, 理论值 12 0d 14x x π=+⎰,此时计算的相对误差 0.7828939967307840.0031884ππ-=≈(3)中点法:同(1)中划分区间,在区间1[,]i i x x -上取中点,即取12i ii x x ς-+=, 12 01d ()1ni i i xf x x ς==∆≈+∑⎰0.78540024673078, 理论值 12 0d 14x x π=+⎰,此时计算的相对误差 60.7854002467307842.653104ππ--=≈⨯如果在分割的每个小区间上采用一次或二次多项式来近似代替被积函数,那么可以期望得到比矩形法效果好得多的近似计算公式.下面介绍的梯形法和抛物线法就是这一指导思想的产物.2. 梯形法等分区间b x i n a b a x x a x n i =<<-+=<<<=ΛΛ10,nab x -=∆ 相应函数值为n y y y ,,,10Λ(n i x f y i i ,,1,0),(Λ==).曲线)(x f y =上相应的点为n P P P ,,,10Λ(n i y x P i i i ,,1,0),,(Λ==)将曲线的每一段弧i i P P 1-用过点1-i P ,i P 的弦i i P P 1-(线性函数)来代替,这使得每个],[1i i x x -上的曲边梯形成为真正的梯形,其面积为x y y ii ∆⨯+-21,n i ,,2,1Λ=. 于是各个小梯形面积之和就是曲边梯形面积的近似值,11 11()d ()22nnbi i i i ai i y y x f x x x y y --==+∆≈⨯∆=+∑∑⎰, 即11 ()d ()22bn n ay y b a f x x y y n --≈++++⎰L , 称此式为梯形公式.仍用 12 0d 1x x +⎰的近似计算为例,取100=n ,10112 0d ()122n n y y x b a y y x n --≈++++=+⎰L 0.78539399673078, 理论值 12 0d 14x x π=+⎰,此时计算的相对误差 60.7853939967307845.305104ππ--=≈⨯很显然,这个误差要比简单的矩形左点法和右点法的计算误差小得多.3. 抛物线法由梯形法求近似值,当)(x f y =为凹曲线时,它就偏小;当)(x f y =为凸曲线时,它就偏大.若每段改用与它凸性相接近的抛物线来近似时,就可减少上述缺点,这就是抛物线法.将积分区间],[b a 作n 2等分,分点依次为b x i n a b a x x a x n i =<<-+=<<<=2102ΛΛ,nab x 2-=∆, 对应函数值为n y y y 210,,,Λ(n i x f y i i 2,,1,0),(Λ==),曲线上相应点为n P P P 210,,,Λ(n i y x P i i i 2,,1,0),,(Λ==).现把区间],[20x x 上的曲线段)(x f y =用通过三点),(000y x P ,),(111y x P ,),(222y x P 的抛物线)(12x p x x y =++=γβα来近似代替,然后求函数)(1x p 从0x 到2x 的定积分:21 ()d x x p x x =⎰22 ()d x x x x x αβγ++=⎰)()(2)(30220223032x x x x x x -+-+-γβα]4)(2)()()[(62022022202002γβαγβαγβα++++++++++-=x x x x x x x x x x 由于2201x x x +=,代入上式整理后得 21 ()d x x p x x ⎰)](4)()[(612122202002γβαγβαγβα++++++++-=x x x x x x x x )4(621002y y y x x ++-=)4(6210y y y nab ++-= 同样也有422 ()d x x p x x ⎰)4(6432y y y n ab ++-=……222 ()d n n x nx p x x -⎰)4(621222n n n y y y nab ++-=-- 将这n 个积分相加即得原来所要计算的定积分的近似值:22222212 11()d ()d (4)6ii nnbx i i i i ax i i b af x x p x x y y y n---==-≈=++∑∑⎰⎰, 即021******* ()d [4()2()]6bn n n ab af x x y y y y y y y y n---≈++++++++⎰L L 这就是抛物线法公式,也称为辛卜生(Simpson )公式.仍用 12 0d 1x x +⎰的近似计算为例,取100=n ,102132124222 0d [4()2()]16n n n x b ay y y y y y y y x n ---≈+++++++++⎰L L=0.78539816339745,理论值 12 0d 14x x π=+⎰,此时计算的相对误差 160.7853981633974542.827104ππ--=≈⨯4. 直接应用Matlab 命令计算结果(1) 数值计算 120d .1xx +⎰ 方法1:int('1/(1+x^2)','x',0,1) (符号求积分)方法2:quad('1./(1+x.^2)',0,1) (抛物线法求数值积分)方法3:x=0:0.001:1; y=1./(1+x.^2);trapz(x,y) (梯形法求数值积分) (2)数值计算 212 01d d x x y y -+⎰⎰方法1:int(int('x+y^2','y',-1,1),'x',0,2) (符号求积分)方法2:dblquad(inline('x+y^2'),0,2,-1,1) (抛物线法二重数值积分)四、自己动手1. 实现实验内容中的例子,即分别采用矩形法、梯形法、抛物线法计算 120d 1xx +⎰,取258=n ,并比较三种方法的精确程度.2. 分别用梯形法与抛物线法,计算 2 1d xx⎰,取120=n .并尝试直接使用函数trapz()、quad()进行计算求解,比较结果的差异.3. 试计算定积分 0sin d xx x+∞⎰.(注意:可以运用trapz()、quad()或附录程序求解吗?为什么?)4. 将 120d 1xx +⎰的近似计算结果与Matlab 中各命令的计算结果相比较,试猜测Matlab 中的数值积分命令最可能采用了哪一种近似计算方法?并找出其他例子支持你的观点.5. 通过整个实验内容及练习,你能否作出一些理论上的小结,即针对什么类型的函数(具有某种单调特性或凹凸特性),用某种近似计算方法所得结果更接近于实际值?6. 学习fulu2sum.m 的程序设计方法,尝试用函数 sum 改写附录1和附录3的程序,避免for 循环.五、附录附录1:矩形法(左点法、右点法、中点法)(fulu1.m ) format long n=100;a=0;b=1;inum1=0;inum2=0;inum3=0; syms x fx fx=1/(1+x^2); for i=1:nxj=a+(i-1)*(b-a)/n; %左点 xi=a+i*(b-a)/n; %右点 fxj=subs(fx,'x',xj); %左点值fxi=subs(fx,'x',xi); %右点值fxij=subs(fx,'x',(xi+xj)/2); %中点值inum1=inum1+fxj*(b-a)/n;inum2=inum2+fxi*(b-a)/n;inum3=inum3+fxij*(b-a)/n;endinum1inum2inum3integrate=int(fx,0,1)integrate=double(integrate)fprintf('The relative error between inum1 and real-value is about: %d\n\n',...abs((inum1-integrate)/integrate))fprintf('The relative error between inum2 and real-value is about: %d\n\n',...abs((inum2-integrate)/integrate))fprintf('The relative error between inum3 and real-value is about: %d\n\n',...abs((inum3-integrate)/integrate))附录2:梯形法(fulu2.m)format longn=100;a=0;b=1;inum=0;syms x fxfx=1/(1+x^2);for i=1:nxj=a+(i-1)*(b-a)/n;xi=a+i*(b-a)/n;fxj=subs(fx,'x',xj);fxi=subs(fx,'x',xi);inum=inum+(fxj+fxi)*(b-a)/(2*n);endinumintegrate=int(fx,0,1)integrate=double(integrate)fprintf('The relative error between inum and real-value is about: %d\n\n',...abs((inum-integrate)/integrate))附录2sum:梯形法(fulu2sum.m),利用求和函数,避免for 循环format longn=100;a=0;b=1;syms x fxfx=1/(1+x^2);i=1:n;xj=a+(i-1)*(b-a)/n; %所有左点的数组xi=a+i*(b-a)/n; %所有右点的数组fxj=subs(fx,'x',xj); %所有左点值fxi=subs(fx,'x',xi); %所有右点值f=(fxi+fxj)/2*(b-a)/n; %梯形面积inum=sum(f) %加和梯形面积求解integrate=int(fx,0,1)integrate=double(integrate)fprintf('The relative error between inum and real-value is about: %d\n\n',...abs((inum-integrate)/integrate))附录3:抛物线法(fulu3.m)format longn=100;a=0;b=1;inum=0;syms x fxfx=1/(1+x^2);for i=1:nxj=a+(i-1)*(b-a)/n; %左点xi=a+i*(b-a)/n; %右点xk=(xi+xj)/2; %中点fxj=subs(fx,'x',xj);fxi=subs(fx,'x',xi);fxk=subs(fx,'x',xk);inum=inum+(fxj+4*fxk+fxi)*(b-a)/(6*n);endinumintegrate=int(fx,0,1)integrate=double(integrate)fprintf('The relative error between inum and real-value is about: %d\n\n',...abs((inum-integrate)/integrate))。
数值积分的方法计算定积分,matlab实验

n 1 n 1 h f ( a ) 2 f ( x ) 4 f ( x 1 ) f (b) i i 6 i 1 i 0 2
编程如下: a=0; b=1; %积分上下限分别为 0,1, 将[0,1]区间 3 等分保证误差小于 e-5 n=3; h=(b-a)/n; %h 为区间长度 m=0;n=0; %定义变量并初始化 for x1=a+h:h:b-h m=m+exp(-x1); %计算以步长为 h 的所有节点函数值之和 end for x2=a+h/2:h:b-h/2 %计算以步长为 h/2 的所有节点函数值之和 n=n+exp(-x2); end S=h*(exp(0)+2*m+4*n+exp(-1))/6*2/sqrt(pi) %复化 simpson 公式求积分并输出 format long;
姓 名
学 号
班 级
成 绩
教师姓名:
时间:
( 教 师 填 写 )
实 验 报 告 要 求
如果步骤较多,请自行加页(A4 幅面)ຫໍສະໝຸດ 2e0
1
x
dx .
(1)复化梯形公式 分析: 由复化梯形公式可知, 余项 RTn
b a 2 '' '' x h f ( ) , 且 a=0, b=1, f ( x) e , 12
h
ba 1 1 x 1 x 1 e e 105 ,所以可 , 所以可得 RTn 2 2 2 n 12 n 12n 12n
n 1 h 得 n 91.29 ,所以 n 取 92, Tn [ f (a) 2 f ( xi ) f (b)] 。 2 i 1
程序: n=92,a=0,b=1;
matlab定积分及应用

实验四 定积分及应用实验的目的1、掌握利用Matlab 进行积分运算;2、掌握积分在计算面积、体积等问题中的应用;3、掌握各种积分指令的区别与特点。
实验的基本理论与方法1、定积分定义:函数)(x f 在区间],[b a 上的定积分定义为:设函数)(x f 在],[b a 上有界,在区间],[b a 上任取1-n 个分点:b x x x x x a n n =<<<<<=-1210 ,把],[b a 分成n 个小区间],[1i i i x x -=∆, n i ,,2,1 =。
这些分点构成对区间],[b a 的一个分割,用T 表示。
小区间i ∆的长度为1--=∆i i i x x x 。
记{}i ni x T ∆=≤≤1ma x ,称为分割T 的模。
在区间],[1i i ix x -=∆上取点i ξ)(1i i i x x ≤≤-ξ,做函数值)(i f ξ与小区间长度i x ∆的乘积),2,1()(n i x f i i =∆ξ,并作和∑=∆=ni i i x f S 1)(ξ。
当0→T 时,和S 总趋于确定的极限,这时这个极限为函数)(x f 在区间],[b a 上的定积分,记作⎰badx x f )(。
即i ni i T bax f dx x f ∆=∑⎰=→1)(lim )(ξ。
2、定积分的应用①计算平面图形的面积:由连续曲线)0)()((≥=x f x f y ,直线)(,b a b x a x <==及x 轴所围成的曲边梯形面积为⎰=badx x f S )(;②计算旋转体的体积:由连续曲线)(x f y =,直线)(,b a b x a x <==及x 轴所围成的曲边梯形绕x 轴旋转一周所成立体的体积为⎰=badx x f V 2)]([π;③计算平面曲线的弧长:设曲线弧由直线坐标方程))((b x a x f y ≤≤=给出,其中)(x f 在],[b a 上具有一阶连续导数,则曲线弧长dx y l ba⎰'+=21;设曲线弧由参数方程⎩⎨⎧≤≤==)(,)()(βαt t y y t x x 给出,其中)(),(t y t x 在],[βα上具有连续导数,则曲线弧长dt t y t x l ⎰'+'=βα22)()(;设曲线弧由极坐标方程))((βθαθ≤≤=r r 给出,其中)(θr 在],[βα上具有连续导数,则曲线弧长θθθβαd r r l ⎰'+=22)()(。
实验二:定积分的近似计算

实验二:定积分的近似计算实验目标:1、 熟悉MATLAB 的程序设计方法;2、 熟悉MATLAB 下命令文件和函数文件的建立和使用;3、 学习定积分的三种近似计算方法:矩形法、梯形法、辛普生法;4、 理解数值计算的误差分析。
问题背景:求定积分的近似值的数值方法就是用被积函数的有限个抽样值的离散或加权平均近似值代替定积分的值。
求某函数的定积分时,在多数情况下,被积函数的原函数很难用初等函数表达出来, 因此能够借助牛顿-莱布尼兹公式计算定积分的机会是不多的。
另外,许多实际问题中的被积函数往往是列表函数或其他形式的非连续函数,对这类函数的定积分,也不能用不定积分方法求解。
由于以上原因,数值积分的理论与方法一直是计算数学研究的基本课题。
定积分的近似解的简单方法包括:矩形公式、梯形公式和辛普生公式。
根据定积分的定义,每个积分和都可以看做是定积分的近似值,即⎰∑=∆=ba ni i i x f dx x f 1)()(ζ在几何意义上,这是用一系列小块区域的面积近似小曲边梯形的面积。
当然,只有当积分区间被分割的很细时,计算结果才具有一定的精确度。
● 矩形法:设积分区间被等分为若干份,第i 份是由][1+i i x x 表示,则该小块区域面积为:)(*1i i i x f x x -+ 或)(*11++-i i i x f x x 或)(*211++-i i i x f x x● 梯形法:设积分区间被等分为若干份,第i 份是由][1+i i x x 表示,取)(i x f 和)(1+i x f 的加权平均值作为平均高度)(i f ζ,则该小块区域面积为:2)()(*11+++-i i i i x f x f x x ● 辛普生法:设积分区间被等分为若干份,第i 份是由][1+i i x x 表示,中点为21+i x ,取函数)(x f 在i x ,1+i x ,21+i x 这是三点的函数值的加权平均值作为平均高度的近似值,则该小块区域面积为:6)()(4)(*1211+++++-i i i i i x f x f x f x x实验内容:1、 试推导定积分的三种近似计算方法的迭代公式(矩形法、梯形法、辛普生法)。
三用MATLAB实现定积分计算

s=s+feval(f,z1(j))+feval(f,z2(j));
0,2*pi,1000)
end
s=
s=s*h/2;
-267.2458
Gauss-lobatto是改进的高斯积分方法,采取自适应求积方法
三 用MATLAB实现定积分计算: 2 sin xdx 0
⑴ 矩形公式与梯形公式 z1 =
形的公求式积代公数式精。度为对于1,f 辛(x)甫=1森, x公, 式x 2的, x代3,数应精该度有为 3。
节成点立我x,ba下i和们依f面系先(次介x数考11)将绍dfA虑f(x的i(,xx节))是d=使点x1取t代数, (x消数xAb,为1对xaa精f22)(2区/bx,度而21x间)尽使3代等可用Ab入2分2能(fa1,(的1高1x1)即2限计的)f可制(算所得a,的谓2b到n积高确给分斯b定定近2公aA后似t式1,)同A值d。2时t有,x确1代,x定数2
这两种用随机模拟的方式求积分近似值的方法 z=sum(y)*pi/2/n
/2
z=
蒙特卡罗方法
sin xdx
1.0010
0
3、蒙特卡罗方法的通用函数与调用格式
均值估计法
随机投点法 (设0≤ f(x) ≤1)
b
a
f
( x)dx
ba n
n i1
f
(a (b a)ui )
直接调用。这里被积函数为内部函数,无需另外定义。
s=gaussinteg(‘sin', 0, pi/2,1000) s=
1.0000
6000
§2 数值积分应用问题举例4000
2000
0
一 求卫星轨道长度
定积分的近似计算

fxj=subs(fx,'x',xj);%符号运算,替换
fxi=subs(fx,'x',xi);%符号运算,替换
sum=sum+(fxi+fxj)*(b-a)/(2*n);%求矩形面积
end
sum%如果没有这句话就算不出最后的积分
结果:sum =0.6932
(2)抛物线法:
fzz=subs(fx,'x',zz);
f=(fxx+4*fyy+fzz)*(b-a)/(6*n);
s=sum(f)
结果:s=0.7854
实验结果报告及实验总结:
1.实验结果报告:
(1)梯形法:结果:sum =0.6932
(2)抛物线法:结果:sum = 0.6931
(3)trapz()法:结果:ans =0.6931
n=120;
a=1;
b=2;
sum=0;
syms x fx;
fx=1/x;
for i=1:n
xx=a+(2*i-2)*(b-a)/(2*n);%第一点的自变量取值后面是除2*n,不是n
yy=a+(2*i-1)*(b-a)/(2*n);%第二点的自变量取值后面是2*i-1
zz=a+(2*i-0)*(b-a)/(2*n);%复制后没改自变量的名字
且发现trapz()的调试结果与梯形法结果相同,故可猜测该Matlab中的数值积分命令函数trapz()采用了梯形法近似计算方法。
2.实验结果报告:
(1)使用int:结果:ans =pi/2
(2)使用函数trapz():
结果:Maximum variable size allowed by the program is exceeded.
定积分的近似计算97786

数学实验报告实验序号:4 日期:2012 年12 月13 日实验名称定积分的近似计算问题背景描述:利用牛顿—莱布尼兹公式虽然可以精确地计算定积分的值,但它仅适用于被积函数的原函数能用初等函数表达出来的情形.如果这点办不到或者不容易办到,这就有必要考虑近似计算的方法.在定积分的很多应用问题中,被积函数甚至没有解析表达式,可能只是一条实验记录曲线,或者是一组离散的采样值,这时只能应用近似方法去计算相应的定积分.实验目的:本实验将主要研究定积分的三种近似计算算法:矩形法、梯形法、抛物线法。
对于定积分的近似数值计算,Matlab有专门函数可用。
实验原理与数学模型:1.矩形法根据定积分的定义,每一个积分和都可以看作是定积分的一个近似值,即在几何意义上,这是用一系列小矩形面积近似小曲边梯形的结果,所以把这个近似计算方法称为矩形法.不过,只有当积分区间被分割得很细时,矩形法才有一定的精确度.针对不同的取法,计算结果会有不同。
(1)左点法:对等分区间,在区间上取左端点,即取。
(2)右点法:同(1)中划分区间,在区间上取右端点,即取。
(3)中点法:同(1)中划分区间,在区间上取中点,即取。
2.梯形法等分区间,相应函数值为().曲线上相应的点为()将曲线的每一段弧用过点,的弦(线性函数)来代替,这使得每个上的曲边梯形成为真正的梯形,其面积为,.于是各个小梯形面积之和就是曲边梯形面积的近似值,,即,称此式为梯形公式。
3.抛物线法将积分区间作等分,分点依次为,,对应函数值为(),曲线上相应点为().现把区间上的曲线段用通过三点,,的抛物线来近似代替,然后求函数从到的定积分:由于,代入上式整理后得同样也有……将这个积分相加即得原来所要计算的定积分的近似值:,即这就是抛物线法公式,也称为辛卜生(Simpson)公式.实验所用软件及版本:Matlab 7.0主要内容(要点):1.分别用梯形法与抛物线法,计算,取.并尝试直接使用函数trapz()、quad()进行计算求解,比较结果的差异.2.试计算定积分.(注意:可以运用trapz()、quad()或附录程序求解吗?为什么?)3.学习fulu2sum.m的程序设计方法,尝试用函数sum 改写附录1和附录3的程序,避免for 循环。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
fxij=(fxi+fxj)/2;
m=fxj*(b-a)/n;
p=fxi*(b-a)/n;k=fxij*(b-a)/n;
inum1=sum(m)
inum2=sum(p)
inum3=sum(k)
改写抛物线法
ex6gaixiepaowuxianfa.m
format long
syms x fx
fx=1./x;
for k=1:n
i=2*k-1; j=2*k;
xi=a+(b-a)*i/(2*n);
xj=a+(b-a)*j/(2*n);
fxi=subs(fx,'x',xi);
fxj=subs(fx,'x',xj);
m=m+fxi;p=p+fxj;
end
fxa=subs(fx,'x',a);
2,int使用较广泛,对被积函数的要求较弱,对广义积分同样适用。
3,Matlab编程中出错时可以根据提示修改,当不会修改时,换一种方法也行。可以尝试
多种方法求解。
4,sum()可以避免for循环
思考与深入:
Matlab的计算功能强大,可以方便的进行一些很复杂的计算,而且运算效率极高。
我对Matlab了解不够透彻,有时不知自己哪里出错,根据提示也不能修改,我会在今后的
学习应用中不断了解。
教师评语:
abs(inum-integrate)/integrate)
改写矩形法
ex6gaixiejuxingfa.m
format long
n=100;a=0;b=1;
syms x fx
fx=1/(1+x^2);
i=1:n;
xj=a+(i-1)*(b-a)/n;
xi=a+i*(b-a)/n;
fxj=subs(fx,'x',xj);
trapz(x,y)
(2)抛物线法:
formatlong
n=120;a=1;b=2;inum=0;
symsxfx
fx=1/x;
fori=1:n
xj=a+(i-1)*(b-a)/n;
xi=a+i*(b-a)/n;
xk=(xi+xj)/2;
fxj=subs(fx,'x',xj);
fxi=subs(fx,'x',xi);
针对不同 的取法,计算结果会有不同。
(1) 左点法:对等分区间
,在区间 上取左端点,即取 。
(2)右点法:同(1)中划分区间,在区间 上取右端点,即取 。
(3)中点法:同(1)中划分区间,在区间 上取中点,即取 。
2.梯形法
等分区间
, 相应函数值为 ( ).曲线 上相应的点为 ( )将曲线的每一段弧 用过点 , 的弦 (线性函数)
ex2zhi2paowuxianfa.m
format long
n=120;
a=1;b=2;m=0;p=0;
syms x fx
fx=1./x;
for k=1:n
i=2*k-1; j=2*k;
xi=a+(b-a)*i/(2*n);
xj=a+(b-a)*j/(2*n);
fxi=subs(fx,'x',xi);
fxb=subs(fx,'x',b);
inum=(b-a)*(fxa+fxb+4*m+2*p)/(6*n)
integrate=int(fx,1,2)
integrate=double(integrate)
fprintf('The relative error between inum and real-value is about:%g\n\n',...
fxk=subs(fx,'x',xk);
inum=inum+(fxj+4*fxk+fxi)*(b-a)/(6*n);
end
inum
quad('1./x',1,2)
2、(1)符号求积分:
int('sin(x)/x','x',0,inf)
(2)quad('sin(x)./x',0,inf)
3ex2zhi2tixingfa.m
来代替,这使得每个 上的曲边梯形成为真正的梯形,其面积为
, .于是各个小梯形面积之和就是曲边梯形面积的近似值,
,
即 ,称此式为梯形公式。
3.抛物线法
将积分区间 作 等分,分点依次为
, ,对应函数值为
( ),曲线上相应点为
( ).
现把区间 上的曲线段 用通过三点 , , 的抛物线
来近似代替,然后求函数 从 到 的定积分:
run('E:\matlab\ex2zhi2trapz.m')
inum =
0.69315152080005
integrate =
log(2)
integrate =
0.69314718055995
The relative error between inum and real-value is about:6.26164e-006
应用近似方法去计算相应的定积分,以便更好地熟练地掌握定积分的近似计算.
实验目的:
1加深理解积分理论中分割、近似、求和、取极限的思想方法;
2了解定积分近似计算的矩形法、梯形法与抛物线法;
3会用MATLAB语言编写求定积分近似值的程序,会用MALAB中的命令求定积分。
实验内容
1分别用梯形法与抛物线法,计算 ,取n=120.要求使用函数trapz()、quad()进行计算求解,并比较结果的差异;
format long
n=120;a=1;b=2;inum=0;
syms x fx
fx=1./x;
for i=1:n
xj=a+(i-1)*(b-a)/n; xi=a+i*(b-a)/n;
fxj=subs(fx,'x',xj); fxi=subs(fx,'x',xi);
inum=inum+(fxj+fxi)*(b-a)/(2*n);
symsxfx
fx=1/x;
fori=1:n
xj=a+(i-1)*(b-a)/n;
xi=a+i*(b-a)/n;
fxj=subs(fx,'x',xj);
fxi=subs(fx,'x',xi);
inum=inum+(fxj+fxi)*(b-a)/(2*n);
end
inum
x=1:1/120:2;
y=1./x;
由于 ,代入上式整理后得
同样也有
……
将这 个积分相加即得原来所要计算的定积分的近似值:
,
即
这就是抛物线法公式,也称为辛卜生(Simpson)公式.
实验所用软件及版本:2012B
主要内容:
1,分别用梯形法与抛物线法,计算 ,将积分区间[1,2]作120等分。并尝试用函数trapz(),quad()进行算求解,比较结果的差异。
2,试计算定积分.
(注意:可以运用trapz()、quad()、或附录程序求解吗?为什么?)
3,学习fuluBsum.m的程序设计方法,尝试用函数sum改写矩形法和抛物线法的程序,避免for循环。
实验过程记录(含基本步骤、主要程序清单及异常情况记录等):
1、(1)梯形法:
、formatlong
n=120;a=1;b=2;inum=0;
n=100;a=0;b=1;
syms x fx
fx=1/(1+x^2);
i=0:(n-1);
xj=a+(2*i)*(b-a)/(2*n);
xi=a+(2*i+1)*(b-a)/(2*n);
xk=a+(2*i+2)*(b-a)/(2*n);
fxj=subs(fx,'x',xj);
fxi=subs(fx,'x',xi);
数学实验报告
实验序号:2日期:2013年12月5日
班级
2011应数一班
姓名
孙婉婉
学号
1101114143
实验名称
定积分的近似计算
问题背景描述:
牛顿—莱布尼兹公式仅使用于被积函数的原函数能用初等函数表达出来的情形。如果这
点办不到或者不容易办到,就有必要考虑近似计算的方法。在定积分的许多应用问题中,被
积函数甚至没有解析表达式,可能只是一条实验记录曲线,或者是一组离散的采样值,这时
fxj=subs(fx,'x',xj);
m=m+fxi;p=p+fxj;
end
fxa=subs(fx,'x',a);
fxb=subs(fx,'x',b);
inum=(b-a)*(fxa+fxb+4*m+2*p)/(6*n)
integrate=int(fx,1,2)
integrate=double(integrate)
2试计算定积分 .(注意:可以运用trapz( )、quad( )或附录程序求解吗?为什么?);
3学习fuluBsum.m的程序设计方法,尝试用函数sum改写附录C的程序,避免for循环。
实验原理与数学模型:
实验原理与数学模型:
1. 矩形法:根据定积分的定义,每一个积分和都可以看作是定积分的一个近似值,即 在几何意义上,这是用一系列小矩形面积近似小曲边梯形的结果,所以把这个近似计算方法称为矩形法.不过,只有当积分区间被分割得很细时,矩形法才有一定的精确度.