收藏 分销(赏)

Maple基础教程(修订稿).doc

上传人:精**** 文档编号:3131271 上传时间:2024-06-19 格式:DOC 页数:47 大小:628KB 下载积分:14 金币
下载 相关 举报
Maple基础教程(修订稿).doc_第1页
第1页 / 共47页
Maple基础教程(修订稿).doc_第2页
第2页 / 共47页


点击查看更多>>
资源描述
Maple 基础 一 Maple 的基本运算 1 数值计算问题 在应用 Maple 做算术运算时,只需将 Maple 当作一个“计算器”使用,所不同的是命令结束时需加“;”或“:”.在 Maple 中,主要的算术运算符有“+”(加)、“”(减)、“*”(乘)、“/”(除)以及“”(乘方或幂,或记为*),值得注意的是,“”的表达式只能有两个操作数,换言之,cba是错误的,而“+”或“*”的任意表达式可以有两个或者两个以上的操作数.2.1.1 有理数运算 作为一个符号代数系统,Maple 可以绝对避免算术运算的舍入误差.如果要求出两个整数运算的近似值时,只需在任意一个整数后加“.”(或“.0”),或者利用“evalfevalf”命令把表达式转换成浮点形式,默认浮点数位是 10(即:Digits:Digits:=10,据此可任意改变浮点数位,如 Digits:=20).123456789/987654321;123456789/987654321;13717421109739369 evalf(%);evalf(%);.1249999989 big_number:=3(33);big_number:=3(33);:=big_number7625597484987 length(length(%););13 函数“lengthlength”作用在整数上时是整数的十进制位数即数字的长度.“%”是一个非常有用的简写形式,表示最后一次执行结果 1)整数的余(irem)/商(iquo)命令格式:irem(m,n);求 m 除以 n 的余数 irem(m,n,qq);求 m 除以 n 的余数,并将商赋给 q iquo(m,n);求 m 除以 n 的商数 iquo(m,n,r r);求 m 除以 n 的商数,并将余数赋给 r 其中,m,n 是整数或整数函数,也可以是代数值,此时,irem 保留为未求值.2)素数判别(isprime)命令格式:isprime(n);如果判定 n 可分解,则返回 false,如果返回 true,则 n“很可能”是素数.isprime(2(24)+1);isprime(2(24)+1);true 3)确定第 i 个素数(ithprime)若记第 1 个素数为 2,判断第 i 个素数的命令格式:ithprime(i);4)一组数的最大值(max)/最小值(min)命令格式:max(x1,x2,xn);#求 x1,x2,xn中的最大值 min(x1,x2,xn);#求 x1,x2,xn中的最小值 5)随机数生成器(rand)命令格式:rand();随机返回一个 12 位数字的非负整数 rand(a.b);调用 rand(a.b)返回一个程序,它在调用时生成一个在范围a,b内的随机数 rand();rand();427419669081 myproc:=rand(1.2002)myproc:=rand(1.2002):myproc();myproc();myproc();myproc();1204 注意,rand(n)是 rand(0.n-1)的简写形式.2.1.2 复数运算 复数是Maple中的基本数据类型.虚数单位i在Maple中用I I表示可以用Re()Re()、Im()Im()、conjugate()conjugate()和 argument()argument()等函数分别计算实数的实部、虚部、共轭复数和幅角主值等运算.试作如下实验:complex_number:=(1+2*I)*(3+4*I);complex_number:=(1+2*I)*(3+4*I);:=complex_number-510 I Re(%);Im(%);conjugate(%);argument(complex_number);Re(%);Im(%);conjugate(%);argument(complex_number);-5 10-510 I()arctan 2 1)绝对值函数 命令格式:abs(expr);abs(expr);当 expr 为实数时,返回其绝对值,当 expr 为复数时,返回复数的模.2)复数的幅角函数 命令格式:argument(x);返回复数 x 的幅角的主值 3)共轭复数 命令格式:conjugate(x);返回 x 的共轭复数 2.2 初等数学 2.2.1 常用函数 1)确定乘积和不确定乘积 命令格式:product(f,k);product(f,k=m.n);product(f,k=alpha);product(f,k=expr);其中,f任意表达式,k乘积指数名称,m,n整数或任意表达式,alpha代数数 RootOf,expr包含 k 的任意表达式.product(k2,k=1.10);#计算2k关于 1.10 的连乘 13168189440000 product(k2,k);计算2k的不确定乘积 1916 ()k2 product(ak,k=0.5);计算ai(i=0.5)的连乘 a0a1a2a3a4a5 Product(n+k,k=0.m)=product(n+k,k=0.m);#计算(n+k)的连乘,并写出其惰性表达式 k0m()nk()nm1()n product(k,k=RootOf(x3-2);#计算23x的三个根的乘积 2 2)指数函数 计算指数函数 exp 关于 x 的表达式的命令格式为:exp(x);3)确定求和与不确定求和 sum 命令格式:sum(f,k);sum(f,k=m.n);sum(f,k=alpha);sum(f,k=expr);其中,f任意表达式,k乘积指数名称,m,n整数或任意表达式,alpha代数数 RootOf,expr不含 k 的表达式.Sum(k2,k=1.n)=sum(k2,k=1.n);Sum(k2,k=1.n)=sum(k2,k=1.n);k1nk213()n1312()n1216n16 Sum(1/k!,k=0.infinity)=sum(1/k!,k=0.infinity);Sum(1/k!,k=0.infinity)=sum(1/k!,k=0.infinity);k01!ke sum(ak*xk,k=0.n);sum(ak*xk,k=0.n);k0nakxk sum(k/(k+1),k=RootOf(x2sum(k/(k+1),k=RootOf(x2-3);3);3 3)三角函数/双曲函数 命令格式:sin(x);cos(x);tan(x);cot(x);sec(x);csc(x);sinh(x);cosh(x);tanh(x);coth(x);sech(x);csch(x);其中,x 为任意表达式.Sin(Pi)=sin(Pi);Sin(Pi)=sin(Pi);()Sin 0 4)反三角函数/反双曲函数 命令格式:arcsin(x);arccos(x);arctan(x);arccot(x);arcsec(x);arccsc(x);arcsinh(x);arccosh(x);arctanh(x);arccoth(x);arcsech(x);arccsch(x);arctan(y,x);其中,x,y 为表达式.反三角函数/反双曲函数的参数必须按弧度计算.arcsinh(1);arcsinh(1);()ln12 cos(arcsin(x);cos(arcsin(x);1x2 5)对数函数 命令格式:ln(x);#自然对数 loga(x);#一般对数 log10(x);#常用对数 一般地,在 ln(x)中要求 x0.但对于复数型表达式 x,有:)(argument*)(absln()ln(xIxx(其中,)(argument x)log10(1000000);log10(1000000);()ln 1000000()ln 10 simplify(%);simplify(%);化简上式 6 2.2.2 函数的定义 试看下面一个例子:f(x):=a*x2+b*x+c;f(x):=a*x2+b*x+c;-并不是函数,而是一个表达式并不是函数,而是一个表达式 :=()f xa x2b xc f(x),f(0),f(1/a);f(x),f(0),f(1/a);,a x2b xc()f 0f1a 由上述结果可以看出,用赋值方法定义的 f(x)是一个表达式而不是一个函数 在 Maple 中,要真正完成一个函数的定义,需要用算子(也称箭头操作符):f:=xf:=x-a*xa*x2+b*x+c;2+b*x+c;:=fxa x2b xc f(x),f(0),f(1/a);f(x),f(0),f(1/a);,a x2b xc c1abac f:=(x,y)f:=(x,y)-x2+y2;x2+y2;:=f(),x yx2y2 f(1,2);f(1,2);5 f:=(x,y)f:=(x,y)-a*x*y*exp(x2+y2);a*x*y*exp(x2+y2);:=f(),x ya x y e()x2y2 另一个定义函数的命令是unapply,其作用是从一个表达式建立一个算子或函数.命令格式为:f:=unapply(expr,x);命令格式为:f:=unapply(expr,x,y,);f:=unapply(x4+x3+x2+x+1,x);f:=unapply(x4+x3+x2+x+1,x);:=fx x4x3x2x1 借助函数 piecewisepiecewise 可以生成简单分段函数:abs(x)=piecewise(x0,x,x=0,0,x0,x,x=0,0,x unassign(f);unassign(f);f(1,1);f(1,1);()f,1 1 定义了一个函数后,就可以使用 opop 或 nopsnops 指令查看有关函数中操作数的信息.nops(expr),函数opop 的主要功能是,其命令格式为:op(expr)op(expr);#获取表达式的操作数 op(op(i i,expr),expr);#取出 expr 里第 i 个操作数,op(op(i i .j,expr).j,expr);#expr 的第 i 到第 j 个操作数 nops(expr)nops(expr);#返回操作数的个数 expr:=6+cos(x)+sin(x)*cos(x)2;expr:=6+cos(x)+sin(x)*cos(x)2;:=expr6()cos x()sin x()cos x2 op(expr);op(expr);,6()cos x()sin x()cos x2 nops(expr);nops(expr);3 2.2.3 Maple 中的常量与变量名 为了解决数学问题,一些常用的数学常数是必要的.Maple 系统中已经存储了一些数学常数在表达式序列 constantsconstants 中:constants;constants;,false true Catalan FAIL 为了方便使用,现将上述常数的具体含义列示如下:常 数 名 称 近似值 圆周率 Pi 3.1415926535 Catalan 常数02)12()1(nnnC Catalan 0.9159655942 Euler-Mascheroni常数nknknln1lim1 gamma 0.5772156649 infinity 2.2.4 函数类型转换 实现函数类型转换的命令是 convertconvert.命令格式:convert(expr,form);convert(expr,form);把数学式 expr 转换成 form 的形式 convert(expr,form,x);convert(expr,form,x);指定变量 x,此时 form 只适于 exp、sin、cos convert 指令所提供的三角函数、指数与函数的转换共有 exp 等 7 种:(1)exp(1)exp:将三角函数转换成指数(2)expln(2)expln:把数学式转换成指数与对数(3)expsincos(3)expsincos:分别把三角函数与双曲函数转换成 sin、cos 与指数的形式(4)ln(4)ln:将反三角函数转换成对数(5)sincos(5)sincos:将三角函数转换成 sin 与 cos 的形式,而把双曲函数转换成 sinh 与 cosh 的形式(6)tan(6)tan:将三角函数转换成 tan 的形式(7)trig(7)trig:将指数函数转换成三角函数与对数函数 convert(sinh(x),exp);convert(sinh(x),exp);#将将 sinh(x)sinh(x)转换成转换成 expexp 类型类型 12ex121ex 2.2.5 函数的映射map 指令 在符号运算的世界里,映射指令map可以说是相当重要的一个指令,它可以把函数或指令映射到这些结构里的元素,而不破坏整个结构的完整性.命令格式为:m map(f,expr)ap(f,expr);将函数f映射到expr的每个操作数 map(f,expr,a)map(f,expr,a);将函数f映射到expr的每个操作数,并取出a为f的第2个自变量 map(f,expr,a1,a2,map(f,expr,a1,a2,an),an);将函数f映射到expr的每个操作数,并取a1an为f的第2n+1个自变量 map2(f,a1,expr,a2,map2(f,a1,expr,a2,an),an);以a1为第1个自变量,expr的操作数为第2个自变量,a2为 第3个自变量,an为第n+1个自变量来映射函数f f:=xf:=x-sqrt(x)+x2;sqrt(x)+x2;:=fxxx2 map(f,a,b,c);,aa2bb2cc2 map(h,map(h,a,b,c,x,y);a,b,c,x,y);,()h,a x y()h,b x y()h,c x y 3 求 值 3.1 赋值 在 Maple 中,不需要申明变量的类型,甚至在使用变量前不需要将它赋值,这是 Maple与其它高级程序设计语言不同的一点,也正是 Maple 符号演算的魅力所在,这个特性是由Maple与众不同的赋值方法决定的.为了理解其赋值机制,先看下面的例子.p:=9*x3p:=9*x3-37*x2+47*x37*x2+47*x-19;19;:=p9 x337 x247 x19 roots(p);roots(p);,1 2,1991 subsubs(x=19/9,p);s(x=19/9,p);0 3.2 变量代换 subs(subs(var var=repacedmentrepacedment,expressionexpression););调用的结果是将表达式 expression 中所有变量 var 出现的地方替换成 replacement.f:=x2+exp(x3)f:=x2+exp(x3)-8;8;:=fx2e()x38 subs(x=1,f);subs(x=1,f);7e 如果需要计算,必须调用求值函数 evalfevalf.如:evalf(%);evalf(%);5.subs(x=y,y=z,x2*y);subs(x=y,y=z,x2*y);(顺序替换)z3 subs(x=y,y=subs(x=y,y=z,x2*y);z,x2*y);(同步替换)y2z subs(a=b,b=c,c=a),a+2*b+3*c);subs(a=b,b=c,c=a),a+2*b+3*c);(顺序替换)6 a subs(a=b,b=c,c=a,a+2*b+3*c);subs(a=b,b=c,c=a,a+2*b+3*c);(轮 换)b2 c3 a subs(subs(p=q,q=pp=q,q=p,f(p,q);,f(p,q);(互 换)()f,q p 3.3 求值规则 1)对表达式求值 命令格式:eval(e,x=a);求表达式 e 在 x=a 处的值 eval(e,eqns);对方程或方程组 eqns 求值 eval(e);表达式 e 求值到上面两层 eval(x,n);给出求值名称的第 n 层求值 p:=x5+x4+x3+x2+x+73;p:=x5+x4+x3+x2+x+73;:=p x5x4x3x2x73 eval(p,x=7);eval(p,x=7);19680 当表达式在异常点处求值时,eval 会给一个错误消息.如下:eval(sin(x)/x,x=0);eval(sin(x)/x,x=0);Error,numeric exception:division by zero 2)在代数数(或者函数)域求值 命令格式:evala(expr);#对表达式或者未求值函数求值 evala(expr,opts);求值时可加选项(opts)在 Maple 中,代数数用函数 RootOfRootOf()来表示.如3作为一个代数数,可以表示为:alpha:=RootOf(x2alpha:=RootOf(x2-3,x);3,x);:=()RootOf_Z23 simplify(alpha2);simplify(alpha2);3 在 Maple 内部,代数数不再表示为根式,而在化简时,仅仅利用到32这样的事实.这里,Maple 用到一个内部变量_Z.再看下面一个例子,其中 alias 是缩写的定义函数,而参数 lenstra 指lenstra 椭圆曲线方法:alias(alpha=RootOf(x2alias(alpha=RootOf(x2-2):2):evala(factor(x2evala(factor(x2-2,alpha),lenstra);2,alpha),lenstra);()x()x evala(quo(x2evala(quo(x2-x+3,xx+3,x-alpha,x,r);alpha,x,r);1x r;r;32 simplify(%);simplify(%);5 3)在复数域上符号求值 操纵复数型表达式并将其分离给出expr的实部和虚部的函数为evalc,命令格式为:evalc(expr);evalc假定 所有变量表示数值,且实数 变量的函数是实数类 型.其输出规范形式为:expr1+I*expr2.evalc(sin(6+8*I);evalc(sin(6+8*I);()sin 6()cosh 8I()cos 6()sinh 8 evalc(f(exp(alpha+x*I);evalc(f(exp(alpha+x*I);()fe()cos xI e()sin x 4)使用浮点算法求值 命令格式为:evalf(expr,n);evalf(expr,n);evalf(Pi,50);evalf(Pi,50);3.1415926535897932384626433832795028841971693993751 evalf(sin(3+4evalf(sin(3+4*I);*I);3.85373803827.01681326 I 5)对惰性函数求值 把只用表达式表示而暂不求值的函数称为惰性函数,对任意代数表达式f求值的命令格式为:value(f);value(f);F:=Int(exp(x),x);F:=Int(exp(x),x);:=Fdexx value(%);value(%);ex f:=Limit(sin(x)/x,x=0);f:=Limit(sin(x)/x,x=0);:=flimx0()sin xx value(%);value(%);1 另外,将惰性函数的大写字母改为小写字母亦即可求值.如下例:Limit(sin(x)/x,x=0)=limit(sin(x)/x,x=0);Limit(sin(x)/x,x=0)=limit(sin(x)/x,x=0);limx0()sin xx1 4 数据结构 Maple 中有许多内建的与 FORTRAN、C 或 Pascal 不同的数据结构.主要的数据结构有序列(sequence)、列表(list)、集合(set)、代数数(algebraic number)、未求值或惰性函数调用、表(table)、级数(series)、串(string)、索引名(index)、关系(relation)、过程体(process)以及整数(integer)、分数(fraction)、浮点数(float)、复数(complex number)等数据结构,而矩阵(matrix)在 Maple 中表示为阵列,是一种特殊的表.4.1 数据类型查询 在 Maple 中,用 whattypewhattype 指令来查询某个变量的数据类型或特定类型,命令格式为:whattype(expr)whattype(expr)#查询 expr 的数据类型 type(expr,t)type(expr,t)#查询 expr 是否为 t 类型,若是则返回 true,否则返回 false 4.2 序列,列表和集合 4.2.1 序列 所谓序列(Sequence),就是一组用逗号隔开的表达式列.如:s:=1,4,9,16,25;s:=1,4,9,16,25;:=s,1 4 9 16 25 t:=sin,com,tant:=sin,com,tan,cot;,cot;:=t,sin com tan cot 一个序列也可以由若干个序列复合而成,如:s:=1,(4,9,16),25;s:=1,(4,9,16),25;:=s,1 4 9 16 25 s,s;s,s;,1 4 9 16 25 1 4 9 16 25 而符号 NULL 表示一个空序列.序列有很多用途,如构成列表、集合等.事实上,有些函数命令也是由序列构成.例如:max(s);max(s);25 min(s,0,s);min(s,0,s);0 函数 seq 是最有用的生成序列的命令,通常用于写出具有一定规律的序列的通项,命令格式为:seq(f(i),seq(f(i),i i=m.n);#=m.n);#生成序列 f(m),f(m+1),f(n)(m,n 为任意有理数)seq(f(i),seq(f(i),i i=expr);#=expr);#生成一个 f 映射 expr 操作数的序列 seq(f(op(seq(f(op(i i,expr),expr),i i=1.nops(expr);#=1.nops(expr);#生成 nops(expr)个元素组成的序列 seq(i2,i=1.10);seq(i2,i=1.10);,1 4 9 16 25 36 49 64 81 100 seq(i3,i=x+y+z);seq(i3,i=x+y+z);,x3y3z3 获得一个序列中的特定元素选用操作符 ,如:seq(ithprime(i),i=1.20);seq(ithprime(i),i=1.20);,2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71%6,%17;%6,%17;,13 59 4.2.2 列表 列表(list),就是把对象(元素)放在一起的一种数据结构,一般地,用方括号 表示列表.如下例:l:=x,1,1l:=x,1,1-z,x;z,x;:=l,x 11z x whattype(%);whattype(%);list 4.2.3 集合 集合(set)也是把对象(元素)放在一起的数据结构,一般地,用花括号表示集合.s:=x,1,1s:=x,1,1-z,x;z,x;:=s,1 x1z whattype(%);whattype(%);set 空集定义为.Maple 中集合的基本运算有交(intersect)、并(union)、差(minus):A:=seq(i3,i=1.10);B:=seqA:=seq(i3,i=1.10);B:=seq(i2,i=1.10);(i2,i=1.10);:=A,1 8 27 64 125 216 343 512 729 1000 :=B,1 4 9 16 25 36 49 64 81 100 A intersect B;A intersect B;,1 64 4.3 数组和表 在 Maple 中,数组(arrayarray)由命令arrayarray 产生,其下标变量(indexindex)可以自由指定.下标由 1 开始的一维数组称为向量(vectorvector),二维以上的数组称为矩阵(matrixmatrix).数组的元素按顺序排列,任意存取一数组的元素要比列表或序列快的多.区分一个数据结构是数组还是列表要用“type”命令.表(table)在建立时使用圆括号,变量能对一个表赋值,但一个在存取在算子中的未赋值变量会被自动地假定是表,表的索引可以成为任意 Maple 表达式.表中元素的次序不是固定的.5 Maple 高级输入与输出操作 生成 LATEXLATEX Maple 可以把它的表达式转换成 LATEX,使用 latex 命令即可:latex(x2+y2=z2);latex(x2+y2=z2);x2+y2=z2 还可以将转换结果存为一个文件(LatexFile):latex(x2+y2=z2,LatexFile);latex(x2+y2=z2,LatexFile);再如下例:latex(Int(1/(x2+1),x)latex(Int(1/(x2+1),x)=int(1/(x2+1),x);=int(1/(x2+1),x);int!left(x2+1 right)-1dx=arctanleft(x right)二 微积分运算 1 函数的极限和连续 1.1 函数和表达式的极限)(limxfax命令格式为:limit(f,x=a);求)(limxfax时的命令格式为 limit(f,x=a,right);求)(limxfax时的命令格式为 limit(f,x=a,left);请看下述例子:Limit(1+1/x)x,x=infinity)=limit(1+1/x)x,x=infinity);Limit(1+1/x)x,x=infinity)=limit(1+1/x)x,x=infinity);limx11xxe Limit(xnLimit(xn-1)/(x1)/(x-1),x=1)=limit(xn1),x=1)=limit(xn-1)/(x1)/(x-1),x=1);1),x=1);limx1xn1x1n Limit(xx,x=0,right)=limit(xx,x=0,right);Limit(xx,x=0,right)=limit(xx,x=0,right);lim+x0 xx1 limit(a*x*ylimit(a*x*y-b/(x*y),x=1,y=1);b/(x*y),x=1,y=1);ab limit(x2*(1+x)limit(x2*(1+x)-y2*(1y2*(1-y)/(y)/(x2+y2),x=0,y=0);x2+y2),x=0,y=0);undefined 下例就是化二重极限为二次极限而得正确结果:limit(sin(x+y)/(sin(x)*sin(y),x=Pi/4,y=Pi/4);limit(sin(x+y)/(sin(x)*sin(y),x=Pi/4,y=Pi/4);limit,()sinxy()sin x()sin y,x14y14 limit(limit(sin(x+y)/(sin(x)*sin(y),x=Pi/4),y=Pi/4);limit(limit(sin(x+y)/(sin(x)*sin(y),x=Pi/4),y=Pi/4);2 1.2 函数的连续性 1.2.1 连续 在 Maple 中可以用函数 iscontiscont 来判断一个函数或者表达式在区间上的连续性.命令格式为:iscont(expr,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);iscont(1/x,x=1.2);true iscont(1/x,x=iscont(1/x,x=-1.11.1,closed,closed););false iscont(1/(x+a),x=0.1);iscont(1/(x+a),x=0.1);FAIL iscont(ln(x),x=10.1);iscont(ln(x),x=10.1);true 1.2.2 间断 函数 discontdiscont 可以寻找函数或表达式在实数域的间断点,当间断点周期或成对出现时,Maple 会利用一些辅助变量予以表达,比如,_Zn_Zn(任意整数)、_NZn_NZn(任意自然数)和 BnBn(一个二进制数,0 或者1),其中 n 是序号.判定 f(x)间断点的命令为:discont(f,x);discont(ln(x2discont(ln(x2-4),x);4),x);,-2 2 discont(arctadiscont(arctan(1/2*tan(2*x)/(x2n(1/2*tan(2*x)/(x2-1),x);1),x);,-1 112 _Z114 discont(round(3*xdiscont(round(3*x-1/2),x);1/2),x);1313_Z1 函数round为“四舍五入”函数,上例并非一目了然,对其进一步理解可借助于函数plot或下面给出的fdiscont例子。另一个寻找间断点的函数fdiscontfdiscont是用数值法寻找在实数域上的间断点.命令格式为:fdiscont(f,domain,res,ivar,eqns);其中,f表示表达式或者,domain表示要求的区域,res表示要求的分辨率,ivar表示独立变量名称,eqns表示可选方程.2 导数和微分 2.1 符号表达式求导 利用 Maple 中的求导函数diffdiff可以计算任何一个表达式的导数或偏导数,其惰性形式 DiffDiff 可以给出求导表达式,$表示多重导数.求 expr 关于变量 x1,x2,xn 的(偏)导数的命令格式为:diff(expr,x1,x2,xn);diff(expr,x1,x2,xn);其中,expr 为函数或表达式,x1,x2,xn 为变量名称.有趣的是,当 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);Diff(ln(ln(ln(x),x)=diff(ln(ln(ln(x),x);x()ln()ln()ln x1x()ln x()ln()ln x Diff(exp(x2),x$3)=diff(exp(x2),x$3);Diff(exp(x2),x$3)=diff(exp(x2),x$3);3x3e()x212 x e()x28 x3e()x2 diff(x2*y+x*y2,x,y);diff(x2*y+x*y2,x,y);2 x2 y f(x,y):=piecewise(x2+y20,x*y/(x2+y2);f(x,y):=piecewise(x2+y20,x*y/(x2+y2);:=()f,x yx yx2y2x2y200otherwise diff(f(x,y),x);diff(f(x,y),x);yx2y22 x2y()x2y22x2y200otherwise diff(f(x,diff(f(x,y),x,y);y),x,y);1x2y22 y2()x2y222 x2()x2y228 x2y2()x2y23x2y200otherwise normal(%);normal(%);x46 x2y2y4()x2y23x2y200otherwise 函数 diff 求得的结果总是一个表达式,如果要得到一个函数形式的结果,也就是求导函数,可以用 D 算子.D 算子作用于一个函数上,得到的结果也是一个函数.求 f 的导数的命令格式为:D(f);值得注意的是,f 必须是一个可以处理为函数的代数表达式,它可以包含常数、已知函数名称、未知函数名称、箭头操作符、算术和函数运算符.复合函数表示为 fg,而不是 f(g),因此 D(sin(y)是错误的,正确的应该是 D(siny).D 运算符也可以求高阶导数,但此时不用$,而用两个.D 运算符并不局限于单变量函数,一个带指标的 D D 运算符 Di(f)可以用来求偏导函数,Di(f)表示函数 f 对第 i 个变量的导函数,而高阶导数 Di,j(f)等价于 Di(Dj(f)Di(Dj(f).g:=xg:=x-xn*exp(sin(x);xn*exp(sin(x);:=gxxne()sin x D(g);D(g);xxnn e()sin xxxn()cos x e()sin x Diff(g,x)(Pi/6)=D(g)(Pi/6)Diff(g,x)(Pi/6)=D(g)(Pi/6);xg16616nn e()/1 21216n3 e()/1 2 D(D(sin);D(D(sin);sin (D2)(sin);(D2)(sin);sin f:=(x,y,z)f:=(x,y,z)-(x/y)(1/z);(x/y)(1/z);:=f(),x y zxy1z Diff(f,y)(1,1,1)=D2(f)(1,1,1);Diff(f,y)(1,1,1)=D2(f)(1,1,1);()yf,1 1 1-1 D 运算符和函数 diff 的差别:1)D 运算符计算运算符的导数,而 diff 计算表达式的导数;2)D 的参数和结果是函数型运算符,而 diff 的参数和结果是表达式;3)将含有导数的表达式转换为 D 运算符表达式的函数为:convert(expr,D);f:=diff(y(x),x$2):f:=diff(y(x),x$2):=f2x2()y x convconvert(f,D);ert(f,D);()()()D()2yx 4)将 D(f)(x)表达式转换为 diff(f(x),x)形式的命令:convert(expr,diff,x);f:=D(y)(x)f:=D(y)(x)-a*D(z)(x)a*D(z)(x);:=f()()D yxa()()D zx convert(f,diff,x);convert(f,diff,x);x()y xax()z x D 运算符可以计算定义为程序的偏导数,此即 Maple 自动求导功能(详细内容参看第 6 章).下面我们讨论在积分学当中的一个微妙的漏洞,在大多数计算机代数系统中都会出现这个问题,甚 至于在许多教科书和积分表中这种情况也是长期存在。在对多元函数 f(x,y)求混合偏导数时,Maple 总自以为是xyfyxf,这一点在 f(x,y)连续的情况下当然正确,但不连续时不正确。2.2 隐函数求导 隐函数或由方程(组)确定的函数的求导,使用命令 implicitdiffimplicitdiff.假定 f,f1,fm 为代数表达式或者方程组,y,y1,yn 为变量名称或者独立变量的函数,且 m 个方程 f1,fm 隐式地定义了 n个函数 y1,yn,而 u,u1,ur 为独立变量的名称,x,x1,xk 为导数变量的名称.则:(1)求由 f 确定的 y 对 x 的导数:implicitdiff(f,y,x);(2)求由 f 确定的 y 对 x1,xk 的偏导数:implicitdiff(f,y,x1,xk);(3)计算 u 对 x 的导数,其中 u 必须是给定的 y 函数中的某一个 implicitdiff(f1,fm,y1,yn,u,x);(4)计算 u 对 x1,xk 的偏导数 implicitdiff(f1,fm,y1,yn,u,x1,xk);(5)计算 u 的高阶导数 implic
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服