《实验二定积分的近似计算.ppt》由会员分享,可在线阅读,更多相关《实验二定积分的近似计算.ppt(32页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1,实验二,定积分的近似计算,2,定积分计算的基本公式是牛顿莱布尼兹公式。但当被积函数的原函数不知道时,如何计算?这时就需要利用近似计算。特别是在许多实际应用中,被积函数甚至没有解析表达式,而是一条实验记录曲线,或一组离散的采样值,此时只能用近似方法计算定积分。,本实验主要介绍计算定积分的三种基本近似算法:矩形法、梯形法和抛物线法。同时介绍 Matlab 计算定积分的相关函数。,问题背景和实验目的,定积分近似计算,3,矩形法 梯形法 抛物线法,计算定积分的基本数值算法,主要内容,Matlab 计算积分的相关函数,数值积分函数 trapz、quad、integral、integral2 符号积分
2、函数:int,4,定积分的定义,定积分的近似,5,矩形法,取,点 的常见取法:左端点,右端点或中点,节点,步长,左 点 法,6,矩形法举例,用三种不同的矩形法计算下面的定积分 ( 取 n=100 ),并比较这三种方法的相对误差。,例:,fuluA.m,7,补:函数句柄,函数句柄的定义,fhandle = 函数名,函数句柄:可以理解成一个函数的代号或别名,调用函数句柄就等价于调用该函数。, 的作用就是将一个函数的函数句柄赋值给左边的变量,例:,f = sin; y = f(pi/3),8,补:匿名函数,匿名函数的定义,f = (变量列表) 表达式,例:,f = (x) 1/(1+x*x); %
3、一个自变量 y = f(2) whos f % f 是一个函数句柄,匿名函数是 MATLAB的一种函数描述形式,可以让用户编写简单的函数而不需要创建M文件,并且具有很高的执行效率。,f = (x,y) x2 + y2; % 两个自变量 y = f(2,3) % 注意对应关系,这里返回的 f 是一个函数句柄(function handle),9,补:匿名函数,匿名函数中可以采用数组运算,以便作用在向量或数组上,例:,f = (x) 1./(1+x.*x); % 一个自变量 x1 = 0 : 0.01 : 1; % x1 是向量 y1 = f(x1); % f 是作用在向量 x1 的每个分量上,如
4、果需要同时计算函数在多个点上的值,可以将函数直接作用在向量上,但此时函数的定义中必须采用数组运算!,10,理论值:,左点法相对误差:,相对误差分析,矩形法举例,右点法相对误差:,中点法相对误差:,不同的算法有不同的计算精度,有没有更好的近似计算定积分的方法 ?,11,定积分几何意义,12,曲边小梯形的面积可以由直边小梯形的面积来近似,整个曲边梯形的面积:,梯形法,13,如果我们 n 等分区间 a,b,即令:,则,梯形公式,梯形法,梯形公式与中点公式有什么区别 ?,14,解:,=,例:用梯形法计算定积分 ( 取 n=100 ),并计算相对误差,梯形法举例,a=0, b=1, n=100, f (
5、x) = 1/( 1+x2 ),相对误差:,fuluB.m,15,n 等分区间 a,b ,得,用抛物线代替该直线,计算精度是否会更好?,计算节点和中点上的函数值:,抛物线法,在区间 xi-1, xi 上,用过以下三点,的抛物线来近似原函数 f (x) 。,16,设过以上三点的抛物线方程为:,则在区间 xi-1, xi 上,有,y = x2 + x + = pi (x),抛物线法,17,相加后可得:,或,辛卜生 (Simpson) 公式,抛物线法公式,抛物线法,18,例:用抛物线法计算下面定积分 ( 取 n=100 ),并计算相对误差,解:,a=0, b=1, n=100,抛物线法,相对误差:,
6、fuluC.m,19,矩形法 梯形法 抛物线法,计算定积分的基本数值算法,主要内容,Matlab 计算积分的相关函数,数值积分函数 trapz、quad、integral、integral2 符号积分函数:int,20,trapz(x, y) x 为分割点(节点)组成的向量,y 为被积函数在节点上的函数值组成的向量。,梯形法,trapz,21,前面的做法,例:用梯形法计算下面定积分 ( 取 n=100 ),解:,a=0, b=1, n=100, yi = f (xi) = 1/( 1+xi2 ),x=0:1/100:1; y=1./(1+x.2); inum=trapz(x, y),trapz
7、函数,trapz 举例,22,quad(f,a,b,tol) f = f(x) 为被积函数,a,b 为积分区间,tol 为计算精度,将自变量看成是向量!,不用自己分割积分区间 可以指定计算精度,若不指定,缺省精度是 10-6 精度越高,函数运行的时间越长 f 是函数句柄,也可用字符串表示(不推荐), 其中涉及的运算必须采用数组运算,quad,自适应抛物线法,23,解:,f=(x) 1./(1+x.2); inum=quad(f, 0, 1) % 采用缺省精度,inum=quad(x) 1./(1+x.2), 0, 1, 1e-10),例:用 quad 计算定积分:,quad 举例,24,int
8、egral(f,a,b) integral(f,a,b,RelTol,tol),该函数比 quad 效率更高,且可以处理一些非正常积分 可以指定计算精度,若不指定,缺省精度是 10-6 f 必须是函数句柄,且涉及的运算必须采用数组运算,integral,全局自适应积分法(R2012a以后版本),f=(x) 1./(1+x.2); inum=integral(f,0,1) inum=integral(f,0,1,RelTol,1e-10),f=(x) exp(-x); inum=integral(f,0,inf),25,integral2(f,a,b,c,d,tol) integral2(f,a
9、,b,c,d,RelTol,tol),可以指定计算精度,若不指定,缺省精度是 10-6 f 必须是函数句柄,且涉及的运算必须采用数组运算,integral2,计算二重积分的全局自适应积分法,26,integral2,f=(x,y) 4*x.*y+3*y.2; inum=integral2(f,-1,1,0,2),例:计算二重积分,注意积分变量与积分区间的对应关系,27,int,符号积分,int(f,v,a,b) % 计算定积分 int(f,a,b) % 计算关于默认变量的定积分 int(f,v) % 计算不定积分 int(f) % 计算关于默认变量的不定积分,例:用 int 函数计算定积分:,
10、syms x; f=1/(1+x2); inum=int(f,x,0,1),28,double(a) 将 a 转化为双精度型,若 a 是字符,则取对应的 ASCII 码,a=3; x=double(a) y=double(a),例:,x=3 y=97,相关函数,29,x=1:0.001:2; y=exp(x.(-2); inum=trapz(x,y),梯形法:,抛物线法:,f=(x) exp(x.(-2); inum=quad(f, 1, 2, 1e-10),符号积分法:,syms x; inum=int(exp(x(-2),x,1,2),例:用 Matlab 函数近似计算定积分,数值实验,3
11、0,数值积分法:,f=(x,y) x+y.2; inum=integral2(f, 0, 2, -1, 1),符号积分法:,syms x y; f=int(x+y2,y,-1,1); inum=int(f,x,0,2),数值实验,例:用 Matlab 函数近似计算二重积分,31,上机作业,没有提到使用Matlab函数的题必须使用编程完成 要求使用Matlab函数或命令的必须使用函数或命令 使用课程主页上的附录程序,要求:,教材第 75 页:2、3、6,要求填写实验报告,上机作业,将所编写的程序分别命名为 hw221.m, hw222.m, hw231.m, hw261.m, hw262.m,32,上机要求,将所有文件作为附件,通过 foxmail 以邮件形式发给 mhjssystem.mail 邮件主题为:机号-学号-姓名,其中机号为 两位数 三个字段之间用英文状态下的减号连接 每个 M 文件的第一行添加一条注解语句:% 机号-学号-姓名,上机要求,
限制150内