第七讲-定积分的近似计算课件_第1页
第七讲-定积分的近似计算课件_第2页
第七讲-定积分的近似计算课件_第3页
第七讲-定积分的近似计算课件_第4页
第七讲-定积分的近似计算课件_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

问题背景和实验目的定积分的近似计算定积分计算的基本公式是牛顿-莱布尼兹公式。但当被积函数的原函数不知道时,如何计算?这时就需要利用近似计算。特别是在许多实际应用中,被积函数甚至没有解析表达式,而是一条实验记录曲线,或一组离散的采样值,此时只能用近似方法计算定积分。本实验主要研究定积分的三种近似计算算法:矩形法、梯形法和抛物线法。同时介绍Matlab计算定积分的相关函数。问题背景和实验目的定积分的近似计算定积分计算的基本公式是1矩形法梯形法抛物线法

数值积分的常见算法主要内容

Matlab求积分函数数值积分函数:trapz、quad、dblquad、triplequad符号积分函数:int矩形法数值积分的常见算法主要内容Matlab求积分函2矩形法定积分的定义:定积分的近似计算矩形法定积分的定义:定积分的近似计算3矩形法d

充分小定积分的近似:

通常我们取左点法右点法中点法点可以任意选取,常见的取法有:

左端点,右端点和中点。矩形法d充分小定积分的近似:通常我们取左点法右点法中点4步长节点

右点法:

中点法:

左点法:左点法、右点法和中点法步长节点右点法:中点法:左点法:左点法、右点法和中点法5解:矩形法举例==>h=1/100=0.01,xi=i*h,a=0,b=1,n=100例:用不同的矩形法计算下面的定积分(取n=100),

并比较这三种方法的相对误差。左点法:右点法:中点法:(i=0,1,2,...,100)解:矩形法举例==>h=1/100=0.01,xi=6理论值:左点法相对误差:误差分析矩形法举例右点法相对误差:中点法相对误差:不同的方法有不同的计算精度有没有更好的近似计算定积分的方法

?理论值:左点法相对误差:误差分析矩形法举例右点法相对7定积分几何意义定积分几何意义8

曲边小梯形的面积可以由直边小梯形的面积来近似整个曲边梯形的面积:梯形法曲边小梯形的面积可以由直边小梯形的面积来近似整个曲边梯形9

如果我们n等分区间[a,b],即令:则==>梯形公式梯形法梯形公式与中点公式有什么区别

?如果我们n等分区间[a,b],即令:则==>梯形公式10解:==>例:用梯形法计算下面定积分(取n=100),

并计算相对误差梯形法举例a=0,b=1,n=100,f(x)=1/(1+x2)==>h=1/100=0.01,xi=i*h,yi=f(xi)

