Maple基础教学教材(修订稿~).doc

上传人:小** 文档编号:630267 上传时间:2019-04-22 格式:DOC 页数:47 大小:479.50KB
返回 下载 相关 举报
Maple基础教学教材(修订稿~).doc_第1页
第1页 / 共47页
Maple基础教学教材(修订稿~).doc_第2页
第2页 / 共47页
点击查看更多>>
资源描述

《Maple基础教学教材(修订稿~).doc》由会员分享,可在线阅读,更多相关《Maple基础教学教材(修订稿~).doc(47页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、-_Maple 基础一 Maple 的基本运算1 数值计算问题在应用 Maple 做算术运算时, 只需将 Maple 当作一个“计算器”使用, 所不同的是命令结束时需加“;”或“:”. 在 Maple 中, 主要的算术运算符有“+”(加)、 “”(减)、 “*”(乘)、 “/”(除)以及“”(乘方或幂,或记为*),值得注意的是, “”的表达式只能有两个操作数, 换言之, 是错误的, 而“+”或cba“*”的任意表达式可以有两个或者两个以上的操作数. 2.1.1 有理数运算 作为一个符号代数系统, Maple 可以绝对避免算术运算的舍入误差.如果要求出两个整数运算的近似 值时, 只需在任意一个整

2、数后加“.”(或“.0”), 或者利用“evalf”命令把表达式转换成浮点形式, 默 认浮点数位是 10 (即: Digits:=10, 据此可任意改变浮点数位, 如 Digits:=20). 123456789/987654321; 13717421 109739369 evalf(%);.1249999989 big_number:=3(33);:= big_number7625597484987 length(%); 13函数“length”作用在整数上时是整数的十进制位数即数字的长度. “%”是一个非常有用的简写 形式, 表示最后一次执行结果 1)整数的余(irem)/商(iquo)

3、命令格式: irem(m,n); 求 m 除以 n 的余数 irem(m,n,q); 求 m 除以 n 的余数, 并将商赋给 q iquo(m,n); 求 m 除以 n 的商数 iquo(m,n,r); 求 m 除以 n 的商数, 并将余数赋给 r 其中, m, n 是整数或整数函数, 也可以是代数值, 此时, irem 保留为未求值. 2)素数判别(isprime) 命令格式: isprime(n); 如果判定 n 可分解, 则返回 false, 如果返回 true, 则 n“很可能”是素数. isprime(2(24)+1); true3) 确定第 i 个素数(ithprime) 若记第

4、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(); 427419669081 myproc:=rand(1.2002): myproc(); myproc(); 12

5、04注意, rand(n)是 rand(0.n-1)的简写形式. 2.1.2 复数运算 复数是 Maple 中的基本数据类型. 虚数单位 i 在 Maple 中用 I 表示可以用 Re( )、Im( )、conjugate( )和 argument( )等函数分别计算实数的实部、虚部、共轭复数和幅角主值等运算. 试作如下实验: complex_number:=(1+2*I)*(3+4*I);:= complex_number-510 I Re(%);Im(%);conjugate(%);argument(complex_number); -5 10 -510 I ( )arctan 21) 绝

6、对值函数 命令格式: 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

7、, expr包 含 k 的任意表达式. product(k2,k=1.10); #计算关于 1.10 的连乘2k13168189440000 product(k2,k); 计算的不确定乘积2k1916-_( ) 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); #计算的三个根的乘积23x2 2)指数函数 计算指数函数 exp 关于

8、 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); k1n k21 3()n131 2()n121 6n1 6 Sum(1/k!,k=0.infinity)=sum(1/k!,k=0.infinity); k01 !ke sum(ak*xk,k=0.n);

