计算机代数系统第2章 maple微积分运算

上传人:第*** 文档编号:31523657 上传时间:2018-02-08 格式:DOC 页数:33 大小:382.50KB
返回 下载 相关 举报
计算机代数系统第2章 maple微积分运算_第1页
第1页 / 共33页
计算机代数系统第2章 maple微积分运算_第2页
第2页 / 共33页
计算机代数系统第2章 maple微积分运算_第3页
第3页 / 共33页
计算机代数系统第2章 maple微积分运算_第4页
第4页 / 共33页
计算机代数系统第2章 maple微积分运算_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《计算机代数系统第2章 maple微积分运算》由会员分享,可在线阅读,更多相关《计算机代数系统第2章 maple微积分运算(33页珍藏版)》请在金锄头文库上搜索。

1、- 34 -第二章 微积分运算微积分是数学学习的重点和难点之一, 而微积分运算是 Maple 最为拿手的计算之一, 任何解析函数 , Maple 都可以求出它的导数来, 任何理论上可以计算的积分, Maple都可以毫不费力的将它计算出来. 随着作为数学符号计算平台的 Maple 的不断开发和研究, 越来越多的应用程序也在不断地创设. 1 函数的极限和连续1.1 函数和表达式的极限在 Maple 中, 利用函数 limit 计算函数和表达式的极限. 如果要写出数学表达式, 则用惰性函数 Limit. 若 a 可为任意实数或无穷大时, 求 命令格式为: )(limxfalimit(f,x=a);求

2、 时的命令格式为 limit(f, x=a, right); 求 时的命令格)(limxfax x式为 limit(f, x=a, left); 请看下述例子: Limit(1+1/x)x,x=infinity)=limit(1+1/x)x,x=infinity);lix1xe Limit(xn-1)/(x-1),x=1)=limit(xn-1)/(x-1),x=1);limx1n Limit(xx,x=0,right)=limit(xx,x=0,right);li+x0 Limit(abs(x)/x,x=0,left)=limit(abs(x)/x,x=0,left);li-x01 Limi

3、t(abs(x)/x,x=0,right)=limit(abs(x)/x,x=0,right);lim+x0- 35 - limit(abs(x)/x,x=0); undefi对于多重极限计算, 也用limit. 命令格式为: limit(f, points, dir); 其中, points是由一系列方程定义的极限点, dir(可选项)代表方向: left( 左) 、right( 右)等. 例如: limit(a*x*y-b/(x*y),x=1,y=1);ab limit(x2*(1+x)-y2*(1-y)/(x2+y2),x=0,y=0);undefi由于多重极限的复杂性,很多情况下 li

