Maple微积分计算步骤
数学软件Maple使用教程

数学软件Maple使⽤教程数学实验数学软件Maple使⽤教程序⾔⼀.什么是数学实验?我们都熟悉物理实验和化学实验,就是利⽤仪器设备,通过实验来了解物理现象、化学物质等的特性。
同样,数学实验也是要通过实验来了解数学问题的特性并解决对应的数学问题。
过去,因为实验设备和实验⼿段的问题,⽆法解决数学上的实验问题,所以,⼀直没有听说过数学实验这个词。
随着计算机的飞速发展,计算速度越来越快,软件功能也越来越强,许多数学问题都可以由计算机代替完成,也为我们⽤实验解决数学问题提供了可能。
数学实验就是以计算机为仪器,以软件为载体,通过实验解决实际中的数学问题。
⼆.常⽤的数学软件⽬前较流⾏的数学软件主要有四种:1.MathACD其优点是许多数学符号键盘化,通过键盘可以直接输⼊数学符号,在教学⽅⾯使⽤起来⾮常⽅便。
缺点是⽬前仅能作数值运算,符号运算功能较弱,输出界⾯不好。
2.Matlab优点是⼤型矩阵运算功能⾮常强,构造个⼈适⽤函数⽅便很⽅便,因此,⾮常适合⼤型⼯程技术中使⽤。
缺点是输出界⾯稍差,符号运算功能也显得弱⼀些。
不过,在这个公司购买了Maple公司的内核以后,符号运算功能已经得到了⼤⼤的加强。
再⼀个缺点就是这个软件太⼤,按现在流⾏的版本5.2,⾃⾝有400多兆,占硬盘空间近1个G,⼀般稍早些的计算机都安装部下。
我们这次没⽤它主要就是这个原因。
3.Mathematica其优点是结构严谨,输出界⾯好,计算功能强,是专业科学技术⼈员所喜爱的数学软件。
缺点是软件本⾝较⼤,⽬前流⾏的3.0版本有200兆;另⼀个缺点就是命令太长,每⼀个命令都要输⼊英⽂全名,因此,需要英语⽔平较⾼。
4.Maple优点是输出界⾯很好,与我们平常书写⼏乎⼀致;还有⼀个最⼤的优点就是它的符号运算功能特别强,这对于既要作数值运算,⼜要作符号运算时就显得⾮常⽅便了。
除此之外,其软件只有30兆,安装也很⽅便(直接拷贝就可以⽤)。
所以,我们把它放到学校⽹上直接调⽤。
微分方程的maple求解

微分⽅程的maple求解1、常⽤函数1)求解常微分⽅程的命令dsolve.dsolve(常微分⽅程)dsolve(常微分⽅程,待解函数,选项)dsolve({常微分⽅程,初值},待解函数,选项)dsolve({常微分⽅程组,初值},{待解函数},选项)其中选项设置解得求解⽅法和解的表⽰⽅式。
求解⽅法有type=formal_series(形式幂级数解)、type=formal_solution(形式解)、type=numeric(数值解)、type=series(级数解)、method=fourier(通过Fourier变换求解)、method=laplace(通过Laplace变换求解)等。
解的表⽰⽅式有explicit(显式)、implicit(隐式)、parametric(参数式)。
当⽅程⽐较复杂时,要想得到显式解通常⼗分困难,结果也会相当复杂。
这时,⽅程的隐式解更为有⽤,⼀般也要简单得多。
dsolve为标准库函数。
2)求解⼀阶线性常微分⽅程的命令linearsol.在Maple中求解⼀阶线性⽅程既可以⽤dsolve函数求解,也可以⽤Detools函数包中的linearsol函数求解。
linearsol是专门求解线性微分⽅程的命令,使⽤格式为: linearsol(线性⽅程,待解函数)linearsol的返回值为集合形式的解。
3)偏微分⽅程求解命令pdsolve.pdsolve(偏微分⽅程,待解变量,选项)pdsolve(偏微分⽅程,初值或边界条件,选项)pdsolve为标准库函数,可直接使⽤。
如果求解成功,将得到⼏种可能结果:⽅程的通解;拟通解(包含有任意函数,但不⾜以构造通解);⼀些常微分⽅程的集合;2、⽅法1)⼀阶常微分⽅程的解法a 分离变量法 I 直接分离变量法。
如()()dyf xg y dx=,⽅程右端是两个分别只含x 或y 的函数因式乘积,其通解为()()dyf x dx Cg y =+?。
maple课件