9、k0n akxk sum(k/(k+1),k=RootOf(x2-3); 33)三角函数/双曲函数 命令格式: 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 04)反三角函数/反双曲函数 命令格式: arcsin(x); arccos(x); arctan(x); arccot(x); arcsec(x); arccsc(x);arcsinh(x); arccosh(

10、x); arctanh(x); arccoth(x); arcsech(x); arccsch(x); arctan(y,x);-_其中, x, y 为表达式. 反三角函数/反双曲函数的参数必须按弧度计算. arcsinh(1);()ln12 cos(arcsin(x);1x25)对数函数 命令格式: ln(x); #自然对数 loga(x); #一般对数 log10(x); #常用对数 一般地, 在 ln(x)中要求 x0. 但对于复数型表达式 x, 有: (其中, )(argument*)(absln()ln(xIxx)(argument x log10(1000000); ()ln 10

11、00000 ()ln 10 simplify(%); 化简上式 62.2.2 函数的定义 试看下面一个例子: f(x):=a*x2+b*x+c;-并不是函数,而是一个表达式并不是函数,而是一个表达式:= ( )f xa x2b xc f(x),f(0),f(1/a);,a x2b xc( )f 0 f1 a由上述结果可以看出, 用赋值方法定义的 f(x)是一个表达式而不是一个函数 在 Maple 中, 要真正完成一个函数的定义, 需要用算子(也称箭头操作符): f:=x-a*x2+b*x+c;:= fxa x2b xc f(x),f(0),f(1/a);, ,a x2b xc c1 ab ac

12、 f:=(x,y)-x2+y2;:= f(), x yx2y2 f(1,2); 5 f:=(x,y)-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);:= fx x4x3x2x1借助函数 piecewise 可以生成简单分段函数: abs(x)=piecewise(x0,x,x=0,0,x unassig

13、n(f); f(1,1);()f, 1 1定义了一个函数后, 就可以使用 op 或 nops 指令查看有关函数中操作数的信息. nops(expr), 函数 op 的主要功能是,其命令格式为: op(expr); #获取表达式的操作数 op(i, expr); #取出 expr 里第 i 个操作数, op(i . j, expr); #expr 的第 i 到第 j 个操作数 nops(expr); #返回操作数的个数 expr:=6+cos(x)+sin(x)*cos(x)2;:= expr6( )cos x( )sin x( )cos x2 op(expr);,6( )cos x( )sin

14、 x( )cos x2 nops(expr); 32.2.3 Maple 中的常量与变量名 为了解决数学问题, 一些常用的数学常数是必要的. Maple 系统中已经存储了一些数学常数在表达 式序列 constants 中: constants; , ,false true Catalan FAIL 为了方便使用, 现将上述常数的具体含义列示如下: 常 数名 称近似值圆周率Pi3.1415926535Catalan 常数02) 12() 1(nnnCCatalan0.9159655942Euler-Mascheroni 常数 nknknln1lim1gamma0.5772156649infini

15、ty-_2.2.4 函数类型转换 实现函数类型转换的命令是 convert. 命令格式: convert(expr, form); 把数学式 expr 转换成 form 的形式 convert(expr, form, x); 指定变量 x, 此时 form 只适于 exp、sin、cos convert 指令所提供的三角函数、指数与函数的转换共有 exp 等 7 种: (1) exp: 将三角函数转换成指数 (2) expln: 把数学式转换成指数与对数 (3) expsincos: 分别把三角函数与双曲函数转换成 sin、cos 与指数的形式 (4) ln: 将反三角函数转换成对数 (5)

16、sincos: 将三角函数转换成 sin 与 cos 的形式, 而把双曲函数转换成 sinh 与 cosh 的形式 (6) tan: 将三角函数转换成 tan 的形式 (7) trig: 将指数函数转换成三角函数与对数函数 convert(sinh(x),exp); #将将 sinh(x)转换成转换成 exp 类型类型1 2ex1 21 ex2.2.5 函数的映射map 指令 在符号运算的世界里, 映射指令map可以说是相当重要的一个指令, 它可以把函数或指令映射到这 些结构里的元素, 而不破坏整个结构的完整性. 命令格式为: map(f, expr); 将函数f映射到expr的每个操作数 m

17、ap(f, expr, a); 将函数f映射到expr的每个操作数, 并取出a为f的第2个自变量map(f, expr, a1, a2, an); 将函数f映射到expr的每个操作数, 并取a1an为f的第2n+1个自变量 map2(f, a1, expr, a2, , an); 以a1为第1个自变量, expr的操作数为第2个自变量, a2为 第3个自变量, an为第n+1个自变量来映射函数f f:=x-sqrt(x)+x2;:= fxxx2 map(f,a,b,c);,aa2bb2cc2 map(h, a,b,c,x,y); ,()h, ,a x y()h, ,b x y()h, ,c x

18、 y3 求 值3.1 赋值在 Maple 中, 不需要申明变量的类型, 甚至在使用变量前不需要将它赋值, 这是 Maple 与其它高级 程序设计语言不同的一点, 也正是 Maple 符号演算的魅力所在, 这个特性是由 Maple 与众不同的赋值方 法决定的. 为了理解其赋值机制, 先看下面的例子. p:=9*x3-37*x2+47*x-19;:= p9 x337 x247 x19 roots(p); , 1 2 ,19 91-_ subs(x=19/9,p); 03.2 变量代换subs ( var = repacedment, expression); 调用的结果是将表达式 expressi

19、on 中所有变量 var 出现的地方替换成 replacement. f:=x2+exp(x3)-8;:= fx2e()x38 subs(x=1,f); 7e如果需要计算, 必须调用求值函数 evalf. 如: evalf(%); 5. subs(x=y,y=z,x2*y); (顺序替换)z3 subs(x=y,y=z,x2*y); (同步替换)y2z 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); (轮 换) b2 c3 a subs(p=q,q=p,f(p,q); (互 换) ()f, q p3.3

20、 求值规则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 x5x4x3x2x73 eval(p,x=7); 19680当表达式在异常点处求值时, eval 会给一个错误消息. 如下: eval(sin(x)/x,x=0);Error, numeric exception: division by zero2) 在代数数(或者函数)域求值 命令格式:

