Maple基础教程(修订稿)(共48页).doc
《Maple基础教程(修订稿)(共48页).doc》由会员分享,可在线阅读,更多相关《Maple基础教程(修订稿)(共48页).doc(48页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上Maple基础一Maple的基本运算1 数值计算问题在应用Maple做算术运算时, 只需将Maple当作一个“计算器”使用, 所不同的是命令结束时需加“;”或“:”. 在Maple中, 主要的算术运算符有“+”(加)、“”(减)、“*”(乘)、“/”(除)以及“”(乘方或幂,或记为*),值得注意的是, “”的表达式只能有两个操作数, 换言之, 是错误的, 而“+”或“*”的任意表达式可以有两个或者两个以上的操作数. 2.1.1 有理数运算作为一个符号代数系统, Maple可以绝对避免算术运算的舍入误差.如果要求出两个整数运算的近似值时, 只需在任意一个整数后加“.”(
2、或“.0”), 或者利用“evalf”命令把表达式转换成浮点形式, 默认浮点数位是10 (即: Digits:=10, 据此可任意改变浮点数位, 如Digits:=20). /; evalf(%); big_number:=3(33); length(%);函数“length”作用在整数上时是整数的十进制位数即数字的长度. “%”是一个非常有用的简写形式, 表示最后一次执行结果 1)整数的余(irem)/商(iquo)命令格式: irem(m,n); 求m除以n的余数irem(m,n,q); 求m除以n的余数, 并将商赋给qiquo(m,n); 求m除以n的商数iquo(m,n,r); 求m除
3、以n的商数, 并将余数赋给r其中, m, n是整数或整数函数, 也可以是代数值, 此时, irem保留为未求值. 2)素数判别(isprime)命令格式: isprime(n); 如果判定n可分解, 则返回false, 如果返回true, 则n“很可能”是素数. isprime(2(24)+1);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)随
4、机数生成器(rand)命令格式: rand( ); 随机返回一个12位数字的非负整数rand(a.b); 调用rand(a.b)返回一个程序, 它在调用时生成一个在范围a, b内的随机数 rand(); myproc:=rand(1.2002): myproc(); myproc(); 注意, rand(n)是rand(0.n-1)的简写形式.2.1.2 复数运算复数是Maple中的基本数据类型. 虚数单位i在Maple中用I表示可以用Re( )、Im( )、conjugate( )和argument( )等函数分别计算实数的实部、虚部、共轭复数和幅角主值等运算. 试作如下实验: comple
5、x_number:=(1+2*I)*(3+4*I); Re(%);Im(%);conjugate(%);argument(complex_number);1) 绝对值函数命令格式: 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); p
6、roduct(f,k=expr);其中, f任意表达式, k乘积指数名称, m,n整数或任意表达式, alpha代数数RootOf, expr包含k的任意表达式. product(k2,k=1.10); #计算关于1.10的连乘 product(k2,k); 计算的不确定乘积 product(ak,k=0.5); 计算ai(i=0.5)的连乘 Product(n+k,k=0.m)=product(n+k,k=0.m); #计算(n+k)的连乘, 并写出其惰性表达式 product(k,k=RootOf(x3-2); #计算的三个根的乘积 2)指数函数计算指数函数exp关于x的表达式的命令格式为
7、: 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(1/k!,k=0.infinity)=sum(1/k!,k=0.infinity); sum(ak*xk,k=0.n); sum(k/(k+1),k=RootOf(x2-3);3)三角函数/双曲函数命令格式: sin(x); cos(x)
8、; 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);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为表达式. 反
9、三角函数/反双曲函数的参数必须按弧度计算. arcsinh(1); cos(arcsin(x);5)对数函数命令格式: ln(x); #自然对数loga(x); #一般对数log10(x); #常用对数一般地, 在ln(x)中要求x0. 但对于复数型表达式x, 有: (其中, ) log10(); simplify(%); 化简上式2.2.2 函数的定义试看下面一个例子: f(x):=a*x2+b*x+c;-并不是函数,而是一个表达式 f(x),f(0),f(1/a);由上述结果可以看出, 用赋值方法定义的f(x)是一个表达式而不是一个函数 在Maple中, 要真正完成一个函数的定义, 需要用
10、算子(也称箭头操作符): f:=x-a*x2+b*x+c; f(x),f(0),f(1/a); f:=(x,y)-x2+y2; f(1,2); f:=(x,y)-a*x*y*exp(x2+y2);另一个定义函数的命令是unapply,其作用是从一个表达式建立一个算子或函数. 命令格式为: f:=unapply(expr, x); 命令格式为: f:=unapply(expr, x, y, ); f:=unapply(x4+x3+x2+x+1,x);借助函数piecewise可以生成简单分段函数: abs(x)=piecewise(x0,x,x=0,0,x unassign(f); f(1,1)
11、;定义了一个函数后, 就可以使用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; op(expr); nops(expr);2.2.3 Maple中的常量与变量名为了解决数学问题, 一些常用的数学常数是必要的. Maple系统中已经存储了一些数学常数在表达式序列constan
12、ts中: constants;为了方便使用, 现将上述常数的具体含义列示如下: 常 数名 称近似值圆周率Pi3.Catalan常数Catalan0.Euler-Mascheroni常数gamma0.infinity2.2.4 函数类型转换 实现函数类型转换的命令是convert. 命令格式: convert(expr, form); 把数学式expr转换成form的形式convert(expr, form, x); 指定变量x, 此时form只适于exp、sin、cosconvert指令所提供的三角函数、指数与函数的转换共有exp等7种: (1) exp: 将三角函数转换成指数(2) expl
13、n: 把数学式转换成指数与对数(3) expsincos: 分别把三角函数与双曲函数转换成sin、cos与指数的形式(4) ln: 将反三角函数转换成对数(5) sincos: 将三角函数转换成sin与cos的形式, 而把双曲函数转换成sinh与cosh的形式(6) tan: 将三角函数转换成tan的形式(7) trig: 将指数函数转换成三角函数与对数函数 convert(sinh(x),exp); #将sinh(x)转换成exp类型2.2.5 函数的映射map指令在符号运算的世界里, 映射指令map可以说是相当重要的一个指令, 它可以把函数或指令映射到这些结构里的元素, 而不破坏整个结构的
14、完整性. 命令格式为:map(f, expr); 将函数f映射到expr的每个操作数map(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; map(f,a,b,c); map(h, a,b,c,x,y); 3 求 值3.1
15、赋值在Maple中, 不需要申明变量的类型, 甚至在使用变量前不需要将它赋值, 这是Maple与其它高级程序设计语言不同的一点, 也正是Maple符号演算的魅力所在, 这个特性是由Maple与众不同的赋值方法决定的. 为了理解其赋值机制, 先看下面的例子. p:=9*x3-37*x2+47*x-19; roots(p); subs(x=19/9,p);3.2 变量代换subs ( var = repacedment, expression);调用的结果是将表达式expression中所有变量var出现的地方替换成 replacement. f:=x2+exp(x3)-8; subs(x=1,f
16、);如果需要计算, 必须调用求值函数evalf. 如: evalf(%); subs(x=y,y=z,x2*y); (顺序替换) subs(x=y,y=z,x2*y); (同步替换) subs(a=b,b=c,c=a),a+2*b+3*c); (顺序替换) subs(a=b,b=c,c=a,a+2*b+3*c); (轮 换) subs(p=q,q=p,f(p,q); (互 换)3.3 求值规则1) 对表达式求值命令格式: eval(e, x=a); 求表达式e在x=a处的值 eval(e, eqns); 对方程或方程组eqns求值 eval(e); 表达式e求值到上面两层 eval(x,n);
17、 给出求值名称的第n层求值 p:=x5+x4+x3+x2+x+73; eval(p,x=7); 当表达式在异常点处求值时, eval会给一个错误消息. 如下: eval(sin(x)/x,x=0);Error, numeric exception: division by zero 2) 在代数数(或者函数)域求值命令格式: evala(expr); # 对表达式或者未求值函数求值 evala(expr,opts); 求值时可加选项(opts)在Maple中, 代数数用函数RootOf()来表示. 如作为一个代数数, 可以表示为: alpha:=RootOf(x2-3,x); simplify
18、(alpha2);在Maple内部, 代数数不再表示为根式, 而在化简时, 仅仅利用到这样的事实. 这里, Maple用到一个内部变量_Z. 再看下面一个例子,其中alias是缩写的定义函数,而参数lenstra指lenstra椭圆曲线方法: alias(alpha=RootOf(x2-2): evala(factor(x2-2,alpha),lenstra); evala(quo(x2-x+3,x-alpha,x,r); r; simplify(%);3) 在复数域上符号求值操纵复数型表达式并将其分离给出expr的实部和虚部的函数为evalc, 命令格式为:evalc(expr); eval
19、c假定所有变量表示数值, 且实数变量的函数是实数类型. 其输出规范形式为: expr1+I*expr2. evalc(sin(6+8*I); evalc(f(exp(alpha+x*I);4) 使用浮点算法求值命令格式为: evalf(expr, n); evalf(Pi,50); evalf(sin(3+4*I); 5) 对惰性函数求值把只用表达式表示而暂不求值的函数称为惰性函数,对任意代数表达式f求值的命令格式为: value(f); F:=Int(exp(x),x); value(%); f:=Limit(sin(x)/x,x=0); value(%);另外, 将惰性函数的大写字母改为小
20、写字母亦即可求值. 如下例: Limit(sin(x)/x,x=0)=limit(sin(x)/x,x=0);4 数据结构Maple中有许多内建的与FORTRAN、C或Pascal不同的数据结构. 主要的数据结构有序列(sequence)、列表(list)、集合(set)、代数数( algebraic number)、未求值或惰性函数调用、表(table)、级数(series)、串(string)、索引名(index)、关系(relation)、过程体(process)以及整数(integer)、分数(fraction)、浮点数(float)、复数(complex number)等数据结构,
21、而矩阵(matrix)在Maple中表示为阵列, 是一种特殊的表. 4.1 数据类型查询在Maple中, 用whattype指令来查询某个变量的数据类型或特定类型, 命令格式为: whattype(expr) # 查询expr的数据类型type(expr, t) # 查询expr是否为t类型, 若是则返回true, 否则返回false4.2 序列, 列表和集合4.2.1 序列所谓序列(Sequence), 就是一组用逗号隔开的表达式列. 如: s:=1,4,9,16,25; t:=sin,com,tan,cot;一个序列也可以由若干个序列复合而成, 如: s:=1,(4,9,16),25; s
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Maple 基础教程 修订稿 48
限制150内