伽马函数考研:第二章 Maple微积分运算




2022-06-15 03:01:17
作者:gong2022
0

第二章微积分运算 微积分是数学学习的重点和难点之一, 而微积分运算是Maple 最为拿手的计算之一, 任何解析函数, Maple 都可以求出它的导数来, 任何理论上可以计算的积分, Maple 都可 以毫不费力的将它计算出来. 随着作为数学符号计算平台的 Maple 的不断开发和研究, 越来越多的应用程序也在不断地创设. 函数的极限和连续1.1 函数和表达式的极限 在Maple 利用函数limit计算函数和表达式的极限. 如果要写出数学表达式, 命令格式为:limit(f,x=a); 时的命令格式为limit(f, 时的命令格式为limit(f, left);请看下述例子: limit(abs(x)/x,x=0);undefined 对于多重极限计算, 也用limit. 命令格式为: limit(f, points, dir); 其中, points是由一 系列方程定义的极限点, dir(可选项)代表方向: left(左)、right(右)等. 例如: undefined由于多重极限的复杂性,很多情况下 limit 无法找到答案,此时,不应轻易得出极 限不存在的结论,而是应该利用数学基础判定极限的存在性伽马函数考研,然后再寻找别的可行的方 法计算极限(如化n 重根限为n 次极限等)。

如下例就是化二重极限为二次极限而得正确 结果: 1.2函数的连续性 1.2.1 连续 在Maple 中可以用函数iscont 来判断一个函数或者表达式在区间上的连续性. 命令 格式为: iscont(expr, x=a..b, ´colsed´/´opened´); 其中, closed 表示闭区间, 而opened 表示开区间(此为系统默认状态). 如果表达式在区间上连续, iscont 返回true, 否则返回false, 当iscont 无法确定连续 性时返回 FAIL. 另外, iscont 函数假定表达式中的所有符号都是实数型. 颇为有趣的是, 当给定区间[a,b] iscont会自动按[b,a]处理. iscont(1/x,x=1..2);true iscont(1/x,x=-1..1,closed);false iscont(1/(x+a),x=0..1);FAIL iscont(ln(x),x=10..1);true 1.2.2 间断 函数 discont 可以寻找函数或表达式在实数域的间断点, 当间断点周期或成对出现 Maple会利用一些辅助变量予以表达, 比如, _Zn~(任意整数)、_NZn~(任意自然数) 和Bn~(一个二进制数, 或者1),其中n 是序号. 判定f(x)间断点的命令为: discont(f, _Z1函数round为“四舍五入”函数,上例并非一目了然,对其进一步理解可借助于函 数plot或下面给出的fdiscont例子。

伽马函数考研

另一个寻找间断点的函数fdiscont是用数值法寻找在实数域上的间断点. 命令格式 fdiscont(f,domain, res, ivar, eqns); 其中, f表示表达式或者, domain表示要求的区域, res表示要求的分辨率, ivar表示独立变 量名称, eqns表示可选方程. fdiscont(GAMMA(x/2),x=-10..0, 0.0001); -10.0000086158831731-9.99994148230377888 -8.00006570776243642-7.99994267738026022 -6.00006150975869534-5.99992641140166860 -4.00004327130417892-3.99994355004940650 -2.00005917347370676-1.99993152974711540 -.0000687478627751661410.0000124812251913941740 -1.00024845147850305-.999333284093140484 -.785872546183299604-.785043522184549426 .785028868651463486.785693822920970008 .9997446883073897161.00074853662123409 2.355885678266421482.35643817620602248] fdiscont(tan(10*x),x=0..Pi,0.01,newton=true);.157079632679489656 .471238898038468967 .785398163397448280 1.09955742875642758 1.413716694115406901.72787595947438644 2.04203522483336552 2.35619449019234484 2.670353755551324142.98451302091030346 -1.00003155195758886-.999634596231187556 -.667056666250248842-.666327819216380068 -.333731406929595187-.333002495225188489 -.000262904384890887231.000298288004691702826 .332976914927844203.333778498831551751 .666340020328179072.667141797110034518 .9996467282237935241.00008356747731275] 导数和微分2.1 符号表达式求导 利用Maple 中的求导函数diff 可以计算任何一个表达式的导数或偏导数, 其惰性形 式Diff 可以给出求导表达式, $表示多重导数. 求expr 关于变量x1, x2, xn的(偏)导数 的命令格式为: diff(expr, x1, x2, xn);diff(expr, [x1, x2, xn]);其中, expr 为函数或表达式, x1, x2, xn为变量名称. 有趣的是, diff是以递归方式调用的: diff(f(x), otherwise函数 diff 求得的结果总是一个表达式, 如果要得到一个函数形式的结果, 也就是求 导函数, 可以用D 算子. 算子作用于一个函数上,得到的结果也是一个函数. 必须是一个可以处理为函数的代数表达式,它可以包含常数、已知 函数名称、未知函数名称、箭头操作符、算术和函数运算符. 复合函数表示为 f@g, 而不是 因此D(sin(y)) 是错误的, 正确的应该是 D(sin@y). 运算符也可以求高阶导数,但此时不用$, 而用两个@@. 运算符并不局限于单变量函数,一个带指标的D运算符D[i](f)可以用来求偏导函 个变量的导函数,而高阶导数D[i,j](f)等价于D[i](D[j](f)). D(D(sin));sin (D@@2)(sin);sin 运算符和函数diff的差别: 运算符计算运算符的导数,而diff 计算表达式的导数; 的参数和结果是函数型运算符,而diff 的参数和结果是表达式; 将含有导数的表达式转换为D运算符表达式的函数为: convert(expr,D); 将D(f)(x)表达式转换为diff(f(x),x)形式的命令:convert(expr,diff,x); 运算符可以计算定义为程序的偏导数,此即 Maple 自动求导功能(详细内容参看 下面我们讨论在积分学当中的一个微妙的漏洞,在大多数计算机代数系统中都会出现这个问题伽马函数考研,甚至于在许多教科书和积分表中这种情况也是长期存在。

limit(F,x=Pi,right),limit(F,x=Pi,left); 关于函数f(x)的积分仅在一些区间上是正确的,因为F是不连续的,虽然由微积分 的基本定理可知当f 连续时F 应该是连续的。进一步的讨论F 的不连续点: 处有跳跃间断点。在对多元函数 f(x,y)求混合偏导数时,Maple 总自以为是 otherwise因此,使用Maple 进行科学计算时,一定要先运用数学理论和方法对问题进行简单 推导,然后再利用Maple 辅助计算伽马函数考研,切不可把所有的事情都交给Maple伽马函数考研,如果那样的话 会出现错误甚至是低级的错误。 2.2 隐函数求导 隐函数或由方程(组)确定的函数的求导, 使用命令implicitdiff. 假定f, f1,„,fm为代 数表达式或者方程组, y1,„,yn为变量名称或者独立变量的函数, 且m个方程f1,„,fm u1,„,ur为独立变量的名称, x1,„,xk为导数变 量的名称. 的导数:implicitdiff(f,y,x); 确定的y对x1,„,xk 的偏导数: implicitdiff(f,y,x1,„,xk); 的导数,其中u 必须是给定的y 函数中的某一个 implicitdiff({f1,„,fm},{y1,„,yn},u,x); 计算u对x1,„,xk 的偏导数 implicitdiff({f1,„,fm},{y1,„,yn},u,{x1,„xk}); 计算u的高阶导数 implicitdiff({f1,„,fm},{y1,„,yn},{u1,„,ur}, x1,„,xk); implicitdiff(f,y,x)命令的主要功能是求隐函数方程 的导数,因此, 或者代数表达式的方程(其中代数表达式为0).第二个参数y 指定了 非独立变量、独立变量或常数, 如果y 是名称, 就意味着非独立变量, 而所有其他出现在 中名称以及不看作是常数类型的变量,统统视作独立变量处理. 如果方程f1,„,fm是超定的, implicitdiff 返回FAIL. 例如: implicitdiff(g,z,x);FAIL 如果是对多元函数求多个偏导数, 结果将用偏微分形式给出. 可以给定最后一个可 选参数来确定结果的表达形式, 默认情况下或者给定 notation=D, 这时结果中的微分用 运算符表示,否则可以给定 notation=Diff, 这样给出的结果中的微分运算符和使用 Diff 时相同, 即用 来表示. 试作以下实验: sinsin cos cos cos 2.3函数的极值 2.3.1 函数的极值 极值包含两种情形:极大值和极小值。

伽马函数考研

在 Maple 有两个求函数极值的命令:minimize, maximize, 命令格式如下: minimize (expr, vars, range); maximize(expr, vars, range); expr1:=x^3-6*x+3:minimize(expr1,x=-3..3); -6 maximize(expr1,x=-3..3); 12 minimize(tanh(x),x,`infinite`);-1 maximize(tanh(x),x,`infinite`); 虽然,minimize 和maximize 这两个命令很好用, 但对于一些特殊的函数而言, 个指令不但有可能无法求得极值,还有可能给我们错误的解. 因此, Maple下求极值 最好的方法是先作图(鼠标右键点击函数解析式选择plots 命令即可), 由图上找出极值的 大概位置, 然后再由 Maple 提供的各种指令来求解. 下面一个例子是关于函数极大极小 值的求解问题,此处,图形提供了做题的部分思路,尤其是求驻点时: plot(f,x=-10..10);从上图可以看出,f(x)函数从区域-2 之间有极值出现,且极大值小于1.为了更 清楚的了解函数图像性质,我们在plot 命令中加入因变量y 的变化范围。

由此可看出f(x) 轴有交点,且在-2附近有一极小值: 附近,可用下述语句求出确切极点,然后使用eval 命令求出相应的极值: Xmin-.001302 Xmax.5360 2.3.2 条件极值 有时候, 我们还会遇到在条件 的极大值和极小值,这就是条件极值. 在求解时需要先构造一个函数 称为拉格朗日乘子), 然后将g(x,y)分别对x 求导,得到联立方程组,求解方程组即可得到 函数 下的极大值和极小值. exp1:=diff(g,x);exp2:=diff(g,y); fmax5.828427124 fmin.1715728755 积分运算3.1 不定积分 Maple 有许多内建的积分算法, 一般地, 用int 求不定积分. 命令格式为: int(expr,x); 可以看出,Maple 求不定积分的结果中没有积分常数, 这一点需要注意. 但是, 这有 一定好处的, 尤其当对结果作进一步处理时, 由于 Maple 符号计算的特点, 引入积分常 数相当于引入一个变量, 对于计算极为不便. Maple 中不定积分的计算过程为: 首先,Maple 用传统方法处理一些特殊的形式, 如多项式、有理式、形如 cxbx cxbx 的表达式;(ii) 如果传统方法难以奏效, Maple 将应用Risch-Norman 算法, 以避免在包含三角 函数和双曲函数的积分中引入复指数和对数; (iii) 如果仍然无法得到答案, Maple 将采用Risch 算法, 这将无法避免地在结果表达 式中引入有关积分变量的RootOf 的表达式; (iv) 如果最终还是没有找到解析表达式, Maple 会把积分式作为结果返回. 3.2 定积分 定积分与不定积分的计算几乎一样, 只是多了一个表示积分区域的参数. 的定积分的命令格式为:int(f, x=a..b); 抛物线px Maple中的定积分是怎样完成的呢?最简单的想法是: 按照 Newton-Leibnize 定理, 先求出被积函数的任一个原函数, 再求其在积分限上的增量即可得定积分. 试看下例 (其中的函数rhs 用来获取等式右边部分—right hand side, 相应地, 左边部分为lhs): subs(x=1,rhs(%))-subs(x=-1,rhs(%));-2 显然, 这是错误的, 在上述积分中含有一个暇点 积分是发散的,对此, Maple 是知道的: 在大多数情况下,Maple 通过查表和形式匹配, 或者利用特殊函数的导数来求定积 Int(exp(-x^2)*ln(x)^2, x=0..infinity )=int( exp(-x^2)*ln(x)^2, x=0..infinity >evalf(rhs(%));1.947522181 >Int(sin(x)/x,x=-1..1)=int(sin(x)/x,x=-1..1); evalf(rhs(%));1.892166141 evalf(rhs(%));1.253314137 在返回一个未求值的定积分的情况下, 可以对积分式调用 evalf 来获得数值积分. 命令格式为: evalf(int(f, x=a..b)); evalf(Int(f, x=a..b, Digits, flag); 其中, 积分变量,a..b 积分区间, Digits 表示需要精度的位数, flag 指定要使 用的数值方法的名称. 值得注意的是, 上述命令格式第一式int 可以大写也可以小写(输出结果略有形式上的不同), 第二式的I 必须大写. Maple 中默认的数值积分方法是Clenshaw-Curitis 阶方法;当收敛很慢(由于存在 奇点)时, 系统将试着用广义的级数展开和变量代换取消积分的奇异性; 如果存在不可 去奇点, 则改而采用自适应双指数方法. 在数值精度不高的情况下(比如 Digits15), 用自适应的牛顿—柯特斯方法就够了.通过指定 evalf/int 语句的第 个参数,可以选择 积分方法. 可供选择的有3 种方法: _Ccquad 阶方法_Dexp 自适应双指数方法_Ncrule evalf(Int(1/sqrt(x),x=0..2,15,_Dexp));2.82842712474619 evalf(Int(sin(x)/x,x=0..1,20,_NCrule));.94608307036718301494 evalf(Int(sin(x)*ln(x+1),x=0..1));.2265353653 evalf(Int(sin(x)*ln(x+1),x=0..1));.2265353653 前面述及函数value 的主要功能是对惰性函数求值, 但它与evalf 是有区别的, 过下例体会value与evalf 功能的不同之处: evalf(P);5.289745102 3.3其它积分方法 Maple有丰富的内建积分算法, 除了上述int命令外, 另外一些算法也非常有用. 节简述其中几种较为有用的算法.3.3.1 三角和双曲积分 三角和双曲积分主要有下述几种: dt 上述函数在Maple中的调用格式分别为:Si(x); Ci(x); Ssi(x); Shi(x); Chi(x); 其中x为 表达式(复数). 函数Si, Ssi和Shi是完整的, 函数Ci和Chi在原点处有一个对数极点, evalf(%);.9460830704 -.02624028922.4706897380I Ssi(2002.118);.0003014039122 evalf(Shi(Pi));5.469640347 -2.0774778032.142816206I 3.3.2Dirac 函数和Heaviside 阶梯函数 Dirac 函数和Heaviside 函数主要应用于积分变换或者求解微分方程, 也可以用来表 示分段连续函数. 其定义分别如下: 命令格式为:Dirac(t); Dirac函数(t=0时为无穷大,其余处处为0) Dirac(n,t); Dirac函数的n阶导数Heaviside(t); #Heaviside函数(t0上定义为: dt 单参数的指数积分是一个Cauchy主值积分,只对实参数x有如下定义: dt Ei(1,x)可以解析延拓到除了0点之外的整个复平面.对于所有的这些函数, 0是一个 分支点, 负实半轴是分支截断. 分支截断上的值要满足函数在增加参数的方向上是连续 的条件. 指数函数和不完全GAMMA函数有如下关系: Ei(1,1.);#=evalf(Ei(1,1)); .2193839344 evalf(Ei(1));1.895117816 上述最后两例的结果大相径庭,原因是在最后一例中出现了“CauchyPrincipal Value”一选项, 这一命令的主要功能是通知int将间断点的左右极限作为极限来处理, 独立变量按相同的速度接近间断点.3.3.4 对数积分 对数积分Li(x)的定义为: (lndt 其中,PV-int表示Cauchy主值积分. 该函数只对实数参数 有定义,它给出了小于或 等于x的素数的一个近似值. Li(2002.);#对数积分在2002.0 nops(select(isprime,[$1..2002])); #小于或等于2002 的实数中素数个数 303 convert(Li(x),Ei);#对数积分转换为指数积分 3.3.5椭圆积分 所谓椭圆积分是形如 的积分,其中R是一个有理数, 这是椭圆积分的代数形式.除此之外还有三角形式、双曲三角等形式. 椭圆积分可以用初等函数项和椭圆函数项, 如EllipticF, EllipticE和EllipticPi表示成 它们的Legendre标准形式. ans:=int(sqrt(1+x^4)/(1-x^4),x=0..1/3);ans evalf(ans,20);.33457573315002445140 evalf(%);.270099742 3.3.5 换元积分法和分部积分法 换元积分法是积分计算中一种重要而实用的方法. 在Maple中, 对被积函数施行变 量代换的命令是changevar, 该命令在工具包student中, 须先调用student工具包. 命令格 其中,s是形式为h(x)=g(u)的一个将x定义为u的函数的表达式, f为积分表达式(如 Int(F(x),x=a..b);), u为新的积分变量名称, t为定义的多元变量代换的方程组, g为二重或者 三重积分, v为新变量的列表. Changevar函数对积分、求和或者极限实现变量代换. 第1个参数s是用旧变量定义新 变量的一个方程, 如果包含了两个以上的变量, 新变量必须放置在第3个参数位置, 2个参数是一个要被替换的表达式,一般包含Int, Sum或者Limit等非求值形式(应尽量使 用这种形式以便最后用value求值). 当问题为二重或三重积分时, 定义多元变量代换的方程由一个集合给出, 而新变量 由一个列表给出. 3.3重积分和线积分 在Maple中, 重积分的形式函数有Doubleint(二重)和Trippleint(三重), 均在student 工具包中, 应用前需调用student 工具包, 它们适用于定积分和不定积分, 可用value 获得积分结果的解析表达式.命令格式为: Doubleint(g, Domain);Doubleint(g, Domain)Tripleint(g, 为积分变量,Domain 为积分区域. Doubleint(x+y,x=0..1,y=1..exp(x)):%=value(%); Doubleint(x+y,y=1..exp(x),x=0..1):%=value(%); 在这两个形式函数中,我们还可以加入一个可选的参数, 用来表示积分区域(通常 表示二维区域,用表示三维区域). 注意: 在Maple 这个参数仅仅用来做形式上的表示, 不可以用来求值. Maple中还有一个计算用参数方程形式表示的第一型曲线积分的函数—Lineint, 它也在student 工具包中. 下面通过一个实例说明这一函数的用法. with(student):Lineint(y^2,x=a*(t-sin(t)),y=a*(1-cos(t)),t=0..2*Pi); value(%); 25615 3.4利用辅助手段积分 机器终归是机器, 再聪明的机器也无法彻底代替人脑, Maple 也一样, 它只能作为我 们数学计算、推证的助手. 下面通过例子来体会Maple 的真正用处. 其中c>0.按照常规, 我们会通过下面的语句进行计算: Int(exp(-c*x^2),x=0..infinity) int(exp(-c*x^2),x=0..infinity); 但Maple 告诉我们, 由于无法确定常数c 的正负号, 因而无法确定积分是否收敛. 解决这一问题的办法是, 通过assume 设定c 的取值范围: 的绝对值(c:=abs(p)),这样