21、 evala(expr); # 对表达式或者未求值函数求值evala(expr,opts); 求值时可加选项(opts)在 Maple 中, 代数数用函数 RootOf()来表示. 如作为一个代数数, 可以表示为: 3-_ alpha:=RootOf(x2-3,x);:= ()RootOf_Z23 simplify(alpha2); 3在 Maple 内部, 代数数不再表示为根式, 而在化简时, 仅仅利用到这样的事实. 这里, 32Maple 用到一个内部变量_Z. 再看下面一个例子,其中 alias 是缩写的定义函数,而参数 lenstra 指 lenstra 椭圆曲线方法: alias(a

22、lpha=RootOf(x2-2): evala(factor(x2-2,alpha),lenstra);()x ()x evala(quo(x2-x+3,x-alpha,x,r); 1x r; 32 simplify(%);53) 在复数域上符号求值 操纵复数型表达式并将其分离给出expr的实部和虚部的函数为evalc, 命令格式为: evalc(expr); evalc假定所有变量表示数值, 且实数变量的函数是实数类型. 其输出规范形式为: expr1+I*expr2. evalc(sin(6+8*I); ( )sin 6( )cosh 8I( )cos 6( )sinh 8 evalc(

23、f(exp(alpha+x*I);()fe( )cos xI e( )sin x4) 使用浮点算法求值 命令格式为: evalf(expr, n); evalf(Pi,50); 3.1415926535897932384626433832795028841971693993751 evalf(sin(3+4*I); 3.85373803827.01681326 I5) 对惰性函数求值 把只用表达式表示而暂不求值的函数称为惰性函数,对任意代数表达式f求值的命令格式为: value(f); F:=Int(exp(x),x);:= Fd exx value(%);ex f:=Limit(sin(x)

24、/x,x=0);-_:= flim x0( )sin x x value(%); 1另外, 将惰性函数的大写字母改为小写字母亦即可求值. 如下例: Limit(sin(x)/x,x=0)=limit(sin(x)/x,x=0);lim x0( )sin x x14 数据结构Maple 中有许多内建的与 FORTRAN、C 或 Pascal 不同的数据结构. 主要的数据结构有序列 (sequence)、列表(list)、集合(set)、代数数( algebraic number)、未求值或惰性函数调用、表(table)、级数 (series)、串(string)、索引名(index)、关系(re

25、lation)、过程体(process)以及整数(integer)、分数(fraction)、 浮点数(float)、复数(complex number)等数据结构, 而矩阵(matrix)在 Maple 中表示为阵列, 是一种特殊的 表. 4.1 数据类型查询在 Maple 中, 用 whattype 指令来查询某个变量的数据类型或特定类型, 命令格式为: whattype(expr) # 查询 expr 的数据类型 type(expr, t) # 查询 expr 是否为 t 类型, 若是则返回 true, 否则返回 false4.2 序列, 列表和集合4.2.1 序列 所谓序列(Seque

26、nce), 就是一组用逗号隔开的表达式列. 如: s:=1,4,9,16,25;:= s, , ,1 4 9 16 25 t:=sin,com,tan,cot;:= t,sin com tan cot一个序列也可以由若干个序列复合而成, 如: s:=1,(4,9,16),25;:= s, , ,1 4 9 16 25 s,s;, , , , , ,1 4 9 16 25 1 4 9 16 25而符号 NULL 表示一个空序列. 序列有很多用途, 如构成列表、集合等. 事实上, 有些函数命令也 是由序列构成. 例如: max(s);25 min(s,0,s);0函数 seq 是最有用的生成序列的

27、命令, 通常用于写出具有一定规律的序列的通项, 命令格式为: seq(f(i), i=m.n); # 生成序列 f(m), f(m+1), , f(n) (m,n 为任意有理数) seq(f(i), i=expr); # 生成一个 f 映射 expr 操作数的序列-_seq(f(op(i,expr), i=1.nops(expr); # 生成 nops(expr)个元素组成的序列 seq(i2,i=1.10);, , ,1 4 9 16 25 36 49 64 81 100 seq(i3,i=x+y+z);,x3y3z3获得一个序列中的特定元素选用操作符 , 如: seq(ithprime(i

28、),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;,13 594.2.2 列表 列表(list), 就是把对象(元素)放在一起的一种数据结构, 一般地, 用方括号 表示列表. 如下例: l:=x,1,1-z,x;:= l, ,x 11z x whattype(%);list4.2.3 集合 集合(set)也是把对象(元素)放在一起的数据结构,一般地, 用花括号表示集合. s:=x,1,1-z,x;:= s, ,1 x1z whattype(%);set空集定义为 . Maple 中集合

