Maple使用之要素习得
- 格式:doc
- 大小:682.00 KB
- 文档页数:77
Maple是由加拿大Waterloo Maple公司推出的一款优秀的数学软件;Maple是加拿大一种枫树的名称。
Maple,提供了一套完善的程序设计语言,有多达2700多种命令和函数,它的图形式输入、输出界面,与通用的数学表达方式几乎一样,用户无需记忆许多语法规则就可以轻松的掌握它的使用。
它具有无与伦比的符号推理能力,能在符号推演方面发挥重要作用。
它也具有强大的数值功能。
它以其便捷的人机交互方式,成为众多数学软件中的佼佼者。
1、基本操作(1)基本运算符加、减、乘、除和乘方的符号分别为+、-、*、/和^;在运算过程中加注释,用符号“#”起始即可;(2)变量与函数Maple本身定义的函数的第一个字母小写,函数的变量用圆括号()(3)工具栏(Palettes)的使用;(4)帮助系统的使用;2、基本运算加法2+3;减法2-3;乘法2*3;除法2/3;次方2^3;注:每一行(每一道式子)都必须以分号作为结尾;这样Maple才会知道这是一个完整的指令;若不想用分号,也可以用冒号“:”但是如此一来Maple就不会把计算结果显示出来。
3、注意问题(1)一般输入Maple指令的情况下,得按下SHIFT和RETURN这两个键才能进入新的一行;(2)“#”:在“#”之后的部分表示批注,Maple不会执行;(3)如果需要以文字说明的话,Maple也有类似Word的功能,先按RETURN键建立一个新的区域(如果有需要的话),再点选窗口上方的T按钮(或是按F5键);接着就可以随意键入一些文字,例如名字等。
注意这时字体与字的颜色都与之前不同,而输入符号[>也不见了。
如果按下RETURN键,就会进入新的一行,可以另起一段文字;若再点选T按钮旁边的[>按钮,即可回到输入Maple指令的情况。
(4)“restart;”这个指令可以将Maple初始化;有时也可以用这个指令来除错,但别太常使用。
(5)几个注意点:是否忘写分号;或冒号:。
Maple使用之要素习得.教程简介第一数值计算节:第二代数运算节:第三图像节:第四解方程节:第五函数:定义、求值、作图节:第六更多关于图像节:实践问题Maple 快速参考卡工作表界面注释教程目录本教程由Mike Pepe设计,他对有效使用Maple所必需的基本命令给出了精辟的介绍。
以下的六节内容将带领你进入Maple的世界,你不妨亲自动手实践体验Maple的滋味。
说明:本教程针对初等数学水平,不需用户据有微积分基础,但不失为接触微积分的好帮手。
本教程的每节都有如下部分:∙例 : 一组短小、完整解决的例子,用以说明新命令。
∙练习:基于本节内容的短小练习,后面附有答案用以检查结果。
1-6节之后是实践问题。
这些问题将提供一个使用本教程中全部命令的机会。
完成这部分问题后,你已经为在数学课中高效使用Maple做好了准备。
在本教程结尾你将发现一个名为“快速参考卡”的部分,它列出了本教程中你学到的Maple命令及使用格式以便参考。
本教程着眼于基本的Maple命令,工作表界面的细节问题请参阅本教程最后一节:工作表界面说第一节:数值计算o精确算术运算o用evalf()函数做数值近似▪练习 1.1▪答案 1.1▪练习 1.2▪答案 1.2▪练习 1.3▪答案 1.3▪练习 1.4▪答案 1.4o清除变量第一节:数值计算本节将用Maple做一些标准的数值计算。
我们将看到Maple提供精确结果和数值近似的能力为我们解决问题带来更大灵活性。
精确算术运算使用Maple进行数值运算是一件直截了当的事,只需输入数值表达式并以英文分号;为结尾,再按回车经计算结果在下行居中显示.例 1:> 2+4;> 12*34567890;每行红色的输入都是随时可编辑的, 修改后只需再按回车结果将被更新.例 2:> 134^39;与普通计算器不同的是Maple给出全部83位长的结果!例 3:Maple可以计算分数而无须转化为小数.> 3/5 + 5/9 + 7/12;例 4:使用函数 sqrt( ) 计算平方根:> sqrt(24);请注意,虽然Maple对进行了化简,但仍保留精确形式。
介绍Maple⼊门的⼀些常见操作介绍Maple⼊门的⼀些常见操作在学习使⽤Maple的过程中,对于刚刚接触Maple的⼈们来说,了解Maple计算数学的基本操作是很必要,这也是Maple⼊门基本操作之⼀。
下⾯就介绍Maple的⼀些常见的操作。
更多Maple使⽤教程请访问Maple中⽂版官⽹。
进⼊Maple窗⼝后,可以通过“帮助”菜单了解Maple的操作和使⽤⽅法。
输⼊数学表达式后,如果要进⾏数学运算,需要将光标放在要运算的数学表达式上,按回车键,或单击⼯具栏上的“执⾏所有选中的组”按钮,也可以单击⿏标右键,使⽤弹出的右键菜单求解数学问题。
Maple将每次输⼊纪录在案,输出将另起⼀⾏居中显⽰,后⾯⾃动附加⼀个标签。
提⽰:[>是Maple⾃动显⽰的命令⾏提⽰符,⽆需我们⼿⼯输⼊。
如要输出结果,可在运算表达式后“;”;如不要显⽰输出结果,则在运算表达式后加“:”。
Maple中的运算命令必须在英⽂模式下输⼊,不然Maple不能运算。
如果要删除单个⽂字,可以使⽤“Del”键,如果要删除整⾏,可以使⽤“Ctrl+Del”组合键,Maple的这⼀“超级删除”功能键可⽤于对复杂对象的整⾏删除操作。
当输⼊的数学表达式较长时,为了在窗⼝中看到整个数学表达式,可将光标停在任⼀运算符后⾯并按“Shift+Enter”组合键,便可使数学表达式换⾏。
如要同时计算⼏个数学表达式,实现⽅法有两种。
⼀种是在每个数学表达式后⾯加“;”,然后按回车键或者单击⼯具栏上的执⾏按钮。
例如:第⼆种是分别输⼊数学表达式并单击⼯具栏上的“执⾏整个⼯作表”按钮" alt="执⾏整个⼯,Maple将执⾏⽂件中的所有运算。
例如:Maple中许多操作和菜单与Word是⼀样的。
在以后操作中使⽤较多的打开、关闭、复制、存盘等与Word操作完全⼀致,⼤家⼀样操作就可以了。
以上内容向⼤家介绍了Maple⼊门时的基本操作,在Maple中编辑公式后怎样进⾏计算。
Maple基础和实践教程Maple基础和实践教程Maple是应用最为广泛的科学计算软件之一,具有非常强大的符号计算和数值计算功能。
Maple 提供智能界面求解复杂数学问题和创建技术文件,用户可在易于使用的智能文件环境中完成科学计算、建模仿真、可视化、程序设计、技术文件生成、报告演示等,从简单的数字计算到高度复杂的系统,满足各个层次用户的需要。
与传统工程软件不同,甚至有别于旧版本的Maple,新版本Maple 为工程师提供了大量的专业计算功能,庞大的数学求解器可用于各种工程领域,如微分方程、矩阵、各种变换包括FFT、统计、小波、等等,超过5,000个计算命令让用户通常只需要一个函数就可以完成复杂的分析任务。
本章主要介绍Maple的基本功能,包括:数值和符号计算计算、求解方程、微积分计算、向量及矩阵计算、微分方程求解等。
Maple是一个全面的系统,提供多种方式完成同一个任务。
在本章中,我们将通过简单、易于重复的方式求解常见的问题,但它不是唯一的操作方式。
当用户熟悉本章中的各种操作方式后,用户可以通过帮助系统了解如何使用相似的技术完成各种任务。
Maple环境Maple的用户界面是一个典型的Windows或Mac风格的操作环境。
工作环境界面如图2-1所示。
图2-1:Maple工作界面在图2-1的工作界面中,窗体的主要部分包括:●主文档,即主工作区。
事实上,用户大可以把它想象成包含有各种数学和绘图工具的Microsoft Word。
●面板区。
汇集了数学工具和特殊的数学符号,用户可以将它们直接拖拽到工作区中使用。
面板区中最重要的面板当属Expressions,Matrix,Common Symbols和Greek。
Maple提供了总共约30个面板,用户可以在面板区空白处单击鼠标右键,并单击Arrange Palettes 来进行选择。
●工具条。
Maple提供了两个主要的工具条。
默认状态下,标准工具条含有保存、缩放等通用按钮和一些Maple特定用途的按钮。
数学软件Maple使⽤教程数学实验数学软件Maple使⽤教程序⾔⼀.什么是数学实验?我们都熟悉物理实验和化学实验,就是利⽤仪器设备,通过实验来了解物理现象、化学物质等的特性。
同样,数学实验也是要通过实验来了解数学问题的特性并解决对应的数学问题。
过去,因为实验设备和实验⼿段的问题,⽆法解决数学上的实验问题,所以,⼀直没有听说过数学实验这个词。
随着计算机的飞速发展,计算速度越来越快,软件功能也越来越强,许多数学问题都可以由计算机代替完成,也为我们⽤实验解决数学问题提供了可能。
数学实验就是以计算机为仪器,以软件为载体,通过实验解决实际中的数学问题。
⼆.常⽤的数学软件⽬前较流⾏的数学软件主要有四种:1.MathACD其优点是许多数学符号键盘化,通过键盘可以直接输⼊数学符号,在教学⽅⾯使⽤起来⾮常⽅便。
缺点是⽬前仅能作数值运算,符号运算功能较弱,输出界⾯不好。
2.Matlab优点是⼤型矩阵运算功能⾮常强,构造个⼈适⽤函数⽅便很⽅便,因此,⾮常适合⼤型⼯程技术中使⽤。
缺点是输出界⾯稍差,符号运算功能也显得弱⼀些。
不过,在这个公司购买了Maple公司的内核以后,符号运算功能已经得到了⼤⼤的加强。
再⼀个缺点就是这个软件太⼤,按现在流⾏的版本5.2,⾃⾝有400多兆,占硬盘空间近1个G,⼀般稍早些的计算机都安装部下。
我们这次没⽤它主要就是这个原因。
3.Mathematica其优点是结构严谨,输出界⾯好,计算功能强,是专业科学技术⼈员所喜爱的数学软件。
缺点是软件本⾝较⼤,⽬前流⾏的3.0版本有200兆;另⼀个缺点就是命令太长,每⼀个命令都要输⼊英⽂全名,因此,需要英语⽔平较⾼。
4.Maple优点是输出界⾯很好,与我们平常书写⼏乎⼀致;还有⼀个最⼤的优点就是它的符号运算功能特别强,这对于既要作数值运算,⼜要作符号运算时就显得⾮常⽅便了。
除此之外,其软件只有30兆,安装也很⽅便(直接拷贝就可以⽤)。
所以,我们把它放到学校⽹上直接调⽤。
学习如何使用Maple进行数学建模和计算Maple是一款强大的数学软件,广泛应用于数学建模和计算上。
本文将介绍如何使用Maple进行数学建模和计算,并按照类别将其分为以下章节进行讲解。
第一章:Maple的基本操作在开始学习Maple之前,我们首先需要了解Maple的基本操作。
我们可以通过打开Maple软件,新建一个工作表开始操作。
在Maple中,我们可以进行基本的计算,如加法、减法、乘法和除法。
此外,Maple还支持各种数学函数和运算符的使用,如三角函数、指数函数和积分等。
第二章:使用Maple进行代数运算代数运算是数学建模的重要一环。
Maple可以进行代数表达式的简化,如合并同类项、展开式子和因式分解等。
此外,Maple还支持方程的求解和变量的替换,可以帮助我们轻松地解决代数问题。
第三章:使用Maple进行微积分计算微积分是数学建模和计算中的关键内容。
Maple可以进行函数的微分和积分计算。
我们可以通过使用Maple的微分函数对函数进行微分,并得到导数的表达式。
同样地,Maple也提供了积分函数,可以帮助我们求解各种类型的不定积分和定积分。
第四章:使用Maple进行数值计算在实际的数学建模和计算中,很多问题无法通过解析方法求解,而需要采用数值计算的方法。
Maple提供了丰富的数值计算函数,如求解方程组、数值积分和数值微分等。
我们可以使用这些函数快速解决实际问题,并得到数值结果。
第五章:使用Maple进行图形绘制数据的可视化对于数学建模和计算来说至关重要。
Maple可以绘制各种类型的函数图像和数据图表。
我们可以通过调用绘图函数,设置绘图参数和数据,得到漂亮的图形结果。
此外,Maple还支持图像的导出和保存,方便我们将图形结果用于报告和展示。
第六章:使用Maple进行数据分析数据分析是数学建模和计算的重要一环。
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 x k> 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 121e x2.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 ax +→时的命令格式为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}));⎛⎝ ⎫⎭⎪⎪lim it ,()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教程1. 介绍Maple:Maple是一款广泛应用于数学、科学和工程领域的计算软件。
它可以进行数值计算、符号计算、可视化和建模等功能,被广泛用于教育、研究和工程设计等领域。
2. 安装Maple:首先,下载Maple的安装文件并运行。
按照安装向导的指示完成安装过程。
安装完成后,可以打开Maple并开始使用。
3. Maple基础:Maple中的基本对象是表达式(expression)。
可以输入表达式并进行计算,也可以定义变量、函数和方程等。
Maple的语法与一般数学符号相似,所以非常易于学习和使用。
4. 数值计算:Maple可以进行各种数值计算,例如求解方程、数值积分、数值微分等。
可以使用内置的函数或编写自定义的函数来实现不同的数值计算任务。
使用数值计算可以快速得到数学问题的近似解。
5. 符号计算:Maple的强大之处在于符号计算。
可以进行代数运算、求解方程、化简表达式等。
Maple能够处理复杂的代数表达式,并给出精确的结果。
对于数学研究、理论推导和数学建模等领域非常有用。
6. 绘图功能:Maple提供了丰富的绘图功能,可以创建二维和三维图形来可视化数学和科学问题。
可以绘制函数图像、数据图表、散点图、曲线图等。
通过调整参数,可以自定义图形的外观和样式。
7. 建模与仿真:Maple还提供了建模和仿真功能,可以通过输入方程或条件来建立模型,并进行仿真和分析。
可以用于工程设计、物理模拟、控制系统设计等领域。
Maple可以帮助用户更好地理解和解决实际问题。
8. 扩展功能:Maple具有丰富的扩展功能,可以使用包(package)来扩展Maple的功能。
可以通过安装和加载包来添加新的函数、命令和工具。
这些包可以提供额外的数学、统计、优化、图论等功能。
9. Maple应用领域:Maple广泛应用于数学教育、科学研究和工程设计等领域。
在教育方面,它可以帮助学生理解和掌握数学概念,同时也是教师教学和练习的重要工具。
数学软件maple在微分方程中的几点应用
Maple是一个功能强大的数学软件,广泛应用于研究微分方程和其它更复杂的数学问题。
在解决微分方程问题时,Maple能够帮助人们完成许多复杂的计算,节省很多时间。
首先,Maple可以用来求解一元常微分方程和多元常微分方程。
也就是说,如果你知道方程的结构,Maple可以帮助你求解该方程的常规解析解,特解和数值解。
此外,Maple能够绘制微分方程的分析图像,例如曲线和曲面图,以及其他图形和函数变量,这有助于人们更好地理解方程的作用机制和特征。
此外,Maple还可以用来识别、分析和求解非线性微分方程中的混沌和稳定性。
Maple为用户提供了一些功能,可以模拟系统演变,可以识别系统混沌特征,可以检测系统的稳定性,以及分析系统的混合行为。
由于Maple易于考虑和使用,许多研究人员和学生都在使用Maple来进行混沌和稳定性的研究。
总之,Maple是一款功能强大的数学软件,可以帮助人们快速、准确地求解复杂的微分方程。
Maple的各种功能和机制能够让更多的研究者和学生研究微分方程以及其混沌和稳定性,这将有助于深入理解当今世界的科学和技术有关问题。
1 初识计算机代数系统Maple1.1 Maple简说1980年9月, 加拿大Waterloo大学的符号计算机研究小组成立, 开始了符号计算在计算机上实现的研究项目, 数学软件Maple是这个项目的产品. 目前, 这仍是一个正在研究的项目.Maple的第一个商业版本是1985年出版的. 随后几经更新, 到1992年, Windows系统下的Maple 2面世后, Maple被广泛地使用, 得到越来越多的用户. 特别是1994年, Maple 3出版后, 兴起了Maple热. 1996年初, Maple 4问世, 1998年初, Maple 5正式发行. 目前广泛流行的是Maple 7以及2002年5月面市的Maple 8.Maple是一个具有强大符号运算能力、数值计算能力、图形处理能力的交互式计算机代数系统(Computer Algebra System). 它可以借助键盘和显示器代替原来的笔和纸进行各种科学计算、数学推理、猜想的证明以及智能化文字处理.Maple这个超强数学工具不仅适合数学家、物理学家、工程师, 还适合化学家、生物学家和社会学家, 总之, 它适合于所有需要科学计算的人.1.2 Maple结构Maple软件主要由三个部分组成: 用户界面(Iris)、代数运算器(Kernel)、外部函数库(External library). 用户界面和代数运算器是用C语言写成的, 只占整个软件的一小部分, 当系统启动时, 即被装入, 主要负责输入命令和算式的初步处理、显示结果、函数图象的显示等. 代数运算器负责输入的编译、基本的代数运算(如有理数运算、初等代数运算等)以及内存的管理. Maple的大部分数学函数和过程是用Maple 自身的语言写成的, 存于外部函数库中. 当一个函数被调用时, 在多数情况下, Maple会自动将该函数的过程调入内存, 一些不常用的函数才需要用户自己调入, 如线性代数包、统计包等, 这使得Maple在资源的利用上具有很大的优势, 只有最有用的东西才留驻Maple可以在较小内存的计算机上正常运行. 用户可以查看Maple的非内存函数的源程序, 也可以将自己编的函数、过程加到Maple的程序库中, 或建立自己的函数库.1.3 Maple输入输出方式为了满足不同用户的需要, Maple可以更换输入输出格式: 从菜单“Options | Input Display和Out Display下可以选择所需的输入输出格式.Maple 7有2种输入方式: Maple语言(Maple Notation)和标准数学记法(Standard Math Notation). Maple语言是一种结构良好、方便实用的内建高级语言, 它的语法和Pascal或C有一定程度的相似, 但有很大差别. 它支持多种数据操作命令, 如函数、序列、集合、列表、数组、表, 还包含许多数据操作命令, 如类型检验、选择、组合等. 标准数学记法就是我们常用的数学语言.启动Maple, 会出现新建文档中的“[>”提示符, 这是Maple中可执行块的标志, 在“>”后即可输入命令, 结束用“;”(显示输出结果)或者“:”(不显示输出结果). 但是, 值得注意的是, 并不是说Maple的每一行只能执行一句命令, 而是在一个完整的可执行块中健入回车之后, Maple会执行当前执行块中所有命令(可以是若干条命令或者是一段程序). 如果要输入的命令很长, 不能在一行输完, 可以换行输入, 此时换行命令用“shift+Enter”组合键, 而在最后一行加入结束标志“;”或“:”, 也可在非末行尾加符号“\”完成.Maple 7有4种输出方式: Maple语言、格式化文本(Character Notation)、固定格式记法(Typeset Notation)、标准数学记法(Standard Math Notation). 通常采用标准数学记法.Maple会认识一些输入的变量名称, 如希腊字母等. 为了使用方便, 现将希腊字母表罗列如下,输入时只需录入相应的英文,要输入大写希腊字母, 只需把英文首字母大写:的函数或程序设计方式控制其输出方式,如下例:> for i to 10 doprintf("i=%+2d and i^(1/2)=%+6.3f", i, eval(sqrt(i)));od;+2d的含义是带符号的十进位整数,域宽为2. 显然,这种输出方式不是我们想要的,为了得到更美观> for i to 10 doprintf("i=%+2d and i^(1/2)=%+6.3f\n", i, eval(sqrt(i)));od;再看下例:将输入的两个数字用特殊形式打印:> niceP:=proc(x,y)printf("value of x=%6.4f, value of y=%6.4f",x,y);end proc;> niceP(2.4,2002.204); 1.4 Maple 联机帮助学会寻求联机帮助是掌握一个软件的钥匙. Maple 有一个非常好的联机帮助系统, 它包含了90%以上命令的使用说明. 要了解Maple 的功能可用菜单帮助“Help ”, 它给出Maple 内容的浏览表, 这是一种树结构的目录表, 跟有…的词条说明其后还有子目录, 点击这样的词条后子目录就会出现(也可以用Tab 键和up, down 选定). 可以从底栏中看到函数命令全称, 例如, 我们选graphics …, 出现该条的子目录, 从中选2D …, 再选plot 就可得到作函数图象的命令plot 的完整帮助信息. 一般帮助信息都有实例, 我们可以将实例中的命令部分拷贝到作业面进行计算、演示, 由此可了解该命令的作用.在使用过程中, 如果对一个命令把握不准, 可用键盘命令对某个命令进行查询. 例如, 在命令区输入命令“?plot ”(或help(plot);), 然后回车将给出plot 命令的帮助信息, 或者将鼠标放在选定的要查询的命令的任何位置再点击菜单中的“Help ”即可. 2 Maple 的基本运算 2.1 数值计算问题算术是数学中最古老、最基础和最初等的一个分支, 它研究数的性质及其运算, 主要包括自然数、分数、小数的性质以及他们的加、减、乘、除四则运算. 在应用Maple 做算术运算时, 只需将Maple 当作一个“计算器”使用, 所不同的是命令结束时需加“;”或“:”.在Maple 中, 主要的算术运算符有“+”(加)、“–”(减)、“*”(乘)、“/”(除)以及“^”(乘方或幂,或记为**), 算术运算符与数字或字母一起组成任意表达式, 但其中“+”、“*”是最基本的运算, 其余运算均可归诸于求和或乘积形式. 算述表达式运算的次序为: 从左到右, 圆括号最先, 幂运算优先, 其次是乘除,最后是加减. 值得注意的是, “^”的表达式只能有两个操作数, 换言之, c b a ^^是错误的, 而“+”或“*”的任意表达式可以有两个或者两个以上的操作数.Maple 有能力精确计算任意位的整数、有理数或者实数、复数的四则运算, 以及模算术、硬件浮点数和任意精度的浮点数甚至于矩阵的计算等等. 总之, Maple 可以进行任意数值计算.但是, 任何软件或程序毕竟只是人们进行科学研究的一种必要的辅助, 即便它有很多优点, 但也有它的局限性, 为了客观地认识数学软件、认识Maple, 下面通过两个简单例子予以说明.第一个简单的数值计算实例想说明Maple 数值计算的答案的正确性: > 3!!!;上述运算结果在IBM PC 机(1G , 128M)上计算只需要0.01秒, 得到如此复杂的结果(1747位), 一个自然的问题是: 答案正确吗?为了回答这个问题, 我们借助于数值分析方法, 由Stiring 公式)ex p(2!n n n n n -⋅⋅≈π可得: 17461060091.2!720⨯≈, 前三位数字与Maple 输出结果相同, 且两者结果均为1747位. 另外, 在720!的计算中, 5的因子的个数为:1785720572057205720432=⎥⎦⎤⎢⎣⎡+⎥⎦⎤⎢⎣⎡+⎥⎦⎤⎢⎣⎡+⎥⎦⎤⎢⎣⎡这些5与足够多的2相乘将得到178个0, 而Maple 的输出结果中最后178位数为零. 由此, 可以相信Maple 结果的正确性.另一个例子则想说明Maple 计算的局限性:()()?8 ?86/23/1=-=- Maple 在处理问题时, 为了避免失根, 从不求算术式的近似值, 分数则化简为既约分数. 因此, 在Maple 中很容易得到:()()6/23/18 8-=-显然这是错误的. 这一点可以从代数的角度予以分析.不妨设()x =-3/18, 则083=+x , 即0)42)(2(2=+-+x x x , 显然()3/18-有3个结果, -2是其实数结果.另一方面, 设()x=-6/28, 则0)8(26=-+x , 即:)(42)(2)(2()8)(8(2233+--+=-+x x x x x x x 显然()6/28-有6个结果, -2、2是其实数结果.这个简单的例子说明了Maple 在数值计算方面绝对不是万能的, 其计算结果也不是完全正确的, 但是, 通过更多的实验可以发现: Maple 只可能丢失部分结果, 而不会增加或很少给出完全错误的结果(如上例中Maple 的浮点数结果皆为 + 1.000000000 1.732050807I ). 这一点提醒我们, 在利用Maple 或其他任何数学软件或应用程序进行科学计算时, 必须运用相关数学基础知识校验结果的正确性.尽管Maple 存在缺陷(实际上, 任何一个数学软件或程序都存在缺陷), 但无数的事实说明Maple 仍然不失为一个具有强大科学计算功能的计算机代数系统. 事实上, Maple 同其他数学软件或程序一样只是科学计算的一个辅助工具, 数学基础才是数学科学中最重要的.2.1.1 有理数运算作为一个符号代数系统, Maple 可以绝对避免算术运算的舍入误差. 与计算器不同, Maple 从来不自作主张把算术式近似成浮点数, 而只是把两个有公因数的整数的商作化简处理. 如果要求出两个整数运算的近似值时, 只需在任意一个整数后加“.”(或“.0”), 或者利用“evalf ”命令把表达式转换成浮点形式, 默认浮点数位是10 (即: Digits:=10, 据此可任意改变浮点数位, 如Digits:=20).> 12!+(7*8^2)-12345/125; > 123456789/987654321; > evalf(%); > 10!; 100*100+1000+10+1; (100+100)*100-9; > big_number:=3^(3^3); > length(%);上述实验中使用了一个变量“big_number ”并用“:=”对其赋值, 与Pascal 语言一样为一个变量赋值用的是“:=”. 而另一个函数“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 保留为未求值.> irem(2002,101,'q'); # 求2002除以101的余数, 将商赋给q > q; #显示q> iquo(2002,101,'r'); # 求2002除以101的商, 将余数赋给r > r; #显示r > irem(x,3);2)素数判别(isprime)素数判别一直是初等数论的一个难点, 也是整数分解问题的基础. Maple 提供的isprime 命令可以判定一个整数n 是否为素数. 命令格式: isprime(n); 如果判定n 可分解, 则返回false, 如果返回true, 则n “很可能”是素数. > isprime(2^(2^4)+1); > isprime(2^(2^5)+1);上述两个例子是一个有趣的数论难题。
maple的用法Maple是一款强大的数学软件,用于符号演算、数值计算、可视化和编程。
它是由加拿大滑铁卢大学开发的,自1980年发布以来一直是学术和工业中最广泛使用的数学软件之一。
Maple 在计算带有基于数学的问题方面有着广泛的用途,包括专业的科学计算、数学教育、科研开发等等。
本文将解释Maple的用法和功能。
1.符号演算Maple是一种强大的符号数学软件。
它可以用来计算各种基本数学问题,如代数、微积分、线性代数等。
您可以使用Maple进行代数计算,包括解方程、化简式子、展开式子和约分式子。
Maple具有强大的微积分功能,例如求导,积分,极限和级数计算。
它还可以用于线性代数,例如矩阵和向量计算,和解线性方程组。
2.数值计算Maple具有许多数值计算功能,可以用于对数值问题进行模拟。
Maple可以用于数值解决方案,包括求根、求极值、数值积分、微分方程等。
它还可以用于数据分析,例如拟合数据,统计分析,和数据可视化等。
3.可视化Maple具有强大的可视化功能。
它可以用来可视化基本数学问题,如曲面、曲线和方程。
Maple还可以生成2D和3D图像,包括函数图形、散点图形和轮廓图形等。
Maple 还具有可编程图形的功能,使用户可以从数据计算中生成定制的绘图。
4.编程Maple有自己的编程语言,Maple语言。
Maple的编程主要运用于算法的开发和优化,和自定义的函数和程序。
Maple 的程序也被广泛应用,用于大规模的数值计算,分析和模拟等等。
5. Maple的优势Maple具有强大的符号演算能力,支持复杂数学问题的求解,大大减轻了数学工作的负担。
它还拥有大量的数值计算工具,可以用于模拟和验证数学模型。
Maple 具有可视化功能,让用户可以直观的了解数学问题。
Maple还有一个丰富的社区,用户可以在社区中获得支持和帮助。
综合而言,Maple是一个多功能的数学软件,可用于解决符号和数值问题,以及数据分析和可视化等。
你要知道的Maple重点Maple是一款强大的理工科软件,功能强大自然不用说,在使用的时候需要它的功能有个详细的了解,这样才能使用起来更加的得心应手,今天小编就和大家分享一下关于Maple 在使用的时候,需要了解和知道的重点知识。
Maple中的evalf与evalhfevalf可作用于单值可作用于List可作用于Set可作用于Vector(<..>)可作用于Matrix(<..|..|..>)evalhf可作用于单值可作用于Vector(<..>)可作用于Matrix(<..|..|..>)不可作用于List不可作用于SetMaple编程中的常用的参数限定positive 正数negative 负数negzero 0或负0poszero 0或正0integer 整数nonnegint 非负整数nonposint 非正整数negint 负整数posint 正整数Maple中的嵌套编程Maple中也可嵌套编程。
求一个阶乘吧!f := proc (k::nonposint)if 0 < k thenreturn f(k-1)*k;elif k = 0 thenreturn 1;end if;end proc;即可。
Maple学习: 函数的快速定义函数与过程的定义一般是使用proc...end proc来定义,但在定义较为简单的函数时,Maple提供了更为便捷的方式。
例如:无参数定义过程:f:=()->"这是一个无参数函数定义";调用过程:f();单参数定义过程:f:=(x)->x^2+x+1; 或f:=x->x^2+x+1;调用过程:f(2);多参数定义过程:f:=(x,y,z)->x^2+y+z;调用过程:f(1,2,3);另外,"->"后面的表达式可以是if语句(在if语句中可嵌套其他的语句)。
Maple使用之要素习得.教程简介第一数值计算节:第二代数运算节:第三图像节:第四解方程节:第五函数:定义、求值、作图节:第六更多关于图像节:实践问题Maple 快速参考卡工作表界面注释教程目录本教程由Mike Pepe设计,他对有效使用Maple所必需的基本命令给出了精辟的介绍。
以下的六节内容将带领你进入Maple的世界,你不妨亲自动手实践体验Maple的滋味。
说明:本教程针对初等数学水平,不需用户据有微积分基础,但不失为接触微积分的好帮手。
本教程的每节都有如下部分:∙例 : 一组短小、完整解决的例子,用以说明新命令。
∙练习:基于本节内容的短小练习,后面附有答案用以检查结果。
1-6节之后是实践问题。
这些问题将提供一个使用本教程中全部命令的机会。
完成这部分问题后,你已经为在数学课中高效使用Maple做好了准备。
在本教程结尾你将发现一个名为“快速参考卡”的部分,它列出了本教程中你学到的Maple命令及使用格式以便参考。
本教程着眼于基本的Maple命令,工作表界面的细节问题请参阅本教程最后一节:工作表界面说第一节:数值计算o精确算术运算o用evalf()函数做数值近似▪练习 1.1▪答案 1.1▪练习 1.2▪答案 1.2▪练习 1.3▪答案 1.3▪练习 1.4▪答案 1.4o清除变量第一节:数值计算本节将用Maple做一些标准的数值计算。
我们将看到Maple提供精确结果和数值近似的能力为我们解决问题带来更大灵活性。
精确算术运算使用Maple进行数值运算是一件直截了当的事,只需输入数值表达式并以英文分号;为结尾,再按回车经计算结果在下行居中显示.例 1:> 2+4;> 12*34567890;每行红色的输入都是随时可编辑的, 修改后只需再按回车结果将被更新.例 2:> 134^39;与普通计算器不同的是Maple给出全部83位长的结果!例 3:Maple可以计算分数而无须转化为小数.> 3/5 + 5/9 + 7/12;例 4:使用函数 sqrt( ) 计算平方根:> sqrt(24);请注意,虽然Maple对进行了化简,但仍保留精确形式。
下一部分你讲学到如何求这个数的数值近似。
例 5:Maple内置所有重要的数学常数,如只需键入Pi。
注意*号代表乘法,不可省略。
> 4*(3+Pi);Maple 执行了计算,但保留精确形式。
例6:与计算器不同,Maple在进行三角运算时也保留精确结果。
> sin(5*Pi/3);> sec(Pi/4);> arcsin(-1);Maple能判断无意义:> tan(Pi/2);Error, (in tan) numeric exception: division by zero例 7:输入自然对数函数键入函数 exp(x) .> exp(x);数e本身键入 exp(1) .> exp(1);例 8:绝对值函数键入: abs(x).在第三行中Maple给出的是精确值,因为> abs(x);> abs(-3);> abs(exp(1)-Pi);例 9:使用函数ifactor( )可进行因数分解。
> ifactor(31722722304);例 10:有时你可能需要在一行中输入多条命令,只需以;分割,按回车时它们会一起执行。
> sin(Pi/3); cos(Pi/3); tan(Pi/3);例 11:计算和显示数的序列使用seq(..)函数,下面我们计算前100个自然数的平方。
> seq(k^2,k=1..100);使用evalf( )函数进行数值计算前面我们发现Maple有强大的精确计算能力,但有时我们需要数值形式。
例 1:> 3/5+5/9+7/12;> evalf(3/5+5/9+7/12);>例 2:给运算结果赋予名字将便于引用,使用( name := result ; )格式来实现。
> k:=3/5+5/9+7/12;> evalf(k);>请注意 : Maple 是大小写敏感的,例如 k 与 K 将被视为不同变量。
> k;> K;当然我们可以使用单词(甚至中文)作为变量名。
> joe:=2^5;> sqrt(joe);例 3:如果我们需要更高或更低的浮点数精度,而不是系统缺省的10位,可以使用evalf( )函数的精度参数。
> w:=4*(3+Pi);> evalf(w);> evalf(w,4);> evalf(w,45);>例 4:如果在输入中使用小数,Maple自动将结果显示为小数。
比较下面两行。
> sqrt(34.0);另一例:> 4-1/3;> 4.0-1/3;>例 5:evalf( )函数可以作用于列表,下面我们首先生成1到10的精确平方根,再取数值近似。
> result:=seq(sqrt(k),k=1..10);> evalf(result);>Maple 捷径: 快速调用前面的输出结果Maple使用百分号(%)代表前一个输出。
> 3/5+5/9+7/12;> Pi;> evalf(%);> %+5;>参见下面练习 1.4。
练习 1.1计算.答案 1.1> 37^43;练习 1.2取18位有效数字计算. 答案 1.2> m:=sqrt(34);> evalf(m,18);>练习 1.3求表达式的数值近似答案 1.3> answer:=(3+Pi)/(7-sqrt(13));> evalf(answer);练习 1.4使用%引用前面的输出结果有时产生非预料结果,如下例。
> 4+Pi;> evalf(%);> %+10;>如果再次执行%+10;那一行,结果由变为,能解释为什么吗?答案 1.4引用符号%代表Maple计算得的最后数,故前三行执行后, % = .再次运行%+10;得再加10。
因此我们可以用赋名字的办法避免此类混乱。
> a:=4+Pi;> b:=evalf(a);> b+10;>清除变量一旦定义了变量,Maple将在整个工作过程中记得变量的值。
再次赋值可以覆盖前一次赋值。
(检查变量的值只需输入变量名跟;)> h;> h:=56;> h;> h:=sqrt(Pi);> h;有时我们需要从内存中清除变量的值,下例中首先给x赋值65> x:=65;现在假设我们开始另一个问题,将 w赋值为代数表达式。
如果像下面输入,Maple自动用原来的值65代换x。
> w:=x^2-4*x+7;使用 x:='x';格式清除变量x的值。
注意这里使用单引号。
> x:='x';> w:=x^2-4*x+7;立即清除内存中所有变量的值使用restart命令。
在开始新问题时可以使用restart命令确保无赋过值的变量。
> p:=4;> p; x; h;是不是已经忘了h赋过值?因此开始新问题前别忘了使用restart命令。
这也是为什么本教程每节都以restart命令开头。
> restart;> p; x; h;第2节: 代数运算o subs( ) 命令▪练习 2.1▪答案 2.1▪练习 2.2▪答案 2.2▪练习 2.3▪答案 2.3▪练习 2.4▪答案 2.4 o expand( ) 命令▪练习 2.6▪答案 2.6 o factor( ) 命令▪练习 2.8▪答案 2.8▪练习 2.9▪答案 2.9 o simplify( ) 命令▪练习 2.11:▪答案 2.11▪练习 2.12▪答案 2.12第2节: 代数运算Maple 是一套C.A.S,即"计算机代数系统"(C omputer A lgebra S ystem).也就是说Maple 了解所有你知道的代数法则。
随着你逐步学习微积分、微分方程、和现行代数你将发现Maple已将以上所涉及的基本操作包含在强大的命令集中。
本节你将学习如何输入代数表达式、求值、以及恒等变形。
>subs( )命令例 1:前4例我们从给表达式命名为W开始。
> W:=3*x^2+8;假设我们要将x代换为4,最快捷的方法是使用命令subs( ):> subs(x=4,3*x^2+8);或> subs(x=4,W);例 2:subs( )命令对符号值的代换同样有效。
我们用5+2u代换x并将结果赋予M。
> W:=3*x^2+8;> M:=subs(x=5+2*u,W);最后我们用expand( )命令展开成u的多项式。
> expand(M);例 3:subs( )命令功能远强于此,我们可以代换多变量表达式,如中用7代换x、12代换y。
> U:=(2/5)*x^2+3*y;> subs(x=7,y=12,U);> evalf(%);例 4:subs( )命令也可以代换方程中的部分,这常被用来验根。
我们用方程对eqn赋值,注意" := "用来赋值, 方程使用"="。
> eqn:=x^3-5*x^2+7*x-12=0;> subs(x=3,eqn);> subs(x=4,eqn);> subs(x=5,eqn);>练习 2.1用对k赋值 . 用对M赋值,并求. 答案 2.1> k:=x^2+4*x-3;> M:=k^2-9;> 3*M+6;> expand(3*M+6);>练习 2.2用expand( )命令展开答案 2.2> w:=(1+x)^4;> expand(w);或> expand((1+x)^4);>练习 2.3令. 当 x = 0.01 , a = , , ,知求P .答案 2.3> P:=a*x^3+b*x^2+c*x+d;> subs(x=0.01,a=-1/5,b=2/5,c=0,d=13/15,P);>练习 2.4用subs( )命令检验1,2,3是否是如下方程的根。
答案 2.4> eqn:=x^3-16*x^2+51*x-36=0;> subs(x=1,eqn);> subs(x=2,eqn);> subs(x=3,eqn);>易见三者都是原方程根。
(第5节精细讲如何解方程。