1.Maple概述什么是Maple, 怎么学习Maple?Maple软件是加拿大Waterloo大学在1980年开始开发,到现在最新的版本是Maple11, Maple具有强大的数值计算能力,图形处理能力,特别是符号计算能力。
常用的数学软件除Maple外,有Matlab等, 统计软件: SAS,SPSS,运筹学软件:Lingo, WINQSB.1. 数值计算与符号计算的区别a*x^2+b*x+c=0求这方程的跟, 来说明数值计算与符号计算的区别数值计算:切线法符号计算:Maple功能非常之强大, 不仅适合数学家, 还适合物理学家, 工程师,化学家,生物学家, 总之,它适合所有需要科学计算的人.举例:1) 求PI的前100位2) 求X的范围3) 求积分演示1.1.2界面介绍1.工具栏在Maple界面上说明2. 工作区每一个“>”是一个执行块. 表示命令提示符。
9-95 1.2基本运算能精确计算整数、有理数或者实数、复数的四则运算, 以及模算术、硬件浮点数和任意精度的浮点数甚至于矩阵的计算等等.总之, Maple可以进行任意数值计算.10-95 1.2.1数值计算问题关键符号问号(?) 帮助分号(;) 表示表达式结束,显示内容冒号(:) 表示表达式结束,不显示内容字符(\) 表示内容连续井号(#) 表示注释百分号(%) 表示上一步(I) 表示虚数单位演示11-951.2.1.2复数运算函数作用格式Re 返回实部function(co mplex)Im返回虚部conjugate 共轭复数argument 幅角abs模演示1.2.1.3数的进制转换convert 函数●b inary二进制●d ecimal 十进制●o ctal 八进制●h ex十六进制演示1.2.1.4常用函数●isprime素数isprime(n)●max/min最值max(a1,a2,…);●mod/modp/mods余a mod b; modp(a,b); mods(a,b);●rand随机数rand();rand(a..b)();14-95 1.2.1.5整数计算函数abs 求绝对值ifactor 求因子iquo 求商iquo(a,b,’r’)irem 余数irem(a,b,’q’)isqrt 近似的平方跟整数15-95 1.2.1.6精确与非精确运算在精确运算中,必须所有的数是整数或恒数(如, Pi), Maple不会对该表达式进行浮点运算.如果你想得到非精确值, 用浮点数进行该表达式计算.演示1.2.2初等函数初等数学是数学的基础之一, 也是数学中最有魅力的一部分内容. 通过下面的内容我们可以领略Maple对初等数学的驾驭能力, 也可以通过这些实验对Maple产生一些感性认识. 指数函数:exp自然函数:ln一般对数:log[a]常用对数: log101.2.2.1重要函数连乘函数: product/Product 连加函数: sum/Sum展开函数:expand合并函数:combine1.2.2.2简单函数定义Maple定义简单的函数有2种方法:•函数法:unapply(expr,vars);expr为任意表达式,vars为变量组•箭头法: (vars)->expr;expr为任意表达式,vars为变量组重要函数floorceilopnopsmap演示1.3求值1.3.1赋值在Maple中,不需要申明变量类型,直接对变量赋值,其赋值格式为.变量明:=表达式;例如:y:=5;f:=x^2+3*x+2;1.3.2变量代换在表达式化简中, 变量代换是一个得力工具. 我们可以利用函数subs根据自己的意愿进行变量代换, 最简单的调用这个函数的形式是这样的:单个变量替换subs ( x= a, expr);多个变量替换subs ( x = a,y=b, expr);调用的结果是将表达式expr中所有变量var出现的地方替换成变量的值.演示subs命令●顺序替换subs(var1=val1,var2=val2,…,expr);subs((var1=val1,var2=val2,…),expr);●同步替换subs({var1=val1,var2=val2,…},expr);演示1.3.3 假设机制解决某些问题的时候,我们必须要对其变量进行假设,格式如下:assume(x1::prop1,x2::prop2,…);assume(x1>val,x2<val);其中xi表示变量,propi表示属性,val表示值例如:sin(n*Pi),如果n是整数,这个表达式值为0assume(n::interger)演示1.3.4 求值规则●eval 命令格式:eval(e, x=a); #求表达式e在x=a处的值eval(e, vars); #对方多个变量求值●evalc #对复数求值●evalf #求浮点数●evala #对表达式或未求值函数求值●value #对惰性表达式求值1.4 数据结构●变量类型(数字,字符串,复合表达式)integer, float, list, set, exprseq,…●运算符: +, -, *, /, ^●关系表达式:=, <>, <, <=注意“>”●逻辑表达式: and, or ,not26-95 1.4.1 数据及变量类型查询●whattype(expr)其中expr是任何表达式●type(expr,t)其中expr是任何表达式,t为有效表达式1.4.2 序列,列表和集合1.4.2.1序列所谓序列(Sequence), 就是一组用逗号隔开的表达式列.如:s:=1,4,9,16,25;一个序列也可以由若干个序列复合而成s:=s,s;该值为:1,4,9,16,25,1,4,9,16,25;产生序列的函数为seq(f,i=m..n)其中f是函数,可以是i的函数,也可以不是.判断序列的函数为:nops演示1.4.2.2 列表简单的说, 就是序列加上方括号如:L:=[1,2,3,4];L1:=[[1,2,3],[2,3,4]];对序列和列表操作的函数nops:个数sort:排序op:解开操作extracts operands from an expression1.4.2.3 集合集合(set)也是把对象(元素)放在一起的数据结构, 与列表不同的是集合中不可以有相同的元素(如果有, Maple也会自动将其当作同一个元素), 另外, 集合中的元素不管次序. 用花括号表示集合.s:={x,1,1-z,x};集合的基本运算函数:交(intersect),并(union),差(minus)格式:函数(集合,集合);1.4.3 数组和表arraytableS := table([(2)=45,(4)=61]);1.4.4 数据类型的转换与合并convert 这个功能强大的类型转换函数,可以实现列表和数组的类型转换将array转换为list将array转换为set1.5 高级输入与输出操作Maple提供了良好的接口来编辑与计算数学式. 许多时候, 我们可能需要把Maple的运算结果输出到一个文件中, 或者在一个文本编辑器里先编好一个较大的Maple程序, 再将它加载到Maple的环境里.1.5.1 fprintffprintf函数是用来输出到文件中,在使用该函数前,先用fopen打开一个文件,再使用fprintf函数输出到fopen打开的文件中,最后用fclose关闭文件。
Maple基础教程(修订稿).

Maple 基础一Maple 的基本运算1 数值计算问题在应用Maple 做算术运算时, 只需将Maple 当作一个“计算器”使用, 所不同的是命令结束时需加“;”或“:”.在Maple 中, 主要的算术运算符有“+”(加)、“–”(减)、“*”(乘)、“/”(除)以及“^”(乘方或幂,或记为**),值得注意的是, “^”的表达式只能有两个操作数, 换言之, c b a ^^是错误的, 而“+”或“*”的任意表达式可以有两个或者两个以上的操作数.2.1.1 有理数运算作为一个符号代数系统, Maple 可以绝对避免算术运算的舍入误差.如果要求出两个整数运算的近似值时, 只需在任意一个整数后加“.”(或“.0”), 或者利用“evalf ”命令把表达式转换成浮点形式, 默认浮点数位是10 (即: Digits:=10, 据此可任意改变浮点数位, 如Digits:=20).> 123456789/987654321;13717421109739369> evalf(%); .1249999989> big_number:=3^(3^3);:= big_number 7625597484987> length(%);13函数“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 除以n 的商数, 并将余数赋给r其中, m, n 是整数或整数函数, 也可以是代数值, 此时, irem 保留为未求值.2)素数判别(isprime)命令格式: isprime(n);如果判定n 可分解, 则返回false, 如果返回true, 则n “很可能”是素数. > isprime(2^(2^4)+1);true3) 确定第i 个素数(ithprime)若记第1个素数为2,判断第i 个素数的命令格式: ithprime(i);4) 一组数的最大值(max)/最小值(min)命令格式: max(x1,x2,…,xn); #求x 1,x 2,…,x n 中的最大值min(x1,x2,…,xn); #求x 1,x 2,…,x n 中的最小值5)随机数生成器(rand)命令格式:rand( ); #随机返回一个12位数字的非负整数rand(a..b); #调用rand(a..b)返回一个程序, 它在调用时生成一个在范围[a, b]内的随机数> rand();427419669081> myproc:=rand(1..2002):> myproc();1916> myproc();1204注意, 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);-510Icomplex_number +:=> Re(%);Im(%%);conjugate(%%%);argument(complex_number);-510-510I-- +arctan2π()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);product(f,k=expr);其中, f—任意表达式, k—乘积指数名称, m,n—整数或任意表达式, alpha—代数数RootOf, expr—包含k的任意表达式.> product(k^2,k=1..10); #计算2k关于1..10的连乘13168189440000> product(k^2,k); #计算2k的不确定乘积()Γk 2> product(a[k],k=0..5); #计算a i (i=0..5)的连乘a 0a 1a 2a 3a 4a 5> Product(n+k,k=0..m)=product(n+k,k=0..m); #计算(n+k)的连乘, 并写出其惰性表达式= ∏ = k 0m() + n k ()Γ + + n m 1()Γn> product(k,k=RootOf(x^3-2)); #计算23-x 的三个根的乘积22)指数函数计算指数函数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(k^2,k=1..n)=sum(k^2,k=1..n);= ∑ = k 1nk 2 - + + 13() + n 1312() + n 1216n 16> Sum(1/k!,k=0..infinity)=sum(1/k!,k=0..infinity);= ∑ = k 0∞1!k e> sum(a[k]*x[k],k=0..n);∑ = k 0n a k xk> sum(k/(k+1),k=RootOf(x^2-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(x); arctanh(x); arccoth(x); arcsech(x); arccsch(x);arctan(y,x);其中, x, y 为表达式. 反三角函数/反双曲函数的参数必须按弧度计算.> arcsinh(1);()ln + 12> cos(arcsin(x));- 1x 25)对数函数命令格式: ln(x); #自然对数log[a](x); #一般对数log10(x); #常用对数一般地, 在ln(x)中要求x>0. 但对于复数型表达式x, 有:)(argument *))(abs ln()ln(x I x x += (其中, ππ≤<-)(argument x )> log10(1000000);()ln 1000000()ln 10 > simplify(%); #化简上式62.2.2 函数的定义试看下面一个例子:> f(x):=a*x^2+b*x+c;---并不是函数,而是一个表达式:= ()f x + + a x 2b x c> f(x),f(0),f(1/a);,, + + a x 2b x c ()f 0⎛⎝ ⎫⎭⎪⎪f 1a 由上述结果可以看出, 用赋值方法定义的f(x)是一个表达式而不是一个函数在Maple 中, 要真正完成一个函数的定义, 需要用算子(也称箭头操作符):> f:=x->a*x^2+b*x+c;:= f → x + + a x 2b x c> f(x),f(0),f(1/a);,,+ + a x 2b x c c + + 1a b ac > f:=(x,y)->x^2+y^2; := f → (),x y + x 2y 2> f(1,2);5> f:=(x,y)->a*x*y*exp(x^2+y^2);:= f → (),x y a x y e() + x 2y 2另一个定义函数的命令是unapply,其作用是从一个表达式建立一个算子或函数.命令格式为: f:=unapply(expr, x);命令格式为: f:=unapply(expr, x, y, …);> f:=unapply(x^4+x^3+x^2+x+1,x);:= f → x + + + + x 4x 3x 2x 1借助函数piecewise 可以生成简单分段函数:> abs(x)=piecewise(x>0,x,x=0,0,x<0,-x); = x ⎧⎩⎪⎪⎪⎪⎪⎨x < 0x 0 = x 0-x < x 0清除函数的定义用命令unassign.> unassign(f);> f(1,1); ()f ,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;:= expr + + 6()cos x ()sin x ()cos x 2> op(expr);,,6()cos x ()sin x ()cos x 2> nops(expr);32.2.3 Maple 中的常量与变量名为了解决数学问题, 一些常用的数学常数是必要的. Maple 系统中已经存储了一些数学常数在表达式序列constants 中:> constants;,,,,,,false γ∞true Catalan FAIL π为了方便使用, 现将上述常数的具体含义列示如下:2.2.4 函数类型转换实现函数类型转换的命令是convert . 命令格式:convert(expr, form); #把数学式expr 转换成form 的形式convert(expr, form, x); #指定变量x, 此时form 只适于exp 、sin 、cosconvert 指令所提供的三角函数、指数与函数的转换共有exp 等7种:(1) exp : 将三角函数转换成指数(2) expln : 把数学式转换成指数与对数(3) expsincos : 分别把三角函数与双曲函数转换成sin 、cos 与指数的形式(4) ln : 将反三角函数转换成对数(5) sincos : 将三角函数转换成sin 与cos 的形式, 而把双曲函数转换成sinh 与cosh 的形式(6) tan : 将三角函数转换成tan 的形式(7) trig : 将指数函数转换成三角函数与对数函数> convert(sinh(x),exp); #将sinh(x)转换成exp 类型 - 12e x 121ex 2.2.5 函数的映射—map 指令在符号运算的世界里, 映射指令map 可以说是相当重要的一个指令, 它可以把函数或指令映射到这些结构里的元素, 而不破坏整个结构的完整性. 命令格式为:map(f, expr); #将函数f 映射到expr 的每个操作数map(f, expr, a); #将函数f 映射到expr 的每个操作数, 并取出a 为f 的第2个自变量map(f, expr, a1, a2,…, an); #将函数f 映射到expr 的每个操作数, 并取a1~an 为f 的第2~n+1个自变量map2(f, a1, expr, a2, …, an); #以a1为第1个自变量, expr 的操作数为第2个自变量, a2为第3个自变量…, an 为第n+1个自变量来映射函数f> f:=x->sqrt(x)+x^2;:= f → x + x x 2> map(f,[a,b,c]); [],, + a a 2 + b b 2 + c c 2> map(h, [a,b,c],x,y);[],,()h ,,a x y ()h ,,b x y ()h ,,c x y3 求 值3.1 赋值在Maple 中, 不需要申明变量的类型, 甚至在使用变量前不需要将它赋值, 这是Maple 与其它高级程序设计语言不同的一点, 也正是Maple 符号演算的魅力所在, 这个特性是由Maple 与众不同的赋值方法决定的. 为了理解其赋值机制, 先看下面的例子.> p:=9*x^3-37*x^2+47*x-19;:= p - + - 9x 337x 247x 19> roots(p);⎡⎣⎢⎢⎤⎦⎥⎥,[],12⎡⎣⎢⎢⎤⎦⎥⎥,1991> subs(x=19/9,p);3.2 变量代换subs ( var = repacedment , expression );调用的结果是将表达式expression 中所有变量var 出现的地方替换成 replacement.> f:=x^2+exp(x^3)-8;:= f + - x 2e()x 38> subs(x=1,f); - + 7e如果需要计算, 必须调用求值函数evalf . 如:> evalf(%);5.> subs(x=y,y=z,x^2*y); (顺序替换)z 3> subs({x=y,y=z},x^2*y); (同步替换)y 2z> subs((a=b,b=c,c=a),a+2*b+3*c); (顺序替换)6a> subs({a=b,b=c,c=a},a+2*b+3*c); (轮 换)+ + b 2c 3a> subs({p=q,q=p},f(p,q)); (互 换)()f ,q p3.3 求值规则1) 对表达式求值命令格式: eval(e, x=a); #求表达式e 在x=a 处的值eval(e, eqns); #对方程或方程组eqns 求值eval(e); #表达式e 求值到上面两层eval(x,n); #给出求值名称的第n 层求值> p:=x^5+x^4+x^3+x^2+x+73;:= p + + + + + x 5x 4x 3x 2x 73> eval(p,x=7);19680当表达式在异常点处求值时, eval 会给一个错误消息. 如下:> eval(sin(x)/x,x=0);Error, numeric exception: division by zero2) 在代数数(或者函数)域求值命令格式: evala(expr); # 对表达式或者未求值函数求值evala(expr,opts); #求值时可加选项(opts)在Maple 中, 代数数用函数RootOf ()来表示. 如3作为一个代数数, 可以表示为:> alpha:=RootOf(x^2-3,x);:= α()RootOf - _Z 23> simplify(alpha^2);3在Maple 内部, 代数数α不再表示为根式, 而在化简时, 仅仅利用到32=α这样的事实. 这里, Maple 用到一个内部变量_Z. 再看下面一个例子,其中alias 是缩写的定义函数,而参数lenstra 指lenstra 椭圆曲线方法:> alias(alpha=RootOf(x^2-2)):> evala(factor(x^2-2,alpha),lenstra); () + x α() - x α> evala(quo(x^2-x+3,x-alpha,x,'r'));- + + 1αx> r;- + 3αα2> simplify(%);- 5α3) 在复数域上符号求值操纵复数型表达式并将其分离给出expr 的实部和虚部的函数为evalc, 命令格式为:evalc(expr);evalc 假定所有变量表示数值, 且实数变量的函数是实数类型. 其输出规范形式为: expr1+I*expr2. > evalc(sin(6+8*I));+ ()sin 6()cosh 8I ()cos 6()sinh 8> evalc(f(exp(alpha+x*I)));()f + e α()cos x I e α()sin x4) 使用浮点算法求值命令格式为: evalf(expr, n);> evalf(Pi,50);3.1415926535897932384626433832795028841971693993751> evalf(sin(3+4*I)); - 3.853********.01681326I5) 对惰性函数求值把只用表达式表示而暂不求值的函数称为惰性函数,对任意代数表达式f 求值的命令格式为: value(f); > F:=Int(exp(x),x);:= F d ⎛⎠⎜e x x > value(%);e x> f:=Limit(sin(x)/x,x=0);:= f lim→ x 0()sin x x> value(%); 1另外, 将惰性函数的大写字母改为小写字母亦即可求值. 如下例:> Limit(sin(x)/x,x=0)=limit(sin(x)/x,x=0);= lim → x 0()sin x x1 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 中, 用whattype 指令来查询某个变量的数据类型或特定类型, 命令格式为:whattype(expr) # 查询expr 的数据类型type(expr, t) # 查询expr 是否为t 类型, 若是则返回true, 否则返回false4.2 序列, 列表和集合4.2.1 序列所谓序列(Sequence), 就是一组用逗号隔开的表达式列. 如:> s:=1,4,9,16,25;:= s ,,,,1491625> t:=sin,com,tan,cot;:= t ,,,sin com tan cot一个序列也可以由若干个序列复合而成, 如:> s:=1,(4,9,16),25;:= s ,,,,1491625> s,s;,,,,,,,,,14916251491625而符号NULL 表示一个空序列. 序列有很多用途, 如构成列表、集合等. 事实上, 有些函数命令也是由序列构成. 例如:> max(s);25> min(s,0,s);函数seq 是最有用的生成序列的命令, 通常用于写出具有一定规律的序列的通项, 命令格式为: 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(i^2,i=1..10);149162536496481100,,,,,,,,,> seq(i^3,i=x+y+z);x3y3z3,,获得一个序列中的特定元素选用操作符[ ], 如:> seq(ithprime(i),i=1..20);235711131719232931374143475359616771,,,,,,,,,,,,,,,,,,,> %[6],%[17];1359,4.2.2 列表列表(list), 就是把对象(元素)放在一起的一种数据结构, 一般地, 用方括号[ ]表示列表. 如下例: > l:=[x,1,1-z,x];x1 -1z x,,,:=l[]> whattype(%);list4.2.3 集合集合(set)也是把对象(元素)放在一起的数据结构,一般地, 用花括号表示集合.> s:={x,1,1-z,x};1z1x -,,s{}:=> whattype(%);set空集定义为{ }.Maple中集合的基本运算有交(intersect)、并(union)、差(minus):> A:={seq(i^3,i=1..10)};B:={seq(i^2,i=1..10)};,,,,,,,,,1827641252163435127291000A{}:=149162536496481100,,,,,,,,,B{}:=> A intersect B;,164{}4.3 数组和表在Maple中, 数组(array)由命令array产生, 其下标变量(index)可以自由指定. 下标由1开始的一维数组称为向量(vector), 二维以上的数组称为矩阵(matrix). 数组的元素按顺序排列, 任意存取一数组的元素要比列表或序列快的多. 区分一个数据结构是数组还是列表要用“type”命令.表(table)在建立时使用圆括号, 变量能对一个表赋值, 但一个在存取在算子中的未赋值变量会被自动地假定是表, 表的索引可以成为任意Maple表达式. 表中元素的次序不是固定的.5 Maple 高级输入与输出操作生成LATEXMaple 可以把它的表达式转换成LATEX, 使用latex 命令即可: > latex(x^2+y^2=z^2);{x}^{2}+{y}^{2}={z}^{2}还可以将转换结果存为一个文件(LatexFile):> latex(x^2 + y^2 = z^2, LatexFile);再如下例:> latex(Int(1/(x^2+1),x)=int(1/(x^2+1),x));\int \! \left( {x}^{2}+1 \right) ^{-1}{dx}=\arctan\left( x \right)二 微积分运算1 函数的极限和连续1.1 函数和表达式的极限)(lim x f ax →命令格式为: limit(f,x=a);求)(lim x f a x +→时的命令格式为limit(f, x=a, right); 求)(lim x f ax -→时的命令格式为limit(f, x=a, left); 请看下述例子:> Limit((1+1/x)^x,x=infinity)=limit((1+1/x)^x,x=infinity);= lim → x ∞⎛⎝ ⎫⎭⎪⎪ + 11x xe > Limit((x^n-1)/(x-1),x=1)=limit((x^n-1)/(x-1),x=1);= lim → x 1 - x n 1 - x 1n > Limit(x^x,x=0,right)=limit(x^x,x=0,right);= lim → +x 0x x 1> limit(a*x*y-b/(x*y),{x=1,y=1});- a b> limit(x^2*(1+x)-y^2*((1-y))/(x^2+y^2),{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 14π = y 14π > 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 函数假定表达式中的所有符号都是实数型. 颇为有趣的是, 当给定区间[a,b ] (a >b )时, 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)间断点的命令为:discont(f, x);> discont(ln(x^2-4),x);{},-22> discont(arctan(1/2*tan(2*x))/(x^2-1),x);{},,-11 + 12π_Z1~14π> discont(round(3*x-1/2),x);{} + 1313_Z1 函数round 为“四舍五入”函数,上例并非一目了然,对其进一步理解可借助于函数plot 或下面给出的fdiscont 例子。
数学软件Maple使用教程

