鹰潭网站建设,wordpress ality 预览,中科汇联网站建设手册,mvc5网站开发之美matlab-ch013(数值计算-微积分)20090923.ppt 第13讲 数值计算 —微积分,张建瓴,13.1 数值积分,在工程教学和应用中#xff0c;除了进行数据逼近外#xff0c;还要求逼近曲线下面的面积#xff0c;这就是积分问题。,一、数值积分方法,典型的数值积分方法有#xff1a;用常数…matlab-ch013(数值计算-微积分)20090923.ppt 第13讲 数值计算 —微积分,张建瓴,§13.1 数值积分,在工程教学和应用中除了进行数据逼近外还要求逼近曲线下面的面积这就是积分问题。,一、数值积分方法,典型的数值积分方法有用常数(0阶多项式)近似函数矩形法用直线(一阶多项式)近似函数曲线的梯形法用抛物线(二阶多项式)近似函数曲线的Simpson法以及用一般多项式近似函数的Romberg法等。 ysin(x^3)*sqrt(x) x求y, 表13-1列出了函数数值积分的一些命令。,表13-1 函数数值积分的命令,,常见的一元数值积分命令,MATLAT提供了在有限区间内数值计算某函数下的面积(积分)的三种函数trapzquad和quad8。,二、一(元)维数值积分,1、trapz函数 函数trapz通过计算若干梯形面积的和来近似某函数的积分这些梯形如图13-1所示是通过使用函数humps的数据点形成。,图13-2 较好的梯形逼近曲线下的面积示意图 从图中可明显地看出单个梯形的面积在某一段欠估计了函数真正的面积而在其它段又过估计了函数的真正面积。如同线性插值当梯形数目越多时函数的近似面积越准确。例如在图13-1中如果我们大致增加一倍数目的梯形我们得到如下(如图13-2)所示的更好的近似结果。,trapz 函数,对如上所示的两个曲线用trapz在区间-1x-1: 0.17: 2; % rough approximation yhumps(x); areatrapz(x, y) % call trapz just like the plot command area  25.9174,trapz 函数的应用,x-1: 0.07: 2; % better approximation yhumps(x); areatrapz(x , y) area  26.6243 上述两个结果不同是基于对图形的观察粗略近似可能低估了实际面积。除非特别精确没有准则说明哪种近似效果更好。,trapz 函数的应用,MATLAB提供的求积函数命令quad和quad8在使用时其递推的层次限制在十层以内达到这个限制则会提示警告信息并且这两个函数命令都不能解决可积的奇异值问题例如求解 。,quad函数和quad8函数,函数quad和quad8完整的调用格式为 (1)qquad( fun ,a,b,tol,trace,pl,p2,…) 采用Simpson法计算积分 (2)qquad8( fun ,a,b,tol,trace,p1,p2,…) 采用八样条Newton-Cotes公式求数值积分。 其中fun是被积函数可以是表达式字符串、内联函数、M函数文件名被积函数的自变量一般采用字母x a、b分别是积分的上、下限都是确定的值,quad和quad8函数调用格式,tol是一个二元向量它的第一个元素用来控制相对误差第二个元素用来控制绝对误差缺省时积分的相对精度为0.001 trace如果取非零值时将以动态图形的形式展现积分的整个过程若取零值则不画图其缺省值是0 pl和p2是向被积函数传递的参数。 在上面的调用格式中前三个输入参数是调用时必须的而后面的输入参数可缺省。,quad和quad8的参数,MATLAB的函数quad和quad8是基于数学上的正方形概念来计算函数的面积。为获得更准确的结果两个函数在所需的区间都要计算被积函数。 与简单的梯形比较这两个函数进行更高阶的近似而且quad8比quad更精确。这两个函数的调用方法与fzero相同即 areaquad(‘humps‘,-1,2) % find area between -1 and 2 area  26.3450,quad和quad8函数的调用,areaquad8(‘humps‘,-1,2) area  26.3450 注意 这两个函数返回完全相同的估计面积而且这个估计值在两个trapz面积的估计值之间。,quad和quad8函数的调用,求函数的数值积分 (1)建立函数funq function yfunq(x) yx.^3x.^22; (2)对被积函数funq进行数值积分 qquad( funq ,-1,1,le-4) 使用quad命令求数值积分 q 4.6667,[例13-1] example13_1.m,q8quad8( funq ,-1,1,le-4,1) 用quad8命令求数值积分 q8 4.6667 程序的运行结果显示出积分的过程如图13-3所示。,[例13-1],,一元函数积分中存在的问题同样存在于多重积分中。 1、积分限为常数的二重积分 多重积分使用函数dblquad其完整的调用格式为 resultdblquad( fun ,inmin, inmax, outmin, outmax, tol, ) 其中输入参数fun是被积函数可以直接用字符串内联函数或M函数文件表达但不论什么形式该被积函数应有两个变量即内变量和外变量。内变量接受向量输入外变量接受标量输入。被积函数的输出是与内变量同长的向量。,三、多重数值积分,输入参数inmininmax是内变量的下限和上限 outmin、outmax是外变量的下限和上限 tol的含义与命令quad中的情况相同 是积分方法选项如“quad”和“quad8”等。 注意 该命令不适用于内积分区间上、下限为函数的情况。,dblquad函数的参数,求积分上下限都为常数的二重积分被积函数为y*sin(x)s*cos(y)其中x的取值范围是π到2πy的取值范围是0到π。 (1)建立名为integrnd的M文件 fimction outintegrnd(x,y) outy*sin(x)x*cos(y) (2)用函数dblquad命令来求integrnd的二重积分 resultdblquad( integrnd ,pi,2*pi,0,pi) result -9.8698,〖例13-6〗 example13_6.m,对于内积分上下限是外积分变量的函数的积分问题求解过程较为麻烦。 一般方法都是先求出 然后再求 。,2、内积分上下限为函数的二重积分,,,【例13-10】计算。 (1)编写内积分区间上下限的M函数文件 [x_low.m] function fx_low(y) fsqrt(y); (2)编写被积函数 被积函数函数采用内联函数ffinline( x.^2y.^2 , x , y )表示。 (3)被积函数用内联函数表达时运行以下指令即得结果 ffinline( x.^2y.^2 , x , y );%被积函数的内联函数表达 SSdouble_int(ff, x_low ,2,1,4) SS  9.5810 (4)本题用符号计算很容易获得高精度解 Ssymvpa(int(int( x^2y^2 , x , sqrt(y) ,2), y ,1,4)) Ssym  9.580952380952381,