29、的基本运算有交(intersect)、并(union)、差(minus): A:=seq(i3,i=1.10);B:=seq(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; , 1 644.3 数组和表在 Maple 中, 数组(array)由命令 array 产生, 其下标变量(index)可以自由指定. 下标由 1 开始的一 维数组称为向量(vector), 二维以上的数组称为矩阵(matrix). 数组的元素按顺序排列, 任意存取

30、一数组 的元素要比列表或序列快的多. 区分一个数据结构是数组还是列表要用“type”命令. 表(table)在建立时使用圆括号, 变量能对一个表赋值, 但一个在存取在算子中的未赋值变量会被自 动地假定是表, 表的索引可以成为任意 Maple 表达式. 表中元素的次序不是固定的. -_5 Maple 高级输入与输出操作生成 LATEX Maple 可以把它的表达式转换成 LATEX, 使用 latex 命令即可: latex(x2+y2=z2);x2+y2=z2还可以将转换结果存为一个文件(LatexFile): latex(x2 + y2 = z2, LatexFile);再如下例: late

31、x(Int(1/(x2+1),x)=int(1/(x2+1),x);int ! left( x2+1 right) -1dx=arctanleft( x right)二 微积分运算1 函数的极限和连续1.1 函数和表达式的极限命令格式为: limit(f,x=a);求时的命令格式为 limit(f, x=a, right); 求时)(limxf ax)(limxf ax)(limxf ax的命令格式为 limit(f, x=a, left); 请看下述例子: Limit(1+1/x)x,x=infinity)=limit(1+1/x)x,x=infinity);lim x 11 xx e Li