4、mit 无法找到答案,此时,不应轻易得出极限不存在的结论,而是应该利用数学基础判定极限的存在性,然后再寻找别的可行的方法计算极限(如化 n 重根限为 n 次极限等) 。如下例就是化二重极限为二次极限而得正确结果: limit(sin(x+y)/(sin(x)*sin(y),x=Pi/4,y=Pi/4); limt,(sixy),14y limit(limit(sin(x+y)/(sin(x)*sin(y),x=Pi/4),y=Pi/4);21.2 函数的连续性1.2.1 连续在 Maple 中可以用函数 iscont 来判断一个函数或者表达式在区间上的连续性. 命令格式为: iscont(ex

5、pr, x=a.b, colsed/opened); 其中, closed 表示闭区间 , 而 opened 表示开区间(此为系统默认状态). 如果表达式在区间上连续, iscont 返回 true, 否则返回 false, 当 iscont 无法确定连续性时返回 FAIL. 另外, iscont 函数假定表达式中的所有符号都是实数型 . 颇为有趣的是, 当给定区间a,b ( ab)时, iscont 会自动按 b,a处理. iscont(1/x,x=1.2); true iscont(1/x,x=-1.1,closed);fals iscont(1/(x+a),x=0.1); FAIL is

6、cont(ln(x),x=10.1); true1.2.2 间断函数 discont 可以寻找函数或表达式在实数域的间断点, 当间断点周期或成对出现- 36 -时, Maple 会利用一些辅助变量予以表达, 比如, _Zn(任意整数)、_NZn(任意自然数)和 Bn(一个二进制数 , 0 或者 1), 其中 n 是序号. 判定 f(x)间断点的命令为: discont(f, x); discont(ln(x2-4),x); ,-2 discont(arctan(1/2*tan(2*x)/(x2-1),x);,1_Z14 discont(round(3*x-1/2),x); 3函数round为“

7、四舍五入”函数,上例并非一目了然,对其进一步理解可借助于函数plot或下面给出的fdiscont例子。另一个寻找间断点的函数fdiscont是用数值法寻找在实数域上的间断点. 命令格式为: fdiscont(f, domain, res, ivar, eqns);其中, f表示表达式或者, domain表示要求的区域, res表示要求的分辨率, ivar表示独立变量名称, eqns表示可选方程. fdiscont(GAMMA(x/2), x=-10.0, 0.0001); .-10.865317-94182307 .-8.0657243-79426380, , 5.6108.5946 2.40

8、914 .513170, fdiscont(arctan(1/2*tan(2*x)/(x2-1),x=-Pi.Pi);.-1.08573-93280 .-.7852613904-78324596, ,26147569110 . 414 fdiscont(abs(x/10000),x=-1.1,0.000001); fdiscont(tan(10*x),x=0.Pi,0.01,newton=true);.15709632485.7123890467.853916748201.95742865, , , ,0650301934. .1, fdiscont(round(3*x-1/2),x=-1.1

9、); .-1.0359786-93456287 .-.605248-632781906, ,421.0149 .39041728, . .1745, ,.3- 37 -2 导数和微分2.1 符号表达式求导利用 Maple 中的求导函数 diff 可以计算任何一个表达式的导数或偏导数, 其惰性形式 Diff 可以给出求导表达式, $表示多重导数. 求 expr 关于变量 x1, x2, , xn 的(偏)导数的命令格式为: diff(expr, x1, x2, , xn); diff(expr, x1, x2, , xn);其中, expr 为函数或表达式, x1, x2, , xn 为变量名称

10、. 有趣的是, 当 n 大于 1 时, diff 是以递归方式调用的:diff(f(x), x, y)=diff(diff(f(x), x), y) Diff(ln(ln(ln(x),x)=diff(ln(ln(ln(x),x);x()l 1x()ln)lx Diff(exp(x2),x$3)=diff(exp(x2),x$3);3e()2()283e()2 diff(x2*y+x*y2,x,y); xy f(x,y):=piecewise(x2+y20,x*y/(x2+y2); :=()f,xy2200otherwis diff(f(x,y),x);x2yx2()2y00otheris di

11、ff(f(x,y),x,y);1x2y2()x2()y82y()3x2y00otherwis normal(%);- 38 -x462y4()3x2y00otherwis函数 diff 求得的结果总是一个表达式, 如果要得到一个函数形式的结果, 也就是求导函数, 可以用 D 算子. D 算子作用于一个函数上, 得到的结果也是一个函数. 求 f 的导数的命令格式为: D(f); 值得注意的是, f 必须是一个可以处理为函数的代数表达式, 它可以包含常数、已知函数名称、未知函数名称、箭头操作符、算术和函数运算符. 复合 函数表示为 fg, 而不是 f(g), 因此 D(sin(y)是错误的, 正确

12、的应该是D(siny). D 运算符也可以求高阶导数, 但此时不用$, 而用两个. D 运算符并不局限于单变量函数 , 一个带指标的 D 运算符 Di(f)可以用来求偏导函数, Di(f)表示函数 f 对第 i 个变量的导函数, 而高阶导数 Di,j(f)等价于 Di(Dj(f). g:=x-xn*exp(sin(x); :=gxne()six D(g); xn()sin()cosx(in Diff(g,x)(Pi/6)=D(g)(Pi/6);xg16ne()/126n3e()/12 D(D(sin); sin (D2)(sin); f:=(x,y,z)-(x/y)(1/z); :=f(),x

13、yz1z Diff(f,y)(1,1,1)=D2(f)(1,1,1);()f,1-D 运算符和函数 diff 的差别: - 39 -1) D 运算符计算运算符的导数 , 而 diff 计算表达式的导数 ; 2) D 的参数和结果是函数型运算符 , 而 diff 的参数和结果是表达式 ; 3) 将含有导数的表达式转换为 D 运算符表达式的函数为: convert(expr,D); f:=diff(y(x),x$2): := f2x()y convert(f,D); ()(D)24) 将 D(f)(x)表达式转换为 diff(f(x),x)形式的命令: convert(expr,diff,x);

14、f:=D(y)(x)-a*D(z)(x); :=f()yxa()zx convert(f,diff,x); D 运算符可以计算定义为程序的偏导数 , 此即 Maple 自动求导功能(详细内容参看第 6 章). 下面我们讨论在积分学当中的一个微妙的漏洞,在大多数计算机代数系统中都会出现这个问题,甚至于在许多教科书和积分表中这种情况也是长期存在。 f:=1/(2+sin(x); :=f12()sinx F:=int(f,x); :F3arctta3 limit(F,x=Pi,right), limit(F,x=Pi,left);,13关于函数 f(x)的积分仅在一些区间上是正确的,因为 F 是不连

15、续的,虽然由微积分的基本定理可知当 f 连续时 F 应该是连续的。进一步的讨论 F 的不连续点: discont(F,x); 2_Z因此,F 在 处有跳跃间断点。nx在对多元函数 f(x,y)求混合偏导数时, Maple 总自以为是 ,这一点在xyff- 40 -f(x,y)连续的情况下当然正确,但不连续时不正确。一个典型的例子是: f(x,y):=piecewise(x2+y20,x*y*(x2-y2)/(x2+y2); :=()f,xy()x2yx2y00otherwis* normal(diff(f(x,y),x,y);x694y2x4y6()3x200otherwis normal(diff(f(x,y),y,x);x694y2x4y6()3x200otheris因此,使用

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号