Maple基础教学教材(修订稿~).doc
《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(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Maple 基础 教学 教材 修订稿
限制150内