32、mit(xn-1)/(x-1),x=1)=limit(xn-1)/(x-1),x=1);lim x1xn1 x1n Limit(xx,x=0,right)=limit(xx,x=0,right);lim +x0xx1 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);undefined下例就是化二重极限为二次极限而得正确结果:-_ limit(sin(x+y)/(sin(x)*sin(y),x=Pi/4,y=Pi/4); limit,()sinxy ( )sin x( )sin y,x1 4y1 4

33、 limit(limit(sin(x+y)/(sin(x)*sin(y),x=Pi/4),y=Pi/4);21.2 函数的连续性1.2.1 连续 在 Maple 中可以用函数 iscont 来判断一个函数或者表达式在区间上的连续性. 命令格式为: iscont(expr, x=a.b, colsed/opened); 其中, closed 表示闭区间, 而 opened 表示开区间(此为系统默认状态). 如果表达式在区间上连续, iscont 返回 true, 否则返回 false, 当 iscont 无法确定连续性时返回 FAIL. 另外, iscont 函数假定表达式中的所有符号都是实数型

34、. 颇为有趣的是, 当给定区间a,b (ab)时, 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); true1.2.2 间断 函数 discont 可以寻找函数或表达式在实数域的间断点, 当间断点周期或成对出现时, Maple 会利用 一些辅助变量予以表达, 比如, _Zn(任意整数)、_NZn(任意自然数)和 Bn(一个二进制数, 0 或者 1), 其中 n 是序号. 判定 f(x)间断点的命

35、令为: discont(f, x); discont(ln(x2-4),x); ,-2 2 discont(arctan(1/2*tan(2*x)/(x2-1),x);, ,-1 11 2 _Z11 4 discont(round(3*x-1/2),x); 1 31 3_Z1函数round为“四舍五入”函数,上例并非一目了然,对其进一步理解可借助于函数plot或下面给 出的fdiscont例子。 另一个寻找间断点的函数fdiscont是用数值法寻找在实数域上的间断点. 命令格式为: fdiscont(f, domain, res, ivar, eqns); 其中, f表示表达式或者, doma

36、in表示要求的区域, res表示要求的分辨率, ivar表示独立变量名称, eqns表示 可选方程. -_2 导数和微分2.1 符号表达式求导利用 Maple 中的求导函数diff可以计算任何一个表达式的导数或偏导数, 其惰性形式 Diff 可以给 出求导表达式, $表示多重导数. 求 expr 关于变量 x1, x2, , xn 的(偏)导数的命令格式为: diff(expr, x1, x2, , xn); diff(expr, x1, x2, , xn); 其中, expr 为函数或表达式, x1, x2, , xn 为变量名称. 有趣的是, 当 n 大于 1 时, diff 是以递归方式

37、调用的: diff(f(x), x, y)=diff(diff(f(x), x), y) Diff(ln(ln(ln(x),x)=diff(ln(ln(ln(x),x); x()ln()ln( )ln x1 x( )ln x()ln( )ln x Diff(exp(x2),x$3)=diff(exp(x2),x$3);3 x3e()x212 x e()x28 x3e()x2 diff(x2*y+x*y2,x,y);2 x2 y f(x,y):=piecewise(x2+y2 diff(f(x,y),x);y x2y22 x2y()x2y22x2y200otherwise diff(f(x,y)

38、,x,y);1 x2y22 y2()x2y222 x2()x2y228 x2y2()x2y23x2y200otherwise normal(%);x46 x2y2y4()x2y23x2y200otherwise函数 diff 求得的结果总是一个表达式, 如果要得到一个函数形式的结果, 也就是求导函数, 可以用 D 算子. D 算子作用于一个函数上, 得到的结果也是一个函数. 求 f 的导数的命令格式为: D(f); 值得注意的是, f 必须是一个可以处理为函数的代数表达式, 它可以包含常数、已知函数名称、未 知函数名称、箭头操作符、算术和函数运算符. 复合函数表示为 fg, 而不是 f(g),

39、 因此 D(sin(y)是错误的, 正确的应该是 D(siny). -_D 运算符也可以求高阶导数, 但此时不用$, 而用两个. D 运算符并不局限于单变量函数, 一个带指标的 D 运算符 Di(f)可以用来求偏导函数, Di(f)表示 函数 f 对第 i 个变量的导函数, 而高阶导数 Di,j(f)等价于 Di(Dj(f). g:=x-xn*exp(sin(x);:= gxxne( )sin x D(g);xxnn e( )sin xxxn( )cos x e( )sin x Diff(g,x)(Pi/6)=D(g)(Pi/6); xg1 66 1 6n n e()/ 1 21 2 1 6n

40、 3 e()/ 1 2 D(D(sin); sin (D2)(sin); sin f:=(x,y,z)-(x/y)(1/z);:= f(), ,x y z x y 1 z Diff(f,y)(1,1,1)=D2(f)(1,1,1);() yf, ,1 1 1-1D 运算符和函数 diff 的差别: 1) D 运算符计算运算符的导数, 而 diff 计算表达式的导数; 2) D 的参数和结果是函数型运算符, 而 diff 的参数和结果是表达式; 3) 将含有导数的表达式转换为 D 运算符表达式的函数为: convert(expr,D); f:=diff(y(x),x$2): := f2 x2(

41、)y x convert(f,D);( )( )()D( )2yx4) 将 D(f)(x)表达式转换为 diff(f(x),x)形式的命令: convert(expr,diff,x); f:=D(y)(x)-a*D(z)(x);:= f( )( )D yxa( )( )D zx convert(f,diff,x); x( )y xa x( )z xD 运算符可以计算定义为程序的偏导数, 此即 Maple 自动求导功能(详细内容参看第 6 章). 下面我们讨论在积分学当中的一个微妙的漏洞,在大多数计算机代数系统中都会出现这个问题,-_甚至于在许多教科书和积分表中这种情况也是长期存在。在对多元函数

42、 f(x,y)求混合偏导数时,Maple 总自以为是,这一点在 f(x,y)连续的情xyf yxf 况下当然正确,但不连续时不正确。2.2 隐函数求导隐函数或由方程(组)确定的函数的求导, 使用命令 implicitdiff. 假定 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

43、 对 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 的高阶导数implicitdiff(f1,fm,y1,yn,u1,ur, x1,xk); implicitdiff(f,y,x)命令的主要功能是求隐函数方程 f 确定的 y 对 x 的导数, 因此, 输入的 f 必须是 x 和 y 或者代数表达式的方程

44、(其中代数表达式为 0). 第二个参数 y 指定了非独立变量、独立变量或常数, 如果 y 是名称, 就意味着非独立变量, 而所有其他出现在输入的 f 和求导变量 x 中名称以及不看作是常 数类型的变量, 统统视作独立变量处理. 如果方程 f1,fm 是超定的, implicitdiff 返回 FAIL. 例如: f:=exp(y)-x*y2=x;:= feyx y2x implicitdiff(f,y,x);y21 ey2 x y g:=x2+y3=1;:= gx2y31 implicitdiff(g,z,x);FAIL如果是对多元函数求多个偏导数, 结果将用偏微分形式给出. 可以给定最后一个可选参数来确定结 果的表达形式, 默认情况下或者给定 notation=D, 这时结果中的微分用 D 运算符表示, 否则可以给定notat

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

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com