数学软件Maple使用教程序言一.什么是数学实验?我们都熟悉物理实验和化学实验,就是利用仪器设备,通过实验来了解物理现象、化学物质等的特性。
同样,数学实验也是要通过实验来了解数学问题的特性并解决对应的数学问题。
过去,因为实验设备和实验手段的问题,无法解决数学上的实验问题,所以,一直没有听说过数学实验这个词。
随着计算机的飞速发展,计算速度越来越快,软件功能也越来越强,许多数学问题都可以由计算机代替完成,也为我们用实验解决数学问题提供了可能。
数学实验就是以计算机为仪器,以软件为载体,通过实验解决实际中的数学问题。
二.常用的数学软件目前较流行的数学软件主要有四种:1.MathACD其优点是许多数学符号键盘化,通过键盘可以直接输入数学符号,在教学方面使用起来非常方便。
缺点是目前仅能作数值运算,符号运算功能较弱,输出界面不好。
2.Matlab优点是大型矩阵运算功能非常强,构造个人适用函数方便很方便,因此,非常适合大型工程技术中使用。
缺点是输出界面稍差,符号运算功能也显得弱一些。
不过,在这个公司购买了Maple公司的内核以后,符号运算功能已经得到了大大的加强。
再一个缺点就是这个软件太大,按现在流行的版本5.2,自身有400多兆,占硬盘空间近1个G,一般稍早些的计算机都安装部下。
我们这次没用它主要就是这个原因。
3.Mathematica其优点是结构严谨,输出界面好,计算功能强,是专业科学技术人员所喜爱的数学软件。
缺点是软件本身较大,目前流行的3.0版本有200兆;另一个缺点就是命令太长,每一个命令都要输入英文全名,因此,需要英语水平较高。
4.Maple优点是输出界面很好,与我们平常书写几乎一致;还有一个最大的优点就是它的符号运算功能特别强,这对于既要作数值运算,又要作符号运算时就显得非常方便了。
除此之外,其软件只有30兆,安装也很方便(直接拷贝就可以用)。
所以,我们把它放到学校网上直接调用。
缺点就是目前市面上买不到教材,帮助系统又是英语,为学习带来了不便。
Maple在微积分上的应用

