1、Maple教程,Maple简介Maple基础数值计算符号运算方程求解图形可视化程序设计,Maple简介,Maple的历史Maple的结构Maple的基本功能Maple的帮助系统,Maple的历史,Maple枫叶,加拿大国旗图标,于1980年由加拿大教授Keith Geddes和Gaston Gnnot在Waterloo大学开发出来,回来Waterloo Maple公司开发了用于商业目的的Maple软件,包含了近3000个函数的数学函数库(简称函数库)和程序包,可以胜任十分广泛的符号和数值分析任务,是开发最早,应用最广泛的计算机代数软件系统之一。,Maple的结构,Maple的结构可以分为以下三
2、个部分内核:大约10的Maple函数组成Maple的内核,它们构成了核心的指令集。这些函数解释并处理输入、计算数值、管理内存。函数库:大约90的Maple函数用Maple语言和内核操作编写。一些函数在Maple启动时加载,其它的函数则需要手动加载。,用户接口:用户通过接口与Maple进行对话,虽然Maple提供了基于文本的命令行用户界面,但更主要的还是GUI界面。,Maple的基本功能,Maple不但具有精确的数值处理功能,而且具有无以伦比的符号计算功能。Maple 的符号计算能力还是MathCAD和MATLAB等软件的符号处理的核心。Maple提供了2000余种数学函数,涉及范围包括:普通数
3、学、高等数学、线性代数、数论、离散数学、图形学。它还提供了一套内置的编程语言,用户可以开发自己的应用程序,而且Maple自身的2000多种函数,基本上是用此语言开发的。,Maple采用字符行输入方式,输入时需要按照规定的格式输入,虽然与一般常见的数学格式不同,但灵活方便,也很容易理解。输出则可以选择字符方式和图形方式,产生的图形结果可以很方便地剪贴到Windows应用程序内。,例子:,简单的数值计算8*42-9;初等和高等数学的运算能力(3*x2-5*x+3+6y)*(-9*x2+9*x+9*x-6*y2);expand(%);绘制二维、三维的图形plot(sin(x),x=-10.10);,
4、Maple的帮助系统,Introduction:单击此命令,可以对Maple获得初步的了解New Users Tour:新手的简明教程Topic Search:搜索特定功能或函数Full Text Search:可以了解哪些主题涉及到某个关键字。?命令:了解某个命令的有关信息 如:?Maple,Maple 基础知识,Maple运行环境Maple的运行界面:各菜单的主要功能Maple的标志符与变量名Maple的语句和表达式Maple的数据类型Maple的函数库和程序包,标志符与变量名,标志符Maple的标志符由26个大、小写字母,10个数字字符,以及以下32个特殊符号组成:,; : + - *
5、/ != $ . , ( ) “ | & _ % # ?,变量名(name),变量名由字符串(string)组成。字符串由标志符组成,名的第一个符号必须是字母,后面可跟字母、数字、下划线。最大长度可以有499个字符。变量名区分大小写。30个内部预定字符串,by do done elif else end fi for from if in local od option options proc quit read save stop then to while + - ! $ not &string . %,基本算子集,+ - * / * $ &* &string . . ” ! = = -
6、 mod union minus intersect and or := “” not,Maple的数据类型,简单的数值类型序列(Sequence)集合(Set)列表(List)系表(Series)表(Table),简单的数值类型,整数(integer)分数(fraction)浮点数(float)常数(constant)函数(function)复数(complex)代数数(algebraic number),类型与判别,类型判别命令type(expr,t)类型询问whattype(expr),Maple 的语句类型,赋值语句(assignment statement) 读文件语句(read s
7、tatement)存文件语句(save statement)条件语句(selection statement)循环语句(repetition statement)退出语句(quit statement),赋值语句,变量名 :=表达式,读文件语句,read(文件名),存文件语句,save(文件名),条件语句,if 条件 then 语句组 fi if 条件 then 语句组 else语句组 fi if 条件then 语句组 elif 条件 then 语句组 fi if 条件 then 语句组 elif 条件 then 语句组 else 语句组 fi,循环语句,for 变量名 from 初值 by
8、步长 to 终值 while 条件 do语句组 od for变量名 in 集合 while 条件do语句组 od,退出语句,quit,done,stop,表达式与函数的定义,Maple的表达式是由常数、变量、函数、运算符、括号组成。函数(function)有四种方法定义箭头法:变量-结果尖括号法:转换法:unapply(expr,t)过程定义法:proc()end,Maple的函数库和程序包,单变量函数多变量函数复合函数 f1(f2(x)或者(f1f2)(x)加载库函数 使用?indexmisc查看各库函数内容加载程序包,Maple的程序包,使用?indexpackage查看程序包 如果需要了
9、解某个程序包的功能和内容,可以用“?”来查询利用with()函数可以加载特定的程序包 如:with(plottools); 可以使用:“package_namecommand(arguments)”方式调用程序包中的函数,Maple的常用程序包,codegen:代码生成combinat:组合函数diffalg:微分代数geometry:欧氏几何group:群论inttrans:积分变换linerAlgebra:基于rtable结构的线性代数,Maple的常用程序包,linalg:基于数列结构的线性代数matlab:Matlab链接包plots:画图程序包plottools:基本画图dimple
10、x:线性优化dtats:统计程序包student:学生专用数学tensor:张量及广义相对论PDEtools:偏微分方程程序包,数值计算,初等代数运算微积分运算线性代数运算,初等代数运算_实数运算,基本运算符:+,-,*,/,*,mod,!eval系列函数:evalf,evala,evalb,evalc,evalf,evalhf,evalm,evaln,evalr%:前一次运算结果;%:常用函数: ifactor,sum,add,mul ,product,value,浮点数运算常用的函数,trunc:取选择的数值的整数部分round:四舍五入frac:小数部分floor:求小于选择数值的最大整
11、数cell:求大于选择数值的最小整数,初等代数运算_复数运算,虚数单位:I常用函数:Re,Im:实部和虚部conjugate:共轭复数argumeng:辐角abs:模convert:将复数转换成坐标形式,初等代数运算_处理表达式,1、表达式的展开,因式分解和化简expand,factor,ifactor,sort,smplify,normal表达式形式变换: 坐标变换,拉普拉斯变换(Laplace),贝塞尔变换(Bessel),傅立叶变换(Fourier),矩阵变换等。,多项式,本身的信息coeff求某项系数coeffs求所有系数的序列degree多项式的幂次lcoeff首项系数ldegree
12、尾项幂次tcoeff尾项系数,多项式的算术运算,+,- ,* ,content多项式的内容divide多项式整除gcd最大公因子lcm最小公因子prem伪余式primpart多项式的素部分rem余式quo商,多项式的数学处理,discrim求多项式的特征值interp求插值多项式subs求多项式的值,多项式方程的求根和因式分解,factor因式分解fsolve实根和复根的浮点值irreduce在给定数域上的不可约判定realroot计算实根的所在区间roots计算多项式在给定数域上的全部根,多项式项的重组,collect合并同类项的系数compoly多项式分解horner将多项式表示成horn
13、er形式expand多项式的展开sqrfree无开方因式分解normal转换成正规形式sort项分类表示,有理式,有理函数的运算命令denom给出有理分式的分母normal将有理分式化成不可约有理分式numer给出有理分式的分子subs有理分式的代换求值collect合并同类项confrac转换成连分式factor将分子分母因式分解parfrac将有理分式分解成部分分式,初等代数运算_三角函数,sin,cos,tan,cot,sec,csc,arcsin,arccos,arctan,arccot,arcsec,arccscevalf,convert,simplify,expand,求解简单的方
14、程和不等式,解代数方程的函数:solve代数方程的数值解:fsolve使用参数avoid可以排除个别取值点: fsolve(sin(x)=0,x,avoid=x=0,x=Pi,1.9);求解简单的方程组求解不等式:solve,解方程,解方程命令solve(eqn,var)solve(eqns,vars)其它函数过程dsolvefsolveisolvemsolversolveassigninvfuncisolatematchlinalglinsolvesimplexgrobner,用?solvetopic查询,Topic如下:floatsfunctionsidentityineqslinearr
15、adicalscalarseriessystem,公式的化简,展开命令expand(expr,expr_1,expr_n)合并命令combine(f),combine(f,n)化简命令simplify(expr),simplify(expr,n1,n2,),simplify(expr,assume=prop),用?simplifyname查询一些特殊化简过程,Name如下:EiGAMMARootOfatsignhypergeomlnpolarradicalsqrttrig用转换命令化简convert,微积分运算,求极限limit(f,x=a);limit(f,x=a,dir);Limit(f,
16、x=a);Limit(f,x=a,dir);求导数diff(a,x1,x2,xn)Diff(a,x1,x2,xn)微分算子D(f);Di(f),隐函数的求导,利用alias:alias(y=y(x);f:=x2/4+y2/5=1;diff(f,x);利用implicitdiff:对多元隐函数的求导, implicitdiff函数同样适用,积分运算,积分命令int(f,x) ;Int(f,x)int(f,x=a.b,);Int(f,x=a.b,)定积分的数值解?Intnumerical;evalf(int(f,x=a.b,digits,flag)积分变换laplace(expr,t,s);fou
17、rier;FFT求和sum;Sum,函数的级数展开,台劳级数和罗兰级数taylor(expr,eq/nm,n)series(expr,eqn)series(expr,eqn,n) 幂级数powseries多元函数的级数展开 mtaylor,微分方程,解常微分方程的命令dsolve(deqns,vars);dsolve(deqns,vars,eqns);常微分方程的数值解dsolve(deqns,vars,type=numeric,output=listprocedure)常微分方程组的解: pdsolve,线形代数,使用方法with(linalg);linalg函数名(参数)矩阵与向量matr
18、ix的命令格式matrix(L)matrix(m,n,L)matrix(m,n,f)matrix(m,n,lv)vector的命令格式vector(n) vector(n, x_1,x_n) vector(x_1,x_n) vector(n,f),矩阵运算,with(linalg)evalmdetinverse traceaddrow addcol mulrowswaprowswapcoltranspose gausselim gaussjord &* charpoly eigenvalseigenvectssubmatrix minor augment concat jordan,randm
19、atrix希尔伯特阵(Hibert)范得蒙阵(Vandermonde):,优化与统计,线性规划simplex统计软件包stats有五个子包,with(stats,subpackage)Describe描述性统计,数据分析函数Fit拟合,回归分析Transform数据处理函数Random按分布产生随机数Statevalf分布的数值计算Statplots统计图象函数,1、求平均值、中值、方差和标准差with(describe);mean,mediant,variance,standarddeviation2、统计:使用statplots程序包中的函数可以对要统计的数据进行作图使用plots程序包中
20、的display函数,符号运算,初等代数运算微积分运算线性代数,标志符与变量名,标志符Maple的标志符由26个大、小写字母,10个数字字符,以及以下32个特殊符号组成:,; : + - * / != $ . , ( ) “ | & _ % # ?,变量名(name),变量名由字符串(string)组成。字符串由标志符组成,名的第一个符号必须是字母,后面可跟字母、数字、下划线。最大长度可以有499个字符。变量名区分大小写。30个内部预定字符串,by do done elif else end fi for from if in local od option options proc quit
21、 read save stop then to while + - ! $ not &string . %,变量赋值相关函数,anames:显示所有已赋值的变量名unames:显示所有未赋值的变量名assigned:检查一个变量是否已经被赋值,Maple的常用函数,exp.ln,log,log10,sqrt,abs三角函数和反三角函数:双曲函数和反双曲函数贝塞尔函数:Bessell,BesselJ,BesselK,BesselYGamma函数:GAMMA误差函数:erf,变量代换,subssubsop,方程求解,解方程中常见的操作求解一般的代数方程求解线性方程组常微分方程组偏微分方程组,解方程
22、中常见的操作,lhs=rhs:方程式lhs(eqn):取出方程式eqn等号左边的式子rhs(enq)isolate(eqn,expr):移项,求解一般的代数方程,solveRootOfallvaluesfsolve:数值求解rsolve:迭代求解有理化函数:rationalize,求解线性方程组,solvelinalg程序包中的linsolvelinalg程序包中的leastsqrs:最小二乘法高斯消去法:gaussjord:上三角rref:三角化,常微分方程(组),dsolvepdsolve,偏微分方程组,偏微分方程工具包:PDEtools:pdsolve,图形可视化,Maple绘图基础绘制
23、二维图形绘制三维图形绘制动画其它绘图程序包和函数,绘图基础,二维图形设置:plotStyle,Legend,Axes,Projection,Export三维图形plot3dStyle,Color,Projection,其它动画设置:with(plots);animate,animate3d,绘图程序包,plots: plot,plot3d,animate,implicitplot contourplot(画等高线)plottools: 弧arc,圆circle,多边形polygon,旋转函数rotategeometry解析几何问题的各种专用函数,如判断是否共线的函数IsOnLine(),绘图程
24、序包,判断是否平行函数:AreParallel()statplots:主要用于对统计学数据的图形显示上,如 绘制柱状函数:boxplot 绘制统计图的函数:histogram,绘制二维图形,参数设置:?plotoption二维绘图:plot分段函数定义:1、piecewise2、proc绘制参数方程plot(sin(t),cos(t),t=0.Pi);,绘制二维图形,隐函数:implicitplot绘制极坐标系的图形: with(plots): polarplot其它坐标系图形的绘制plot多重绘图plot绘制不等式图形:inequal绘制散点图形:plot,绘制三维图形,1、参数设置2、绘制
25、三维图形3、绘制参数方程图形4、绘制球坐标系和其它坐标系内的图形 球坐标系:sphereplot 柱坐标系:cylinderplot toroidal坐标系: plot(,coords=toroidal(1);,绘制三维图形,绘制等高线:contourplot绘制密度图:densityplot绘制管状图:tubeplot其它三维图形绘制:matrixplotsparsematrixplotspacecurve,绘制动画,绘制二维动画:animate绘制三维动画:animate3d,其它绘图程序包和函数,plottools程序包 arc,arrow,cone,sphere,hemisphere,cutin,cutout,reflect,translate,rotategeometry程序包 point,AreCollinear,distance,line,程序设计,定义函数变量基本程序结构递归子程序嵌套子程序返回子程序的子程序扩展Maple的操作对象,程序设计,编写工具包文件类型和打开方式文件的控制和其他操作输入命令和输出命令转换命令程序调试,