相对误差:解:==>例:用梯形法计算下面定积分(取n=10011

2n等分区间[a,b],得该直线用抛物线代替,计算精度是否会更好?计算每个节点上的函数值:抛物线法在区间[x0,x2]上,用过以下三点的抛物线来近似原函数f(x)。2n等分区间[a,b],得该直线用抛物线代替,计算精12设过以上三点的抛物线方程为:则在区间[x0,x2]上,有y=

x2+x

+

=p1(x)

抛物线法设过以上三点的抛物线方程为:则在区间[x0,x2]上13同理可得:相加即得:抛物线法同理可得:相加即得:抛物线法14整理后可得:或辛普森(Simpson)公式抛物线法公式抛物线法整理后可得:或辛普森(Simpson)公式抛物线法公式15==>例:用抛物线法计算下面定积分(取n=100),

并计算相对误差解:a=0,b=1,n=100,yi

=f(xi)=1/(1+xi2)相对误差:抛物线法==>例:用抛物线法计算下面定积分(取n=100)16矩形法梯形法抛物线法

数值积分的常见算法Matlab函数

Matlab求积分函数数值积分函数:trapz、quad、dblquad符号积分函数:int矩形法数值积分的常见算法Matlab函数Matlab17矩形法总结Matlab数值积分函数:trapz、quad、dblquad梯形法抛物线法矩形法总结Matlab数值积分函数:trapz、qua18梯形法:trapztrapz(x,y)

x

为分割点(节点)组成的向量,

y为被积函数在节点上的函数值组成的向量。Matlab近似计算定积分的相关函数Matlab计算定积分函数介绍梯形法:trapztrapz(x,y)

x为分割点(节点19前面的做法例:用梯形法计算下面定积分(取n=100)解:a=0,b=1,n=100,yi

=f(xi)=1/(1+xi2)>>

x=0:1/100:1;>>

y=1./(1+x.^2);>>

trapz(x,y)trapz函数trapz(x,1./(1+x.^2))trapz举例前面的做法例:用梯形法计算下面定积分(取n=100)20quad(f,a,b,tol)f=f(x)为被积函数,[a,b]为积分区间,tol

为计算精度将自变量看成是向量抛物线法:quad不用自己分割积分区间可以指定计算精度,若不指定,缺省精度是10-6精度越高,函数运行的时间越长此处的函数f是数值形式,应该使用数组运算,即

点运算:.*,./,.\,.^

注:抛物线法quad(f,a,b,tol)将自变量看成是向量抛物线法:21解:>>

quad('1./(1+x.^2)',0,1)>>

quad('1./(1+x.^2)',0,1,10e-10)函数表达式一定要用单引号括起来!涉及的运算一定要用数组运算!例:用quad计算定积分:quad举例解:>>quad('1./(1+x.^2)',0,1)>>22抛物线法计算二重积分:dblquaddblquad(f,a,b,c,d,tol)

tol

为计算精度,若不指定,则缺省精度为10-6

f可以是:

字符串;inline

定义的内联函数;函数句柄

[a,b]

是第一积分变量的积分区间,

[c,d]

是第二积分变量的积分区间dblquad抛物线法计算二重积分:dblquaddblquad(f,23>>

f=inline('4*x*y+3*y^2');>>

I=dblquad(f,-1,1,0,2)

f(x,y)

中关于第一自变量的运算是数组运算,

即把x

看成是向量,y

看成是标量。也可以全部采用数组运算例2:计算二重积分>>

dblquad(inline('4*x*y+3*x^2'),-1,1,0,2)>>

dblquad(inline('4*x*y+3*x.^2'),-1,1,0,2)X例1:计算二重积分dblquad举例>>f=inline('4*x*y+3*y^2');f(24例:计算二重积分>>

dblquad(@(x,y)4*x*y+3*x.^2,-1,1,0,2)指定x、y

分别是第一和第二积分变量>>

dblquad(inline('4*x*y+3*x.^2'),-1,1,0,2)被积函数f(x,y)的另一种定义方法:匿名函数>>

dblquad(@(y,x)4*x*y+3*x.^2,-1,1,0,2)下面的命令运行结果和上面的一样吗?dblquad举例例:计算二重积分>>dblquad(@(x,y)4*x*y25int(f,a,b)

计算

f

关于默认自变量

的定积分,积分区间为[a,b]。int(f)

计算

f

关于默认自变量

的不定积分。int(f,v,a,b)

计算函数f

关于自变量v

的定积分,积分区间为[a,b]int(f,v)

计算函数f

关于自变量

v

的不定积分findsym(f,1)符号积分:intint符号积分int(f,a,b)int(f)计算f关于默认26>>

symsxy;>>

f=y*sin(x);>>

int(f,x)>>

int(f,y)>>

int(f)>>

int('a+b')ans=-y*cos(x)ans=1/2*y^2*sin(x)ans=-y*cos(x)ans=a*b+1/2*b^2例:指出下面各条语句的输出结果int举例>>symsxy;ans=-y*cos(x)ans=127例:用int函数计算定积分:解:>>

symsx;>>

f=1/(1+x^2);>>

int(f,x,0,1)>>

f=sym('1/(1+x^2)');>>

int(f,x,0,1)>>

int('1/(1+x^2)',x,0,1)或>>

int('1/(1+x^2)',0,1)或或int举例例:用int函数计算定积分:解:>>symsx;>28double(a)将a

转化为双精度型,若a

是字符,则取对应的ASCII码>>

a=3;>>

double(a)>>

double('a')例:ans=3ans=97其它相关函数double(a)>>a=3;例:ans=3ans29>>

x=1:0.001:2;>>

y=exp(x.^(-2));>>

trapz(x,y)梯形法:抛物线法:>>

quad('exp(x.^(-2))',1,2,10e-10)符号积分法:>>

syms

x>>

int('exp(x^(-2))',x,1,2)例1:用Matlab

函数近似计算积分数值实验>>x=1:0.001:2;梯形法:抛物线法:>>q30抛物线法:>>

dblquad(inline('x+y^2'),0,2,-1,1)符号积分法:>>

f=int('x+y^2','y',-1,1);>>

int(f,0,2)数值实验例2:用Matlab

函数近似计算二重积分抛物线法:>>dblquad(inline('x+y^231抛物线法计算三重积分:triplequadtriplequad(f,a,b,c,d,e,f,tol)

tol

为计算精度,若不指定,则缺省精度为10-6

f可以是:

字符串;inline

定义的内联函数;函数句柄

[a,b]

是第一积分变量的积分区间,

[c,d]

是第二积分变量的积分区间

[e,f]是第二积分变量的积分区间triplequad抛物线法计算三重积分:triplequadtripleq32

f(x,y,z)

中关于前两个自变量的运算是数组运算,

即把x,y看成是向量,z看成是标量。也可以全部采用数组运算例2:计算三重积分>>

triplequad(inline('4*x.*y+3*x.^2+z^2'),-1,1,0,2,0,1)>>

symsxyz>>int(int(int('4*x*y+3*x^2+z^2',x,-1,1),y,0,2),z,0,1)triplequad举例f(x,y,z)中关于前两个自变量的运算是数组运算,

33>>

triplequad(@(x,y,z)4*x.*y+3*x.^2+z^2,-1,1,0,2,0,1)指定x、y,

z

分别是第一、二、三积分变量>>

triplequad(inline('4*x.*y+3*x.^2+z^2'),-1,1,0,2,0,1)被积函数f(x,y,z)的另一种定义方法:匿名函数triplequad举例例2:计算三重积分>>triplequad(@(x,y,z)4*x.*y+334梯形数值积分命令trapz()clearx=0:pi/100:pi;y=sin(x);trapz(x,y)plot(x,y,'b*')clearx=sort(rand(1,101)*pi);y=sin(x);trapz(x,y)plot(x,y,'rd')rand(1,101)产生101个均匀随机数,每个数都介于0-1之间梯形数值积分命令trapz()clearclearran35辛卜生求数值积分命令quad()clearfun=inline('1./(x.^3-2*x-5)')ezplot(fun,[0,2])[q,n]=quad(fun,0,2)辛卜生求数值积分命令quad()clear36二重积分dblquad()与三重积分fun=inline('y*sin(x)+x*cos(y)')Q=dblquad(fun,pi,2*pi,0,pi)[x,y]=meshgrid(pi:.1:2*pi,0:.1:pi);z=fun(x,y);mesh(x,y,z)二重积分dblquad()与三重积分fun=inline('37上机作业1.分别用梯形法与抛物线法,计算取n=120,并常识直接使用函数trapz()、quad()进行计算求解,比较结果的差异。2.试计算定积分注意:可以运用trapz()、quad()或附录程序求解吗?3.学习fuluBsum.m的程序设计方法,尝试用函数sum改写附录A和附录C的程序,避免for循环。上机作业1.分别用梯形法与抛物线法,计算取n=120,并38

问题背景和实验目的定积分的近似计算定积分计算的基本公式是牛顿-莱布尼兹公式。但当被积函数的原函数不知道时,如何计算?这时就需要利用近似计算。特别是在许多实际应用中,被积函数甚至没有解析表达式,而是一条实验记录曲线,或一组离散的采样值,此时只能用近似方法计算定积分。本实验主要研究定积分的三种近似计算算法:矩形法、梯形法和抛物线法。同时介绍Matlab计算定积分的相关函数。问题背景和实验目的定积分的近似计算定积分计算的基本公式是39矩形法梯形法抛物线法

数值积分的常见算法主要内容

Matlab求积分函数数值积分函数:trapz、quad、dblquad、triplequad符号积分函数:int矩形法数值积分的常见算法主要内容Matlab求积分函40矩形法定积分的定义:定积分的近似计算矩形法定积分的定义:定积分的近似计算41矩形法d

充分小定积分的近似:

通常我们取左点法右点法中点法点可以任意选取,常见的取法有:

左端点,右端点和中点。矩形法d充分小定积分的近似:通常我们取左点法右点法中点42步长节点

右点法:

中点法:

左点法:左点法、右点法和中点法步长节点右点法:中点法:左点法:左点法、右点法和中点法43解:矩形法举例==>h=1/100=0.01,xi=i*h,a=0,b=1,n=100例:用不同的矩形法计算下面的定积分(取n=100),

并比较这三种方法的相对误差。左点法:右点法:中点法:(i=0,1,2,...,100)解:矩形法举例==>h=1/100=0.01,xi=44理论值:左点法相对误差:误差分析矩形法举例右点法相对误差:中点法相对误差:不同的方法有不同的计算精度有没有更好的近似计算定积分的方法

?理论值:左点法相对误差:误差分析矩形法举例右点法相对45定积分几何意义定积分几何意义46

曲边小梯形的面积可以由直边小梯形的面积来近似整个曲边梯形的面积:梯形法曲边小梯形的面积可以由直边小梯形的面积来近似整个曲边梯形47

如果我们n等分区间[a,b],即令:则==>梯形公式梯形法梯形公式与中点公式有什么区别

?如果我们n等分区间[a,b],即令:则==>梯形公式48解:==>例:用梯形法计算下面定积分(取n=100),

并计算相对误差梯形法举例a=0,b=1,n=100,f(x)=1/(1+x2)==>h=1/100=0.01,xi=i*h,yi=f(xi)

相对误差:解:==>例:用梯形法计算下面定积分(取n=10049

2n等分区间[a,b],得该直线用抛物线代替,计算精度是否会更好?计算每个节点上的函数值:抛物线法在区间[x0,x2]上,用过以下三点的抛物线来近似原函数f(x)。2n等分区间[a,b],得该直线用抛物线代替,计算精50设过以上三点的抛物线方程为:则在区间[x0,x2]上,有y=

x2+x

+

=p1(x)

抛物线法设过以上三点的抛物线方程为:则在区间[x0,x2]上51同理可得:相加即得:抛物线法同理可得:相加即得:抛物线法52整理后可得:或辛普森(Simpson)公式抛物线法公式抛物线法整理后可得:或辛普森(Simpson)公式抛物线法公式53==>例:用抛物线法计算下面定积分(取n=100),

并计算相对误差解:a=0,b=1,n=100,yi

=f(xi)=1/(1+xi2)相对误差:抛物线法==>例:用抛物线法计算下面定积分(取n=100)54矩形法梯形法抛物线法

数值积分的常见算法Matlab函数

Matlab求积分函数数值积分函数:trapz、quad、dblquad符号积分函数:int矩形法数值积分的常见算法Matlab函数Matlab55矩形法总结Matlab数值积分函数:trapz、quad、dblquad梯形法抛物线法矩形法总结Matlab数值积分函数:trapz、qua56梯形法:trapztrapz(x,y)

x

为分割点(节点)组成的向量,

y为被积函数在节点上的函数值组成的向量。Matlab近似计算定积分的相关函数Matlab计算定积分函数介绍梯形法:trapztrapz(x,y)

x为分割点(节点57前面的做法例:用梯形法计算下面定积分(取n=100)解:a=0,b=1,n=100,yi

=f(xi)=1/(1+xi2)>>

x=0:1/100:1;>>

y=1./(1+x.^2);>>

trapz(x,y)trapz函数trapz(x,1./(1+x.^2))trapz举例前面的做法例:用梯形法计算下面定积分(取n=100)58quad(f,a,b,tol)f=f(x)为被积函数,[a,b]为积分区间,tol

为计算精度将自变量看成是向量抛物线法:quad不用自己分割积分区间可以指定计算精度,若不指定,缺省精度是10-6精度越高,函数运行的时间越长此处的函数f是数值形式,应该使用数组运算,即

点运算:.*,./,.\,.^

注:抛物线法quad(f,a,b,tol)将自变量看成是向量抛物线法:59解:>>

quad('1./(1+x.^2)',0,1)>>

quad('1./(1+x.^2)',0,1,10e-10)函数表达式一定要用单引号括起来!涉及的运算一定要用数组运算!例:用quad计算定积分:quad举例解:>>quad('1./(1+x.^2)',0,1)>>60抛物线法计算二重积分:dblquaddblquad(f,a,b,c,d,tol)

tol

为计算精度,若不指定,则缺省精度为10-6

f可以是:

字符串;inline

定义的内联函数;函数句柄

[a,b]

是第一积分变量的积分区间,

[c,d]

是第二积分变量的积分区间dblquad抛物线法计算二重积分:dblquaddblquad(f,61>>

f=inline('4*x*y+3*y^2');>>

I=dblquad(f,-1,1,0,2)

f(x,y)

中关于第一自变量的运算是数组运算,

即把x

看成是向量,y

看成是标量。也可以全部采用数组运算例2:计算二重积分>>

dblquad(inline('4*x*y+3*x^2'),-1,1,0,2)>>

dblquad(inline('4*x*y+3*x.^2'),-1,1,0,2)X例1:计算二重积分dblquad举例>>f=inline('4*x*y+3*y^2');f(62例:计算二重积分>>

dblquad(@(x,y)4*x*y+3*x.^2,-1,1,0,2)指定x、y

分别是第一和第二积分变量>>

dblquad(inline('4*x*y+3*x.^2'),-1,1,0,2)被积函数f(x,y)的另一种定义方法:匿名函数>>

dblquad(@(y,x)4*x*y+3*x.^2,-1,1,0,2)下面的命令运行结果和上面的一样吗?dblquad举例例:计算二重积分>>dblquad(@(x,y)4*x*y63int(f,a,b)

计算

f

关于默认自变量

的定积分,积分区间为[a,b]。int(f)

计算

f

关于默认自变量

的不定积分。int(f,v,a,b)

计算函数f

关于自变量v

的定积分,积分区间为[a,b]int(f,v)

计算函数f

关于自变量

v

的不定积分findsym(f,1)符号积分:intint符号积分int(f,a,b)int(f)计算f关于默认64>>

symsxy;>>

f=y*sin(x);>>

int(f,x)>>

int(f,y)>>

int(f)>>

int('a+b')ans=-y*cos(x)ans=1/2*y^2*sin(x)ans=-y*cos(x)ans=a*b+1/2*b^2例:指出下面各条语句的输出结果int举例>>symsxy;ans=-y*cos(x)ans=165例:用int函数计算定积分:解:>>

symsx;>>

f=1/(1+x^2);>>

int(f,x,0,1)>>

f=sym('1/(1+x^2)');>>

int(f,x,0,1)>>

int('1/(1+x^2)',x,0,1)或>>

int('1/(1+x^2)',0,1)或或int举例例:用int函数计算定积分:解:>>symsx;>66double(a)将a

转化为双精度型,若a

是字符,则取对应的ASCII码>>

a=3;>>

double(a)>>

double('a')例:ans=3ans=97其它相关函数double(a)>>a=3;例:ans=3ans67>>

x=1:0.001:2;>>

y=exp(x.^(-2));>>

trapz(x,y)梯形法:抛物线法:>>

quad('exp(x.^(-2))',1,2,10e-10)符号积分法:>>

syms

x>>

int('exp(x^(-2))',x,1,2)例1:用Matlab

函数近似计算积分数值实验>>x=1:0.001:2;梯形法:抛物线法:>>q68抛物线法:>>

dblquad(inline('x+y^2'),0,2,-1,1)符号积分法:>>

f=int('x+y^2','y',-1,1);>>

int(f,0,2)数值实验例2:用Matlab

函数近似计算二重积分抛物线法:>>dblquad(inline('x+y^269抛物线法计算三重积分:triplequadtriplequad(f,a,b,c,d,e,f,tol)

tol

为计算精度,若不指定,则缺省精度为10-6

f可以是:

字符串;inline

定义的内联函数;函数句柄

[a,b]

是第一积分变量的积分区间,

[c,d]

是第二积分变量的积分区间

[

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论