EX:
f(x)=xsinx
2.6 隱微分法
如果方程式f(x,y)=0無法表示成y=f(x)的形式,則前幾節所介紹的微分法 便不適用,因此必須嘗試隱微分法來求得函數f的微分。
f ( a h) f ( a ) f ( a h) f ( a ) lim L h 0 h 0 h h 則稱f在x=a可微分(differentiable)。 ● 一般而言,函數f(x)於x=a不可微分通常發生於下面三種情況: 1. 函數的圖形於x=a為一尖角或折點。EX: 2. 函數於x=a不連續(斷點)X: EX:可微分例子。 f '(a) lim
2 3 前EX: x y 2 x y
EX:
第三章 導數的應用
3.1 函數圖形的判別 3.2 極大值與極小值
3.1 函數圖形的判別
函數圖形的外觀可以簡單藉由函數的導函數來判別。下面介紹(1)函數的 遞增遞減(2)函數圖形的凹向性。 (1)函數的遞增遞減:
若含數定義於某區間,設x1與x2為該區間內的任意兩點,且x1<x2。若f(x1)<f(x2) ,則 f在該區間為遞增(increasing) ,反之,若f(x1)>f(x2) ,則f 在該區間為遞減(decreasing) 。 函數的遞增與遞減區間可由該函數的一階導函數的正負值來判斷。
(1)微分指令diff:
diff(f(x),x) Diff(f(x),x) d f(x) dx 保留微分的原式,不對微分式求值。 計算微分式
EX1: diff指令的用法 EX2: Diff指令的用法 d p.s:數學上慣用以 dx f 來表示單變數函數f對x微分。若f為多變數函 數,則習慣上以 f 來表示f對x的偏微分(partial differentiation)。 x d Maple的輸出是以較廣義的偏微分符號 來取代慣用的 。
计算机代数系统第二章 Maple微积分运算(修订稿)

第二章微积分运算微积分是数学学习的重点和难点之一, 而微积分运算是Maple最为拿手的计算之一, 任何解析函数, Maple都可以求出它的导数来, 任何理论上可以计算的积分, Maple都可以毫不费力的将它计算出来. 随着作为数学符号计算平台的Maple的不断开发和研究, 越来越多的应用程序也在不断地创设.1 函数的极限和连续1.1 函数和表达式的极限在Maple中, 利用函数limit计算函数和表达式的极限. 如果要写出数学- 34 -- 35 -表达式, 则用惰性函数Limit . 若a 可为任意实数或无穷大时, 求)(lim x f ax →命令格式为: limit(f,x=a);求)(lim x f ax +→时的命令格式为limit(f, x=a, right); 求)(lim x f ax -→时的> Limit(x^x,x=0,right)=limit(x^x,x=0,right);= lim→ +x 0x x1> Limit(abs(x)/x ,x=0,left)=limit(abs(x)/x,x=0,left);> limit(abs(x)/x,x=0);undefined对于多重极限计算, 也用limit. 命令格式为: limit(f, points, dir); 其中, points是由一系列方程定义的极限点, dir(可选项)代表方向: left(左)、right(右)等. 例如:> limit(a*x*y-b/(x*y),{x=1,y=1});- 36 --a b> limit(x^2*(1+x)-y^2*((1-y))/(x^2+y^2),{x=0,y=0});undefined>- 37 -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函数假定表达式中的所有符号都是实数型. 颇为有趣的是, 当给定区间[a,b] (a>b)时, iscont会自动按[b,a]处理. > iscont(1/x,x=1..2);- 38 -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~(任意整数)、- 39 -_NZn~(任意自然数)和Bn~(一个二进制数, 0或者1), 其中n是序号. 判定f(x)间断点的命令为:discont(f, x);> discont(ln(x^2-4),x);-22{},- 40 -函数round为“四舍五入”函数,上例并非一目了然,对其进一步理解可借助于函数plot或下面给出的fdiscont例子。
maple数学软件4

(2) 统计字符 可以通过stats[transform,tally](data)加载程序包 可以通过 加载程序包 transform 及其子程序包 及其子程序包stats, 调用 调用tally来统计字符出现的 来统计字符出现的 频度。 频度。 如: A:=[seq(sin(x*Pi/6),x=0..30); stats[transform,tally](A);
2.自变量趋于无限大时函数的极限 自变量趋于无限大时函数的极限 restart; Limit((1+1/x)^x,x=infinity)=limit((1+1/x)^x,x=infinity); plot((1+1/x)^x,x=-1000-0.1..1000+0.1); plot((1+1/x)^x,x=-10000-0.1..10000+0.1);
4.3 函数的连续性
1、连续 、 判断函数的连续性及寻找它们奇点的函数是iscont 和 判断函数的连续性及寻找它们奇点的函数是 singular。如: 。 iscont(1/x,x=1..2); iscont(1/x,x=-1..1); iscont(1/x,x=0..1); iscont(1/x,x=0..1,’closed’); iscont(1/(x+a),x=0..1);
3、多元函数的极限 、 limit(2*x*y-3/(x*y),{x=1,y=1}); limit((sqrt(x*y+1)-1)/(x*y),{x=0,y=0}); limit(limit((sqrt(x*y+1)-1)/(x*y),x=0),y=0); limit(ln(x+exp(y))/sqrt(x^2+y^2),{x=1,y=0}); limit(limit(ln(x+exp(y))/sqrt(x^2+y^2),x=1),y=0);