Maple计算无理数和浮点数教程

合集下载

数学软件Maple使用教程

数学软件Maple使用教程

数学软件Maple使⽤教程数学实验数学软件Maple使⽤教程序⾔⼀.什么是数学实验?我们都熟悉物理实验和化学实验,就是利⽤仪器设备,通过实验来了解物理现象、化学物质等的特性。

同样,数学实验也是要通过实验来了解数学问题的特性并解决对应的数学问题。

过去,因为实验设备和实验⼿段的问题,⽆法解决数学上的实验问题,所以,⼀直没有听说过数学实验这个词。

随着计算机的飞速发展,计算速度越来越快,软件功能也越来越强,许多数学问题都可以由计算机代替完成,也为我们⽤实验解决数学问题提供了可能。

数学实验就是以计算机为仪器,以软件为载体,通过实验解决实际中的数学问题。

⼆.常⽤的数学软件⽬前较流⾏的数学软件主要有四种:1.MathACD其优点是许多数学符号键盘化,通过键盘可以直接输⼊数学符号,在教学⽅⾯使⽤起来⾮常⽅便。

缺点是⽬前仅能作数值运算,符号运算功能较弱,输出界⾯不好。

2.Matlab优点是⼤型矩阵运算功能⾮常强,构造个⼈适⽤函数⽅便很⽅便,因此,⾮常适合⼤型⼯程技术中使⽤。

缺点是输出界⾯稍差,符号运算功能也显得弱⼀些。

不过,在这个公司购买了Maple公司的内核以后,符号运算功能已经得到了⼤⼤的加强。

再⼀个缺点就是这个软件太⼤,按现在流⾏的版本5.2,⾃⾝有400多兆,占硬盘空间近1个G,⼀般稍早些的计算机都安装部下。

我们这次没⽤它主要就是这个原因。

3.Mathematica其优点是结构严谨,输出界⾯好,计算功能强,是专业科学技术⼈员所喜爱的数学软件。

缺点是软件本⾝较⼤,⽬前流⾏的3.0版本有200兆;另⼀个缺点就是命令太长,每⼀个命令都要输⼊英⽂全名,因此,需要英语⽔平较⾼。

4.Maple优点是输出界⾯很好,与我们平常书写⼏乎⼀致;还有⼀个最⼤的优点就是它的符号运算功能特别强,这对于既要作数值运算,⼜要作符号运算时就显得⾮常⽅便了。

除此之外,其软件只有30兆,安装也很⽅便(直接拷贝就可以⽤)。

所以,我们把它放到学校⽹上直接调⽤。

Maple的常用内部数学函数

Maple的常用内部数学函数

吉林大学公共数学实验中心数学实验>> 首页> 微积分> 实验2Maple简介一、Maple操作界面介绍1、编辑功能:编辑功能中查找模块,可以帮助查找你所需要的关键字节.具体操作如图所示:按上述操作完成后,出现下图所示的对话框:在文本框中输入你要查找的字符或者符号,可以通过findprevious上下翻看,也可以通过replacewith 操作替代你所查找的字符或者符号.cancle表示取消操作.其他编辑操作包括分割或连接(splitorjoin)分为一个执行过程(快截键为f3、f4)和选定块(shift+f3、shift+f4)过程四个操作块运行操作(Execute):运行选定或者当前的maple中的语句;删除运行结果操作(Removeoutput):将选定或者当前的maple中运行结果从工作爷中删除或者不显示;2、示图操作(VIEW)文档在屏幕上的显示模式称为“示图”,maple示图菜单主要设置工作爷文档的一些视图属性,所包括菜单如上图所示。

工具条(toolbar)的功能和其他系统一样,主要包括打开文件、创建新文档、存盘、打印当前页面、复制、剪切、粘贴、撤消操作等。

内容工具条:“枫叶”表示设置工作页和标准公式和maple语言之间的转换“X”表示设置工作页和标准公式在活动和非活动方式之间的转换“(对号)”表示标准公式有效时自动检查输入表达式的正确性“!”表示运行当前表达式3、插入操作(INSERT)插入操作比较简单这里就不做详细介绍,主要功能分为:文本插入(textinput);标准maple数学表达式插入;运行单元executegroup插入其中包括在光标前插入和光标后插入图形插入plot,其中包括两维和三维图象的插入电子表格插入spreadsheet段落插入parigraph,其中包括光标前插入和光标后插入数学输入对象(image)插入插入超级连接hyperlink4、其他操作窗口的功能和其他软件基本相同,这里就不做详细介绍了。

Maple入门手册(1)

Maple入门手册(1)
增加的按钮。单击新按钮,你可以更改绘图属性,你也可以单击鼠标右键,在 export 菜单中 选择一种图片格式将图导出。 绘制函数: 在绘制函数之前,需要先定义函数。如果函数 f(x,y)包含了 x,y 变量,那么也应该给出 x 和 y 的变化范围。
绘制多图 我们经常喜欢同时显示多个图。其中一种方法是,给绘图函数一列要绘制的表达式组或函数 。 先将表达式或函数列出来,然后列出范围。如果你想用不同颜色来表示不同的表达式,你可 以使用关键词“color”来按对应顺序定义图形颜色。
要想得到函数值,输入函数名和变量值。用 f(x)的形式计算,f 是函数名,x 是设置的变量 值。
定义多变量函数: 多变量函数的定义和单变量函数定义非常相似。唯一的不同是,多变量函数有更多独立变量 。 在下面的例子中,函数名士 f,有两个独立变量 x 和 y。假如,我们要定义这样一个多变量 函数 f(x,y)=x^2+y^2
展开表达式 expand 函数可以展开含有相乘项的表达式。展开并不是总会使得原表达式更复杂。相反, 在很多情况下,它可以的到简化解。
分解因式 这个函数是展开函数的逆运算,它可以将多项式因式分解。
6
本稿由 哈尔滨工程大学船舶工程学院 张崇伟 制作,免费学术共享,禁止用于商业目的。
通分约分 如果表达式包含分数,那么有必要通分约分重新构造一个分数。normal 函数可以实现这一 过程。
12
3、数值计算
Maple 可以做浮点型、整型和复数型的计算。 浮点型数值计算 Maple 的一个重要的性质就是做准确数学计算的能力:在浮点近似中有效数字不会减少。这 样舍入误差就可被避免。 例子:五舍入误差计算
如果需要得到近似值,可使用 evalf 函数将准确的结果转化为近似浮点数解。 例子:把准确结果转化成近似浮点数解

Maple的常用内部数学函数要点

Maple的常用内部数学函数要点
·Maple中乘号为星号“*”,两项相乘时乘号不能省略。
· 对变量赋值时用赋值运算符“:=”,而不是通常的等号“;”。
· 除号为斜杠符号“/”a的输入格式为:a/(b+c)。
b+c
·乘方运算符为:“^”或“*’’,负指数必须包含在围括号中。
· 函数的参数必须用圆括号界定,数组或矩阵的下标用方括号界定。
normal命令是另一种化简的方法,它对分式进行通分和约分。
化简
>normal((x^3-y^3)/(x^2+x-y-y^2));
2、表达式变形
命令convert允许你将表达式在各种形式间互化。有效形式 的列表请参阅在线帮助。
下例将分式 变为 部分分式。
>my_expr:=(a*x^2+b)/(x*(-3*x^2-x+4));
>expand(expr);
类似的你可以用factor命令对%);
化简表达式
Maple可以使用包括三角恒等式在内的恒 等关系对复杂的表达式进行化简。
考察 .
>simplify(cos(x)^5+sin(x)^4+2*cos(x)^2-2*sin(x)^2 -cos(2*x));
2D作图举例
下例生成 的图 像。
>plot(tan(x),x=-2*Pi..2*Pi,y=-4..4,discont=true,
title=`y=tan(x)`);
请留意Maple如何处理函数的不连续 点。
4、implicitplot(隐函数作图) 命令
plots工具包中的命令:implicitplot生成由二元方 程决定的隐函数图象。
1、展开、分解、化 简表达式

Maple常用计算命令..

Maple常用计算命令..

Maple常用计算命令..常用计算命令《Maple 指令》7.0版本第1章章数1.1 复数Re,Im - 返回复数型表达式的实部/虚部abs - 绝对值函数argument - 复数的幅角函数conjugate - 返回共轭复数csgn - 实数和复数表达式的符号函数signum - 实数和复数表达式的sign 函数51.2 MAPLE 常数已知的变量名称指数常数(以自然对数为底)I - x^2 = -1 的根infinity 无穷大1.3 整数函数! - 阶乘函数irem, iquo - 整数的余数/商isprime - 素数测试isqrfree - 无整数平方的因数分解max, min - 数的最大值/最小值mod, modp, mods - 计算对 m 的整数模rand - 随机数生成器randomize - 重置随机数生成器1.4 素数Randpoly, Randprime - 有限域的随机多项式/首一素数多项式ithprime - 确定第 i 个素数nextprime, prevprime - 确定下一个最大/最小素数1.5 数的进制转换convert/base - 基数之间的转换convert/binary - 转换为二进制形式convert/decimal - 转换为 10 进制convert/double - 将双精度浮点数由一种形式转换为另一种形式convert/float - 转换为浮点数convert/hex - 转换为十六进制形式convert/metric - 转换为公制单位convert/octal - 转换为八进制形式1.6 数的类型检查type - 数的类型检查函数第2章初等数学2.1 初等函数product - 确定乘积求和不确定乘积exp - 指数函数sum - 确定求和不确定求和sqrt - 计算平方根算术运算符+, -, *, /, ^add, mul - 值序列的加法/乘法2.2 三角函数arcsin, arcsinh, . - 反三角函数/反双曲函数sin, sinh, . - 三角函数/双曲函数2.3 LOGARITHMS 函数dilog - Dilogarithm 函数ln, log, log10 - 自然对数/一般对数,常用对数2.4 类型转换convert/`+`,convert/`*` - 转换为求和/乘积convert/hypergeom - 将求和转换为超越函数convert/degrees - 将弧度转换为度convert/expsincos - 将trig 函数转换为exp, sin, cosconvert/Ei - 转换为指数积分convert/exp - 将trig 函数转换为指数函数convert/ln - 将arctrig 转换为对数函数polar - 转换为极坐标形式convert/radians - 将度转换为弧度convert/sincos - 将trig 函数转换为sin, cos, sinh, cosh convert/tan - 将trig 函数转换为tanconvert/trig - 将指数函数转换为三角函数和双曲函数第3章求值3.1 假设功能3.2 求值Eval - 对一个表达式求值eval - 求值evala - 在代数数(或者函数)域求值evalb - 按照一个布尔表达式求值evalc - 在复数域上符号求值evalf - 使用浮点算法求值evalhf - 用硬件浮点数算法对表达式求值evalm - 对矩阵表达式求值evaln - 求值到一个名称evalr, shake - 用区间算法求表达式的值和计算范围evalrC - 用复数区间算法对表达式求值value - 求值的惰性函数第4章求根,解方程4.1 数值解fsolve - 利用浮点数算法求解solve/floats - 包含浮点数的表达式4.2 最优化extrema - 寻找一个表达式的相对极值minimize, maximize - 计算最小值/最大值maxnorm - 一个多项式无穷大范数4.3 求根allvalues -计算含有RootOfs的表达式的所有可能值isqrt, iroot - 整数的平方根/第n 次根realroot - 一个多项式的实数根的隔离区间root - 一个代数表达式的第n 阶根RootOf - 方程根的表示surd - 非主根函数roots - 一个多项式对一个变量的精确根turm, sturmseq - 多项式在区间上的实数根数和实根序列4.4 解方程eliminate - 消去一个方程组中的某些变量isolve - 求解方程的整数解solvefor - 求解一个方程组的一个或者多个变量isolate - 隔离一个方程左边的一个子表达式singular - 寻找一个表达式的极点solve/identity - 求解包含属性的表达式solve/ineqs - 求解不等式solve/linear - 求解线性方程组solve/radical - 求解含有未知量根式的方程solve/scalar - 标量情况(单变量和方程)solve/series - 求解含有一般级数的方程solve/system - 解方程组或不等式组第5章操作表达式5.1 处理表达式Norm - 代数数 (或者函数) 的标准型Power - 惰性幂函数Powmod -带余数的惰性幂函数Primfield - 代数域的原始元素Trace - 求一个代数数或者函数的迹charfcn - 表达式和集合的特征函数Indets - 找一个表达式的变元invfunc - 函数表的逆powmod - 带余数的幂函数Risidue - 计算一个表达式的代数余combine - 表达式合并(对tan,cot不好用)expand - 表达式展开Expand - 展开表达式的惰性形式expandoff/expandon - 抑制/不抑制函数展开5.2 因式分解Afactor - 绝对因式分解的惰性形式Afactors - 绝对因式分解分解项列表的惰性形式Berlekamp - 因式分解的Berlekamp 显式度factor - 多元的多项式的因式分解factors - 多元多项式的因式分解列表Factor - 函数factor 的惰性形式Factors - 函数factors 的惰性形式polytools[splits] - 多项式的完全因式分解第6章化简6.1 表达式化简118simplify - 给一个表达式实施化简规则simplify/@ - 利用运算符化简表达式simplify/Ei - 利用指数积分化简表达式simplify/GAMMA - 利用GAMMA 函数进行化简simplify/RootOf - 用RootOf 函数化简表达式simplify/wronskian - 化简含wronskian 标识符的表达式simplify/hypergeom - 化简超越函数表达式simplify/ln - 化简含有对数的表达式simplify/piecewise - 化简分段函数表达式simplify/polar - 化简含有极坐标形式的复数型表达式simplify/power - 化简含幂次的表达式simplify/radical - 化简含有根式的表达式simplify/rtable - 化简rtable 表达式simplify/siderels - 使用关系式进行化简simplify/sqrt - 根式化简simplify/trig - 化简trig 函数表达式simplify/zero - 化简含嵌入型实数和虚数的复数表达式6.2 其它化简操作Normal - normal 函数的惰性形式convert - 将一个表达式转换成不同形式radnormal - 标准化一个含有根号数的表达式rationalize - 分母有理化第7章操作多项式7.0 MAPLE 中的多项式简介7.1 提取coeff - 提取一个多项式的系数coeffs - 提取多元的多项式的所有系数coeftayl - 多元表达式的系数lcoeff, tcoeff - 返回多元多项式的首项和末项系数7.2 多项式约数和根gcd, lcm - 多项式的最大公约数/最小公倍数psqrt, proot - 多项式的平方根和第n次根rem,quo - 多项式的余数/商7.3 操纵多项式convert/horner - 将一个多项式转换成Horner形式collect - 象幂次一样合并系数compoly - 确定一个多项式的可能合并的项数convert/polynom - 将级数转换成多项式形式convert/mathorner - 将多项式转换成Horner矩阵形式convert/ratpoly - 将级数转换成有理多项式sort - 将值的列表或者多项式排序sqrfree - 不含平方项的因数分解函数discrim - 多项式的判别式fixdiv - 计算多项式的固定除数norm - 多项式的标准型resultant - 计算两个多项式的终结式bernoulli - Bernoulli 数和多项式bernstein - 用Bernstein多项式近似一个函数content, primpart - 一个多元的多项式的内容和主部degree, ldegree - 一个多项式的最高次方/最低次方divide - 多项式的精确除法euler - Euler 数和多项式icontent - 多项式的整数部分interp - 多项式的插值prem, sprem - 多项式的pseudo 余数和稀疏pseudo 余数randpoly - 随机多项式生成器spline - 计算自然样条函数第8章有理表达式8.0 有理表达式简介8.1 操作有理多项式numer,denom - 返回一个表达式的分子/分母frontend - 将一般的表达式处理成一个有理表达式normal - 标准化一个有理表达式convert/parfrac - 转换为部分分数形式convert/rational - 将浮点数转换为接近的有理数ratrecon - 重建有理函数第9章微积分9.1 取极限Limit, limit - 计算极限limit[dir] - 计算方向极限limit[multi] - 多重方向极限limit[return] - 极限的返回值9.2 连续性测试discont - 寻找一个函数在实数域上的间断点fdiscont - 用数值法寻找函数在实数域上的间断点iscont - 测试在一个区间上的连续性D - 微分算子D, diff - 运算符D 和函数diffdiff, Diff - 微分或者偏微分convert/D - 将含导数表达式转换为D运算符表达式convert/diff - 将D(f)(x)表达式转换为diff(f(x),x)的形式implicitdiff - 由一个方程定义一个函数的微分9.4 积分计算Si, Ci … - 三角和双曲积分Dirac, Heaviside - Dirac 函数/Heaviside阶梯函数Ei - 指数积分Elliptic - 椭圆积分FresnelC, … - Fresnel 正弦,余弦积分和辅助函数int, Int - 定积分和不定积分Legendr eP, … - Legendre 函数及其第一和第二类函数Li - 对数积分student[changevar] - 变量代换dawson - Dawson 积分ellipsoid - 椭球体的表面积evalf(int) - 数值积分intat, Intat - 在一个点上积分求值第10章微分方程10.1 微分方程分类odeadvisor - ODE-求解分析器DESol - 表示微分方程解的数据结构pdetest - 测试pdsolve 能找到的偏微分方程(PDEs)解10.2 常微分方程求解dsolve - 求解常微方程 (ODE)dsolve - 用给定的初始条件求解ODE 问题dsolve/inttrans - 用积分变换方法求解常微分方程dsolve/numeric - 常微方程数值解dsolve/piecewise - 带分段系数的常微方程求解dsolve - 寻找ODE 问题的级数解dsolve - 求解ODEs 方程组odetest - 从ODE 求解器中测试结果是显式或者隐式类型10.3 偏微分方程求解pdsolve - 寻找偏微分方程 (PDEs) 的解析解第11章数值计算11.1 MAPLE 中的数值计算环境IEEE 标准和Maple数值计算数据类型特殊值环境变量11.2 算法标准算法复数算法含有0,无穷和未定义数的算法11.3 数据构造器254complex - 复数和复数构造器Float, … - 浮点数及其构造器Fraction - 分数及其的构造器integer - 整数和整数构造器11.4 MATLAB 软件包简介11.5 “”区间类型表达式第12章级数12.1 幂级数的阶数Order - 阶数项函数order - 确定级数的截断阶数12.2 常见级数展开series - 一般的级数展开taylor - Taylor 级数展开mtaylor - 多元Taylor级数展开poisson - Poisson级数展开.26812.3 其它级数eulermac - Euler-Maclaurin求和piecewise - 分段连续函数asympt - 渐进展开第13章特殊函数AiryAi, AiryBi - Airy 波动函数AiryAiZeros, AiryBiZeros - Airy函数的实数零点AngerJ, WeberE - Anger函数和Weber函数BesselI, HankelH1, … - Bessel函数和Hankel函数BesselJZeros, … - Bessel函数实数零点Beta - Beta函数EllipticModulus - 模数函数k(q)GAMMA, lnGAMMA - 完全和不完全Gamma函数GaussAGM - Gauss 算术的几何平均数JacobiAM, ., - Jacobi 振幅函数和椭圆函数JacobiTheta1, JacobiTheta4 - Jacobi theta函数JacobiZeta - Jacobi 的Zeta函数KelvinBer, KelvinBei - Kelvin函数KummerM, - Kummer M函数和U函数LambertW - LambertW函数LerchPhi - 一般的Lerch Phi函数LommelS1, LommelS2 - Lommel函数MeijerG - 一个修正的Meijer G函数Psi - Digamma 和Polygamma函数StruveH, StruveL - Struve函数WeierstrassP - Weierstrass P函数及其导数WhittakerM - Whittaker 函数Zeta - Zeta 函数erf, … - 误差函数,补充的误差函数和虚数误差函数harmonic - 调和函数hypergeom - 广义的超越函数pochhammer - 一般的pochhammer函数polylog - 一般的polylogarithm函数第14章线性代数14.1 ALGEBRA(代数)中矩阵,矢量和数组14.2 LINALG 软件包简介14.3 数据结构矩阵matrices(小写)矢量vectors(矢量)convert/matrix - 将数组,列表,Matrix 转换成matrixconvert/vector - 将列表,数组或Vector 转换成矢量vector linalg[matrix] - 生成矩阵matrix(小写)linalg[vector] - 生成矢量vector(小写)14.4 惰性函数Det - 惰性行列式运算符Eigenvals - 数值型矩阵的特征值和特征向量Hermite, Smith - 矩阵的Hermite 和Smith 标准型14.5 LinearAlgebra函数Matrix 定义矩阵Add 加/减矩阵Adjoint 伴随矩阵BackwardSubstitute 求解 A . X = B,其中 A 为上三角型行阶梯矩阵BandMatrix 带状矩阵Basis 返回向量空间的一组基SumBasis 返回向量空间直和的一组基IntersectionBasis 返回向量空间交的一组基BezoutMatrix 构造两个多项式的 Bezout 矩阵BidiagonalForm 将矩阵约化为双对角型CharacteristicMatrix 构造特征矩阵CharacteristicPolynomial 构造矩阵的特征多项式CompanionMatrix 构造一个首一(或非首一)多项式或矩阵多项式的友矩阵(束)ConditionNumber 计算矩阵关于某范数的条件数ConstantMatrix 构造常数矩阵ConstantVector 构造常数向量Copy 构造矩阵或向量的一份复制CreatePermutation 将一个NAG 主元向量转换为一个置换向量或矩阵CrossProduct 向量的叉积`&x` 向量的叉积DeleteRow 删除矩阵的行DeleteColumn 删除矩阵的列Determinant 行列式Diagonal 返回从矩阵中得到的向量序列DiagonalMatrix 构造(分块)对角矩阵Dimension 行数和列数DotProduct 点积BilinearForm 向量的双线性形式EigenConditionNumbers 计算数值特征值制约问题的特征值或特征向量的条件数Eigenvalues 计算矩阵的特征值Eigenvectors 计算矩阵的特征向量Equal 比较两个向量或矩阵是否相等ForwardSubstitute 求解 A . X = B,其中 A 为下三角型行阶梯矩阵FrobeniusForm 将一个方阵约化为 Frobenius 型(有理标准型)GaussianElimination 对矩阵作高斯消元ReducedRowEchelonForm 对矩阵作高斯-约当消元GetResultDataType 返回矩阵或向量运算的结果数据类型GetResultShape 返回矩阵或向量运算的结果形状GivensRotationMatrix 构造 Givens 旋转的矩阵GramSchmidt 计算一个正交向量集HankelMatrix 构造一个 Hankel 矩阵HermiteForm 计算一个矩阵的 Hermite 正规型HessenbergForm 将一个方阵约化为上 Hessenberg 型HilbertMatrix 构造广义 Hilbert 矩阵HouseholderMatrix 构造 Householder 反射矩阵IdentityMatrix 构造一个单位矩阵IsDefinite 检验矩阵的正定性,负定性或不定性IsOrthogonal 检验矩阵是否正交IsUnitary 检验矩阵是否为酉矩阵IsSimilar 确定两个矩阵是否相似JordanBlockMatrix 构造约当块矩阵JordanForm 将矩阵约化为约当型KroneckerProduct 构造两个矩阵的 Kronecker 张量积LeastSquares 方程的最小二乘解LinearSolve 求解线性方程组 A . x = bLUDecomposition 计算矩阵的 Cholesky,PLU 或 PLU1R 分解Map 将一个程序映射到一个表达式上,对矩阵和向量在原位置上进行处理MatrixAdd 计算两个矩阵的线性组合VectorAdd 计算两个向量的线性组合MatrixExponential 确定一个矩阵 A 的矩阵指数 exp(A)MatrixFunction 确定方阵 A 的函数 F(A)MatrixInverse 计算方阵的逆或矩阵的 Moore-Penrose 伪逆MatrixMatrixMultiply 计算两个矩阵的乘积MatrixVectorMultiply 计算一个矩阵和一个列向量的乘积VectorMatrixMultiply 计算一个行向量和一个矩阵的乘积MatrixPower 矩阵的幂MinimalPolynomial 构造矩阵的最小多项式Minor 计算矩阵的子式Multiply 矩阵相乘Norm 计算矩阵或向量的p-范数MatrixNorm 计算矩阵的p-范数VectorNorm 计算向量的p-范数Normalize 向量正规化NullSpace 计算矩阵的零度零空间OuterProductMatrix 两个向量的外积Permanent 方阵的不变量Pivot 矩阵元素的主元消去法PopovForm Popov 正规型QRDecomposition QR 分解RandomMatrix 构造随机矩阵RandomVector 构造随机向量Rank 计算矩阵的秩Row 返回矩阵的一个行向量序列Column 返回矩阵的一个列向量序列RowOperation 对矩阵作初等行变换ColumnOperation 对矩阵作出等列变换RowSpace 返回矩阵行空间的一组基ColumnSpace 返回矩阵列空间的一组基ScalarMatrix 构造一个单位矩阵的数量倍数ScalarVector 构造一个单位向量的数量倍数ScalarMultiply 矩阵与数的乘积MatrixScalarMultiply 计算矩阵与数的乘积VectorScalarMultiply 计算向量与数的乘积SchurForm 将方阵约化为 Schur 型SingularValues 计算矩阵的奇异值SmithForm 将矩阵约化为Smith 正规型StronglyConnectedBlocks 计算方阵的强连通块SubMatrix 构造矩阵的子矩阵SubVector 构造向量的子向量SylvesterMatrix 构造两个多项式的Sylvester 矩阵ToeplitzMatrix 构造 Toeplitz 矩阵Trace 计算方阵的迹Transpose 转置矩阵HermitianTranspose 共轭转置矩阵TridiagonalForm 将方阵约化为三对角型UnitVector 构造单位向量VandermondeMatrix 构造一个 Vandermonde 矩阵VectorAngle 计算两个向量的夹角ZeroMatrix 构造一个零矩阵ZeroVector 构造一个零向量Zip 将一个具有两个参数的程序作用到一对矩阵或向量上LinearAlgebra[Generic] 子函数包[Generic] 子函数包提供作用在场,欧几里得域,积分域和环上的线性代数算法。

MAPLE讲稿

MAPLE讲稿

快 速 进 入
Maple
Jan,8, 2004
毕业指导培训
M1-9
第一讲 MAPLE简介
Maple
小结:
本章仅就Maple 的基本功能作一个简短的解说, Maple的操 作界面尚有许多功能,例如,可以加入试算表,可以将文件存成 HTML格式等.限于时间的关系,本次培训不一一介绍.如果需要更 详细的说明,你可以从 Maple在线帮助系统里的Worksheet interface中查询. 当然,你也可以到 Maple 加拿大总公司的网站逛逛,收集最 新的资料,其网址为:
快 速 进 入
Maple
Jan,8, 2004
毕业指导培训
M1-10
第二讲 数值计算
2.1Maple 简介
数值运算可概括地分为精确与近似值运算.
2.1.1数值运算 一. 精确运算
通常我们把整数称为精确数,因为它不带任何小数.其它诸如3/4, sin2等数也叫精 确数.数值运算的结果为一个精确数,则称此运算为精确运算. > 1+3/7; 的结果为10/7,不是将它化为小数(1.42857142…)
Jan,8, 2004
快 速 进 入
Maple
毕业指导培训
M1-11
第二讲 数值计算
2.2 Maple 的基本运算
基本指令(一)
factorial(n)或n! irem(m,n) iquo(m,n)
基本指令(二)
计算n的阶乘 计算m/n的整数余数,其中m,n必须为整数 计算m/n的整数商,其中m,n必须为整数
快 速 进 入
Maple
Jan,8, 2004
毕业指导培训
M1-12
n e
第二讲 数值计算

Maple的使用教程

Maple的使用教程

界面设置:interface(选项=值) 选项有 ansi 打印突出 maple 关键字 echo 回声
errorbreak 出错中断 indentamount labelling 标号%1 labelwidth 标号宽 patchlevel
plotdevice plotoptions plotoutput postplot preplot prettyprint 输出类型 prompt 提示符 quiet 安静 screenheight 屏高 screenwidth 屏宽 showassumed terminal 终端
diff
int
sum
plot solve
小于等于 大于等于 等于 不等 箭头算子 赋值符 逻辑或 逻辑与 逻辑非 集合并 集合交 集合差 极限(第一个字母大写为极限 号) 导数(第一个字母大写为导数 符号) 积分(第一个字母大写为积分 符号) 求和(第一个字母大写为求和 号) 作图 方程求解
特殊常数:Pi(p 大写)、I(复数单位)、infinity(无穷) >Pi;infinity; 基本初等函数:开方 sqrt、以 e 为底指数 exp、log、sin、cos、tan、cot、sec、 csc、反三角(加 arc)、双曲 sh,ch,th,cth、反双曲(加 arc)等。 >sin(5); >exp(1); 数值显示:eval(a)值,evalf(a)浮点值,evalf(a,n) n 位有效数浮点值,evalc 复数 值,evalm 矩阵值 evalb 布尔代数值,allvalues 所有值,valus 符号运算值 >eval(sin(5));evalf(sin(5)); evalf(exp(1),8); >evalc(ln(I)),evalc(sin(1+I))); #逗号分隔表示几个数作为数组输出 >Diff(x*sin(x),x$2):”=value(”); 定义计算精度(有效数字):Digits:=n. >Digits:=100;evalf(Pi); 定义变量范围: >assume( a>0 );#定义 a>0

Maple常用计算命令

Maple常用计算命令

常用计算命令《Maple 指令》7.0版本第1xx xx数1.1 复数Re,Im - 返回复数型表达式的实部/虚部abs - 函数argument - 复数的幅角函数conjugate - 返回共轭复数csgn - 实数和复数表达式的符号函数signum - 实数和复数表达式的sign 函数5 1.2 MAPLE 常数已知的变量名称指数常数(以自然对数为底)I - x^2 = -1 的根infinity 无穷大1.3 整数函数! - 阶乘函数irem, iquo - 整数的余数/商isprime - 素数测试isqrfree - 无整数平方的因数分解max, min - 数的最大值/最小值mod, modp, mods - 计算对 m 的整数模rand - 随机数生成器randomize - 重置随机数生成器1.4 素数Randpoly, Randprime - 有限域的随机多项式/首一素数多项式ithprime - 确定第 i 个素数nextprime, prevprime - 确定下一个最大/最小素数1.5 数的进制转换convert/base - 基数之间的转换convert/binary - 转换为二进制形式convert/decimal - 转换为 10 进制convert/double - 将双精度浮点数由一种形式转换为另一种形式convert/float - 转换为浮点数convert/hex - 转换为十六进制形式convert/metric - 转换为公制单位convert/octal - 转换为八进制形式1.6 数的类型检查type - 数的类型检查函数第2xx 初等数学2.1 初等函数product - 确定乘积求和不确定乘积exp - 指数函数sum - 确定求和不确定求和sqrt - 计算xx算术运算符+, -, *, /, ^add, mul - 值序列的加法/乘法2.2 三角函数arcsin, arcsinh, . - 反三角函数/反双曲函数sin, sinh, . - 三角函数/双曲函数2.3 LOGARITHMS 函数dilog - Dilogarithm 函数ln, log, log10 - 自然对数/一般对数,常用对数2.4 类型转换convert/`+`,convert/`*` - 转换为求和/乘积convert/hypergeom - 将求和转换为超越函数convert/degrees - 将弧度转换为度convert/expsincos - 将trig 函数转换为exp, sin, cos convert/Ei - 转换为指数积分convert/exp - 将trig 函数转换为指数函数convert/ln - 将arctrig 转换为对数函数polar - 转换为极坐标形式convert/radians - 将度转换为弧度convert/sincos - 将trig 函数转换为sin, cos, sinh, cosh convert/tan - 将trig 函数转换为tanconvert/trig - 将指数函数转换为三角函数和双曲函数第3xx 求值3.1 假设功能3.2 求值Eval - 对一个表达式求值eval - 求值evala - 在代数数(或者函数)域求值evalb - 按照一个求值evalc - 在复数域上符号求值evalf - 使用浮点算法求值evalhf - 用硬件浮点数算法对表达式求值evalm - 对矩阵表达式求值evaln - 求值到一个名称evalr, shake - 用区间算法求表达式的值和计算范围evalrC - 用复数区间算法对表达式求值value - 求值的惰性函数第4xx 求根,xx4.1 数值解fsolve - 利用浮点数算法求解solve/floats - 包含浮点数的表达式4.2 最优化extrema - 寻找一个表达式的相对极值minimize, maximize - 计算最小值/最大值maxnorm - 一个多项式无穷大范数4.3 求根allvalues -计算含有RootOfs的表达式的所有可能值isqrt, iroot - 整数的xx/第n 次根realroot - 一个多项式的实数根的隔离区间root - 一个代数表达式的第n 阶根RootOf - 方程根的表示surd - 非主根函数roots - 一个多项式对一个变量的精确根turm, sturmseq - 多项式在区间上的实数根数和实根序列4.4 xxeliminate - 消去一个方程组中的某些变量isolve - 求解方程的整数解solvefor - 求解一个方程组的一个或者多个变量isolate - 隔离一个方程左边的一个子表达式singular - 寻找一个表达式的极点solve/identity - 求解包含属性的表达式solve/ineqs - 求解不等式solve/linear - 求解线性方程组solve/radical - 求解含有未知量根式的方程solve/scalar - 标量情况(单变量和方程)solve/series - 求解含有一般级数的方程solve/system - 解方程组或不等式组第5xx 操作表达式5.1 处理表达式Norm - 代数数 (或者函数) 的标准型Power - 惰性幂函数Powmod -带余数的惰性幂函数Primfield - 代数域的原始元素Trace - 求一个代数数或者函数的迹charfcn - 表达式和集合的特征函数Indets - 找一个表达式的变元invfunc - 函数表的逆powmod - 带余数的幂函数Risidue - 计算一个表达式的代数余combine - 表达式合并(对tan,cot不好用) expand - 表达式展开Expand - 展开表达式的惰性形式expandoff/expandon - 抑制/不抑制函数展开5.2 因式分解Afactor - 绝对因式分解的惰性形式Afactors - 绝对因式分解分解项列表的惰性形式Berlekamp - 因式分解的Berlekamp 显式度factor - 多元的多项式的因式分解factors - 多元多项式的因式分解列表Factor - 函数factor 的惰性形式Factors - 函数factors 的惰性形式polytools[splits] - 多项式的完全因式分解第6xx 化简6.1 表达式化简118simplify - 给一个表达式实施化简规则simplify/@ - 利用运算符化简表达式simplify/Ei - 利用指数积分化简表达式simplify/GAMMA - 利用GAMMA 函数进行化简simplify/RootOf - 用RootOf 函数化简表达式simplify/wronskian - 化简含wronskian 的表达式simplify/hypergeom - 化简超越函数表达式simplify/ln - 化简含有对数的表达式simplify/piecewise - 化简分段函数表达式simplify/polar - 化简含有极坐标形式的复数型表达式simplify/power - 化简含幂次的表达式simplify/radical - 化简含有根式的表达式simplify/rtable - 化简rtable 表达式simplify/siderels - 使用关系式进行化简simplify/sqrt - 根式化简simplify/trig - 化简trig 函数表达式simplify/zero - 化简含嵌入型实数和虚数的复数表达式6.2 其它化简操作Normal - normal 函数的惰性形式convert - 将一个表达式转换成不同形式radnormal - 标准化一个含有根号数的表达式rationalize - 分母有理化第7xx 操作多项式7.0 MAPLE 中的多项式简介7.1 提取coeff - 提取一个多项式的系数coeffs - 提取多元的多项式的所有系数coeftayl - 多元表达式的系数lcoeff, tcoeff - 返回多元多项式的首项和末项系数7.2 多项式约数和根gcd, lcm - 多项式的最大公约数/最小公倍数psqrt, proot - 多项式的xx和第n次根rem,quo - 多项式的余数/商7.3 操纵多项式convert/horner - 将一个多项式转换成Horner形式collect - 象幂次一样合并系数compoly - 确定一个多项式的可能合并的项数convert/polynom - 将级数转换成多项式形式convert/mathorner - 将多项式转换成Horner矩阵形式convert/ratpoly - 将级数转换成有理多项式sort - 将值的列表或者多项式排序sqrfree - 不含平方项的因数分解函数7.4 多项式运算discrim - 多项式的判别式fixdiv - 计算多项式的固定除数norm - 多项式的标准型resultant - 计算两个多项式的终结式bernoulli - Bernoulli 数和多项式bernstein - 用Bernstein多项式近似一个函数content, primpart - 一个多元的多项式的内容和主部degree, ldegree - 一个多项式的最高次方/最低次方divide - 多项式的精确除法euler - Euler 数和多项式icontent - 多项式的整数部分interp - 多项式的插值prem, sprem - 多项式的pseudo 余数和稀疏pseudo 余数randpoly - 随机多项式生成器spline - 计算自然样条函数第8xx 有理表达式8.0 有理表达式简介8.1 操作有理多项式numer,denom - 返回一个表达式的分子/分母frontend - 将一般的表达式处理成一个有理表达式normal - 标准化一个有理表达式convert/parfrac - 转换为部分分数形式convert/rational - 将浮点数转换为接近的有理数ratrecon - 重建有理函数第9xx 微积分9.1 取极限Limit, limit - 计算极限limit[dir] - 计算方向极限limit[multi] - 多重方向极限limit[return] - 极限的返回值9.2 连续性测试discont - 寻找一个函数在实数域上的间断点fdiscont - 用数值法寻找函数在实数域上的间断点iscont - 测试在一个区间上的连续性9.3 微分计算D - 微分算子D, diff - 运算符D 和函数diffdiff, Diff - 微分或者偏微分convert/D - 将含导数表达式转换为D运算符表达式convert/diff - 将D(f)(x)表达式转换为diff(f(x),x)的形式implicitdiff - 由一个方程定义一个函数的微分9.4 积分计算Si, Ci … - 三角和双曲积分Dirac, Heaviside - Dirac 函数/Heaviside阶梯函数Ei - 指数积分Elliptic -FresnelC, … - Fresnel 正弦,xx积分和辅助函数int, Int - 定积分和不定积分LegendreP, … - Legendre 函数及其第一和第二类函数Li - 对数积分student[changevar] - 变量代换dawson - Dawson 积分ellipsoid - 椭球体的表面积evalf(int) - 数值积分intat, Intat - 在一个点上积分求值第10xx 微分方程10.1 微分方程分类odeadvisor - ODE-求解分析器DESol - 表示微分方程解的pdetest - 测试pdsolve 能找到的偏微分方程(PDEs)解10.2 常微分方程求解dsolve - 求解常微方程 (ODE)dsolve - 用给定的求解ODE 问题dsolve/inttrans - 用积分变换方法求解常微分方程dsolve/numeric - 常微方程数值解dsolve/piecewise - 带分段系数的常微方程求解dsolve - 寻找ODE 问题的级数解dsolve - 求解ODEs 方程组odetest - 从ODE 求解器中测试结果是显式或者隐式类型10.3 偏微分方程求解pdsolve - 寻找偏微分方程 (PDEs) 的解析解第11xx 数值计算11.1 MAPLE 中的数值计算环境IEEE 标准和Maple数值计算数据类型特殊值环境变量11.2 算法标准算法复数算法含有0,无穷和未定义数的算法11.3 数据构造器254complex - 复数和复数构造器Float, … - 浮点数及其构造器Fraction - 分数及其的构造器integer - 整数和整数构造器11.4 MATLAB 简介11.5 “”区间类型表达式第12xx级数12.1 幂级数的阶数Order - 阶数项函数order - 确定级数的截断阶数12.2 常见级数展开series - 一般的级数展开taylor - Taylor 级数展开mtaylor - 多元Taylor级数展开poisson - Poisson级数展开.26812.3 其它级数eulermac - Euler-Maclaurin求和piecewise - 分段连续函数asympt - 渐进展开第13xx 特殊函数AiryAi, AiryBi - Airy 波动函数AiryAiZeros, AiryBiZeros - Airy函数的实数零点AngerJ, WeberE - Anger函数和Weber函数BesselI, HankelH1, … - Bessel函数和Hankel函数BesselJZeros, … - Bessel函数实数零点Beta - Beta函数EllipticModulus - 模数函数k(q)GAMMA, lnGAMMA - 完全和不完全Gamma函数GaussAGM - Gauss 算术的几何平均数JacobiAM, ., - Jacobi 振幅函数和JacobiTheta1, JacobiTheta4 - Jacobi theta函数JacobiZeta - Jacobi 的Zeta函数KelvinBer, KelvinBei - Kelvin函数KummerM, - Kummer M函数和U函数LambertW - LambertW函数LerchPhi - 一般的Lerch Phi函数LommelS1, LommelS2 - Lommel函数MeijerG - 一个xx的Meijer G函数Psi - Digamma 和Polygamma函数StruveH, StruveL - Struve函数WeierstrassP - Weierstrass P函数及其导数WhittakerM - Whittaker 函数Zeta - Zeta 函数erf, … - 误差函数,补充的误差函数和虚数误差函数harmonic - 调和函数hypergeom - xx的超越函数pochhammer - 一般的pochhammer函数polylog - 一般的polylogarithm函数第14xx 线性代数14.1 ALGEBRA(代数)中矩阵,矢量和14.2 LINALG 软件包简介14.3 数据结构矩阵matrices(小写)矢量vectors(矢量)convert/matrix - 将数组,列表,Matrix 转换成matrix convert/vector - 将列表,数组或Vector 转换成矢量vectorlinalg[matrix] - 生成矩阵matrix(小写)linalg[vector] - 生成矢量vector(小写)14.4 惰性函数Det - 惰性行列式运算符Eigenvals - 数值型矩阵的特征值和特征向量Hermite, Smith - 矩阵的Hermite 和Smith 标准型14.5 LinearAlgebra函数Matrix 定义矩阵Add 加/减矩阵Adjoint 伴随矩阵BackwardSubstitute 求解 A . X = B,其中 A 为上三角型行阶梯矩阵BandMatrix 带状矩阵Basis 返回向量空间的一组基SumBasis 返回向量空间直和的一组基IntersectionBasis 返回向量空间交的一组基BezoutMatrix 构造两个多项式的 Bezout 矩阵BidiagonalForm 将矩阵约化为双对角型CharacteristicMatrix 构造特征矩阵CharacteristicPolynomial 构造矩阵的特征多项式CompanionMatrix 构造一个首一(或非首一)多项式或矩阵多项式的xx(xx)ConditionNumber 计算矩阵关于某范数的条件数ConstantMatrix 构造常数矩阵ConstantVector 构造常数向量Copy 构造矩阵或向量的一份复制CreatePermutation 将一个 NAG 主元向量转换为一个置换向量或矩阵CrossProduct 向量的叉积`&x` 向量的叉积DeleteRow 删除矩阵的行DeleteColumn 删除矩阵的列Determinant 行列式Diagonal 返回从矩阵中得到的向量序列DiagonalMatrix 构造(分块)Dimension 行数和列数DotProduct 点积BilinearForm 向量的双线性形式EigenConditionNumbers 计算数值特征值制约问题的特征值或特征向量的条件数Eigenvalues 计算矩阵的特征值Eigenvectors 计算矩阵的特征向量Equal 比较两个向量或矩阵是否相等ForwardSubstitute 求解 A . X = B,其中 A 为下三角型行阶梯矩阵FrobeniusForm 将一个方阵约化为 Frobenius 型(有理标准型)GaussianElimination 对矩阵作消元ReducedRowEchelonForm 对矩阵作xx-约当消元GetResultDataType 返回矩阵或向量运算的结果数据类型GetResultShape 返回矩阵或向量运算的结果形状GivensRotationMatrix 构造 Givens 旋转的矩阵GramSchmidt 计算一个正交向量集HankelMatrix 构造一个 Hankel 矩阵HermiteForm 计算一个矩阵的 Hermite 正规型HessenbergForm 将一个方阵约化为上 Hessenberg 型HilbertMatrix 构造xx Hilbert 矩阵HouseholderMatrix 构造 Householder 反射矩阵IdentityMatrix 构造一个单位矩阵IsDefinite 检验矩阵的正定性,负定性或不定性IsOrthogonal 检验矩阵是否正交IsUnitary 检验矩阵是否为酉矩阵IsSimilar 确定两个矩阵是否相似JordanBlockMatrix 构造约当块矩阵JordanForm 将矩阵约化为约当型KroneckerProduct 构造两个矩阵的 Kronecker xx LeastSquares 方程的最小二乘解LinearSolve 求解线性方程组 A . x = bLUDecomposition 计算矩阵的 Cholesky,PLU 或 PLU1R 分解Map 将一个程序映射到一个表达式上,对矩阵和向量在原位置上进行处理MatrixAdd 计算两个矩阵的线性组合VectorAdd 计算两个向量的线性组合MatrixExponential 确定一个矩阵 A 的矩阵指数 exp(A)MatrixFunction 确定方阵 A 的函数 F(A)MatrixInverse 计算方阵的逆或矩阵的 Moore-Penrose 伪逆MatrixMatrixMultiply 计算两个矩阵的乘积MatrixVectorMultiply 计算一个矩阵和一个列向量的乘积VectorMatrixMultiply 计算一个行向量和一个矩阵的乘积MatrixPower 矩阵的幂MinimalPolynomial 构造矩阵的最小多项式Minor 计算矩阵的子式Multiply 矩阵相乘Norm 计算矩阵或向量的p-范数MatrixNorm 计算矩阵的p-范数VectorNorm 计算向量的p-范数Normalize 向量正规化NullSpace 计算矩阵的零度零空间OuterProductMatrix 两个向量的外积Permanent 方阵的不变量Pivot 矩阵元素的主元消去法PopovForm Popov 正规型QRDecomposition QR 分解RandomMatrix 构造RandomVector 构造随机向量Rank 计算Row 返回矩阵的一个行向量序列Column 返回矩阵的一个列向量序列RowOperation 对矩阵作初等行变换ColumnOperation 对矩阵作出等列变换RowSpace 返回矩阵行空间的一组基ColumnSpace 返回矩阵列空间的一组基ScalarMatrix 构造一个单位矩阵的数量倍数ScalarVector 构造一个单位向量的数量倍数ScalarMultiply 矩阵与数的乘积MatrixScalarMultiply 计算矩阵与数的乘积VectorScalarMultiply 计算向量与数的乘积SchurForm 将方阵约化为 Schur 型SingularValues 计算矩阵的奇异值SmithForm 将矩阵约化为 Smith 正规型StronglyConnectedBlocks 计算方阵的强连通块SubMatrix 构造矩阵的子矩阵SubVector 构造向量的子向量SylvesterMatrix 构造两个多项式的 Sylvester 矩阵ToeplitzMatrix 构造 Toeplitz 矩阵Trace 计算方阵的迹TransposeHermitianTranspose 共轭转置矩阵TridiagonalForm 将方阵约化为三对角型UnitVector 构造单位向量VandermondeMatrix 构造一个 Vandermonde 矩阵VectorAngle 计算两个向量的夹角ZeroMatrix 构造一个零矩阵ZeroVector 构造一个零向量Zip 将一个具有两个参数的程序作用到一对矩阵或向量上LinearAlgebra[Generic] 子函数包 [Generic] 子函数包提供作用在场,域,积分域和环上的线性代数算法。

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 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基础教程(修订稿)

Maple基础一 Maple的基本运算1数值计算问题在应用Maple做算术运算时,只需将Maple当作一个“计算器”使用,所不同的是命令结束时需加“;”或“:”J ■■在Maple中,主要的算术运算符有“ + ”(加)、“-(减卜“ * ” (乘卜“/”(除)以及“八”(乘方或幕,或记为**),值得注意的是,“A”的表达式只能有两个操作数,换言之,a A b A c是错误的,而“+”或“ *”的任意表达式可以有两个或者两个以上的操作数2.1.1有理数运算作为一个符号代数系统,Maple可以绝对避免算术运算的舍入误差.如果要求出两个整数运算的近似值时,只需在任意一个整数后加“.”(或“ .0”),或者利用“ evalf”命令把表达式转换成浮点形式,默认浮点数位是10 (即:Digits:=10,据此可任意改变浮点数位,如Digits:=20).> 123456789/987654321;13717421109739369> evalf(%);.1249999989> big_number:=3A(3A3);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(2A(2A4)+1);true3) 确定第i个素数(ithprime)若记第1个素数为2,判断第i个素数的命令格式:ithprime(i);4) 一组数的最大值(max)/最小值(min)命令格式:max(x1,x2,…,xn); #求xg,…,x n中的最大值min(x1,x2,…,xn); #求 X1,X2,…,X n 中的最小值5) 随机数生成器(rand)命令格式:rand( ); #随机返回一个12位数字的非负整数rand(a..b); #调用rand(a..b)返回一个程序,它在调用时生成一个在范围 [a, b]内的随机数> ran d();427419669081> myproc:=ra nd(1..2002):> myproc();> myproc(); 19161204注意,rand(n)是rand(0..n-1)的简写形式.2.1.2复数运算复数是Maple中的基本数据类型.虚数单位i在Maple中用I表示可以用Re( )、Im( )、conjugate()和argument )等函数分别计算实数的实部、虚部、共轭复数和幅角主值等运算.试作如下实验:> complex_number:=(1+2*l)*(3+4*l);complex, nu mber := -5+101> Re(%);lm(%%);conjugate(%%%);argume nt(complex_ nu mber);-510-5-10 1-arcta n(2) 二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的任意表达式.2> product(k A2,k=1..10); #计算k 关于 1..10 的连乘13168189440000> product(kA2,k); #计算k2的不确定乘积> product(a[k],k=0..5);■(k)2 #计算a i(i=0..5)的连乘a0 a1a2a3a4a5> Product(n+k,k=0..m)=product(n+k,k=0..m); #计算(n+k)的连乘,并写出其惰性表达式mnk =0(n kH;(n m 1)> product(k,k=RootOf(xA3-2));#计算 3x -2的三个根的乘积2) 指数函数 计算指数函数exp 关于x3) 确定求和与不确定求和 命令格式:sum(f,k);sum(f,k=m.. n);sum(f,k=alpha); sum(f,k=expr);其中,f —任意表达式,k —乘积指数名称,m,n —整数或任意表达式 含k 的表达式.Sum(kA2,k=1.. n)=sum(kA2,k=1.. n);的表达式的命令格式为:exp(x); sum,alpha —代数数 RootOf, expr —不' k 2;" 1)3-;(n 1)2k -13 2Sum(1/k!,k=0..i nfini ty)=sum(1/k!,k=0..i nfin ity);处1' | =e k! -e k =0 ©sum(a[k]*x[k],k=0.. n);nzk =0a k xksum(k/(k+1),k=RootOf(x A 2-3));3)三角函数/双曲函数命令格式: sin(x); cos(x); tan(x); sin h(x); cosh(x); tan h(x); 其中,x 为任意表达式. > Sin(Pi)=sin(Pi);cot(x);coth(x);sec(x);sech(x); csc(x);csch(x);Sin (二)=0 4) 反三角函数/反双曲函数 命令格式:arcsin(x);arccos(x);arcsin h(x); arccosh(x); arcta n( y,x);其中,x, y 为表达式.反三角函数/反双曲函数的参数必须按弧度计算 > arcsinh(l);arcta n( x); arccot(x); arcta nh(x); arccoth(x);arcsec(x); arccsc(x); arcsech(x); arccsch(x);> cos(arcsin(x));ln(1 2)〕(n)> f(1,2);> f:=(x,y)->a*x*y*exp(xA2+yA2);(X2+y 2) f := (x, y ) —■ a x y e另一个定义函数的命令是 un apply,其作用是从一个表达式建立一个算子或函数 命令格式为:f:=unapply(expr, x);命令格式为:f:=unapply(expr, x, y,…); > f:=u napply(xA4+xA3+xA2+x+1,x);432.f := X —; x x x x 15)对数函数 命令格式:In(x);log[a] (x);Iog10(x);一般地,在In(x)中要求#自然对数 #一般对数 #常用对数x>0.但对于复数型表达式x,有:In(x)=ln(abs(x)) I * argument(x)(其中,-二:::argument(x)空愿)> Iog10(1000000);ln (1000000 )ln( 10)> simplify(%); #化简上式 222函数的定义试看下面一个例子: > f(x):=a*x A 2+b*x+c;---并不是函数,而是一个表达式2f(x) := a x b x c> f(x),f(O),f(1/a);由上述结果可以看出,用赋值方法定义的f(x)是一个表达式而不是一个函数 在Maple 中,要真正完成一个函数的定义,需要用算子(也称箭头操作符): > f:=x->a*xA2+b*x+c;f := x — a x 2b x c> f(x),f(0),f(1/a);> f:=(x,y)->xA2+yA2;f := (x, y) —; x 2y 2 2a xb x c, f( 0), f借助函数piecewise 可以生成简单分段函数: > abs(x)=piecewise(x>O,x,x=O,O,x<O,-x);x 0 :: x | x | = « 0 x = 0-xX £ 0清除函数的定义用命令 un assig n. > un assig n(f); > f(1,1);f(1,1)定义了一个函数后,就可以使用op 或nops 指令查看有关函数中操作数的信息 .nops(expr),函数op的主要功能是,其命令格式为: op(expr); op(i, expr); op(i .. j, expr); nops(expr);expr:=6+cos(x)+s in( x)*cos(x)A 2;2expr := 6 cos( x) sin (x)cos(x)> op(expr);26, cos(x), sin(x) cos(x)> no ps(expr);32.2.3 Maple 中的常量与变量名为了解决数学问题,一些常用的数学常数是必要的.Maple 系统中已经存储了一些数学常数在表达式序歹U constants 中: > constants;false,,::, true, Catalan, FAIL,二为了方便使用,现将上述常数的具体含义列示如下:2.2.4函数类型转换实现函数类型转换的命令是convert .命令格式:convert(expr, form);#把数学式 expr 转换成 form 的形式#获取表达式的操作数#取出expr 里第i 个操作数, #expr 的第i 到第j 个操作数 #返回操作数的个数convert(expr, form, x); #指定变量 x,此时 form 只适于 exp、sin、cosconvert指令所提供的三角函数、指数与函数的转换共有exp等7种:(1) exp:将三角函数转换成指数(2) expln:把数学式转换成指数与对数⑶expsincos分别把三角函数与双曲函数转换成sin、cos与指数的形式(4) In:将反三角函数转换成对数(5) sincos将三角函数转换成sin与cos的形式,而把双曲函数转换成 sinh与cosh的形式⑹tan:将三角函数转换成tan的形式(7) trig :将指数函数转换成三角函数与对数函数> convert(sinh(x),exp);#将sinh(x)转换成exp类型1 x 1 1 e x -2 2 e x2.2.5函数的映射一map指令在符号运算的世界里,映射指令map可以说是相当重要的一个指令,它可以把函数或指令映射到这些结构里的元素,而不破坏整个结构的完整性 .命令格式为map(f, expr); map(f, expr, a); #将函数f映射到expr的每个操作数#将函数f映射到expr的每个操作数,并取出a为f的第2个自变量map(f, expr, a1, a2,…,an);井将函数f映射到expr的每个操作数,并取al〜an为f的第2〜n+1个自变量map2(f, a1, expr, a2,…,an); #以al为第1个自变量,expr的操作数为第2个自变量,a2为第3个自变量…,an为第n+1个自变量来映射函数f > f:=x->sqrt(x)+x A2;: 2f := x 、 x x> map(f,[a,b,c]);[a a2,b b2, c c2]> map(h, [a,b,c],x,y);[h(a,x,y),h(b,x,y),h(c,x,y)]3求值3.1赋值在Maple中,不需要申明变量的类型,甚至在使用变量前不需要将它赋值,这是Maple与其它高级程序设计语言不同的一点,也正是Maple符号演算的魅力所在,这个特性是由Maple与众不同的赋值方法决定的.为了理解其赋值机制,先看下面的例子.> p:=9*x A3-37*x A2+47*x-19;3 2p := 9 x -37 x 47 x - 19> roots(p);> subs(x=19/9,p);3.2变量代换subs ( var = repacedment expression;调用的结果是将表达式 expression中所有变量var出现的地方替换成replacement. > f:=xA2+exp(xA3)-8;2 (x3 )f := x e 「8> subs(x=1,f);-7 + e如果需要计算,必须调用求值函数evalf.如:> evalf(%);5.> subs(x=y,y=z,x A2*y); (顺序替换)3Z> subs({x=y,y=z},xA2*y); (同步替换)2y z> 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 + 3 a> subs({p=q,q=p},f(p,q)); (互换)f(q, p)3.3求值规则1) 对表达式求值命令格式:eval(e, x=a); #求表达式 e在x=a处的值eval(e, eqns); #对方程或方程组 eqns求值eval(e); #表达式e求值到上面两层eval(x, n); #给出求值名称的第n层求值> p:=xA5+xA4+xA3+xA2+x+73;5 丄4丄 3 丄2丄丄_ _p := x x x x x 73> eval(p,x=7);19680当表达式在异常点处求值时,eval会给一个错误消息.如下:> eval(s in( x)/x,x=0);Error, numeric exception: division by zero2) 在代数数(或者函数)域求值命令格式:evala(expr); #对表达式或者未求值函数求值evala(expr,op ts); #求值时可加选项(opts)在Maple中,代数数用函数RootOf()来表示.如3作为一个代数数,可以表示为:> alpha:=RootOf(xA2-3,x);2口:= RootOf (_Z - 3)> simplify(alphaA2);3在Maple内部,代数数不再表示为根式,而在化简时,仅仅利用到〉2= 3这样的事实.这里,Maple用到一个内部变量 _Z.再看下面一个例子,其中alias是缩写的定义函数,而参数lenstra指lenstra 椭圆曲线方法:> alias (al pha=RootOf(x A2-2)):> evala(factor(xA2-2,alpha),le nstra);(x 亠 *) (x -:)> evala(quo(xA2-x+3,x-alpha,x,'r'));亠:亠x> r;3 - /> simplify(%);5 -圧3) 在复数域上符号求值操纵复数型表达式并将其分离给出expr的实部和虚部的函数为 evalc,命令格式为:evalc(expr);evalc假定所有变量表示数值,且实数变量的函数是实数类型.其输出规范形式为:expr1+l*expr2.> evalc(si n(6+8*1));sin(6) cosh(8) +1 cos(6) sinh(8)> evalc(f(exp(alpha+x*l)));f( e cos( x) I e: sin(x))4) 使用浮点算法求值命令格式为:evalf(expr, n);> evalf(Pi,50);3.1415926535897932384626433832795028841971693993751> evalf(si n( 3+4*I));3.853738038 -27.01681326 I5) 对惰性函数求值把只用表达式表示而暂不求值的函数称为惰性函数,对任意代数表达式f求值的命令格式为:value(f); > F:=ln t(exp(x),x);J*F := | e x dxJ> value(%);xe> f:=Limit(s in (x)/x,x=0);sin(x)f := lim -----X—.0 x> value(%);1另外,将惰性函数的大写字母改为小写字母亦即可求值.如下例:> Limit(si n( x)/x,x=0)=limit(si n(x)/x,x=0);sin(x),lim 1X r04 数据结构Maple 中有许多内建的与 FORTRAN 、 C 或 Pascal 不同的数据结构 . 主要的数据结构有序列(sequenee卜列表(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 := 1,4, 9,16, 25> t:=sin,com,tan,cot;t := sin, com, tan, cot一个序列也可以由若干个序列复合而成, 如:> s:=1,(4,9,16),25;s := 1,4, 9,16, 25> s,s;1,4, 9, 16, 25, 1, 4, 9,16,25而符号 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 A2,i=1..10);1,4,9, 16, 25, 36, 49, 64, 81, 100> seq(iA3,i=x+y+z);333x ,y ,z获得一个序列中的特定元素选用操作符 [ ], 如:> seq(ithprime(i),i=1..20);2,3, 5,7, 11, 13, 17, 19, 23, 29,31,37,41,43, 47, 53,59,61,67,71> %[6],%[17];13, 594.2.2列表列表(list),就是把对象(元素)放在一起的一种数据结构,一般地,用方括号[]表示列表•如下例:> I:=[x,1,1-Z,x];l := [X, 1, 1 - z, x]> whattype(%);list4.2.3集合集合(set)也是把对象(元素)放在一起的数据结构,一般地,用花括号表示集合.> s:={x,1,1-z,x};s := { 1, X, 1 -z}> whattype(%);set空集定义为{ }.Maple中集合的基本运算有交 (intersect)、并(union)、差(minus):> A:={seq(i A3,i=1..10)};B:={seq(i A2,i=1..10)};A := { 1, 8, 27, 64, 125, 216, 343, 512, 729, 1000}B := { 1,4, 9, 16,25,36,49,64, 81, 100}> A in tersect B;{1,64}4.3数组和表在Maple中,数组(array)由命令array产生,其下标变量(index)可以自由指定.下标由1开始的一维数组称为向量(vector),二维以上的数组称为矩阵(matrix).数组的元素按顺序排列,任意存取一数组的元素要比列表或序列快的多•区分一个数据结构是数组还是列表要用“type”命令.表(table)在建立时使用圆括号,变量能对一个表赋值,但一个在存取在算子中的未赋值变量会被自动地假定是表,表的索引可以成为任意Maple表达式.表中元素的次序不是固定的.5 Maple高级输入与输出操作生成LATEXMaple可以把它的表达式转换成LATEX,使用latex命令即可:> latex(xA2+yA2=zA2);{x}A{2}+{y}A{2}={z}A{2}还可以将转换结果存为一个文件(LatexFile):> latex(xA2 + yA2 = zA2, LatexFile);再如下例:> latex(I nt(1/(xA2+1),x)=i nt(1/(xA2+1),x));\i nt \! \left( {x}A{2}+1 \right) A{-1}{dx}=\arcta n\left( x \right)微积分运算1函数的极限和连续1.1函数和表达式的极限 lim f (x)命令格式为:limit(f,x=a);求lim f (x)时的命令格式为 X — j a ■ 的命令格式为limit(f, x=a, left);请看下述例子: Limit((1+1/x)^x,x=infinity)=limit((1+1/x)Ax,x=infin ity); x f 1 > 1 +— I X 丿 limx - ■::Limit((x A n-1)/(x-1),x=1)=limit((xAn-1)/(x-1),x=1); lim x >1n x - 1 -1 =n Limit(xAx,x=0,right)=limit(xAx,x=0,righ t); lim X r 0 +limit(a*x*y-b/(x*y),{x=1,y=1});limit(xA2*(1+x)-yA2*((1-y))/(xA2+yA2),{x=0,y=0});un defi ned 下例就是化二重极限为二次极限而得正确结果: limit((si n(x+y)/(si n(x)*sin(y)),{x=Pi/4,y=Pi/4}));■/ sin(x +y){ sin(x)sin(y)' xlim itlimit(limit(si n(x+y)/(si n(x)*si n(y)),x=Pi/4),y=Pi/4); 2 1.2函数的连续性limit(f, x=a, right); 求 lim f (x)时x _1<:}1.2.1连续 在Maple 中可以用函数iscont 来判断一个函数或者表达式在区间上的连续性 .命令格式为: isc on t(expr, x=a..b, ' colsed '/'ope ned ); 其中,closed 表示闭区间,而opened 表示开区间(此为系统默认状态). 如果表达式在区间上连续,iscont 返回true,否则返回false,当iscont 无法确定连续性时返回 FAIL. 另外,iscont 函数假定表达式中的所有符号都是实数型 .颇为有趣的是,当给定区间[a,b ] (a>b)时,iscont 会自动按[b,a ]处理. > isco nt(1/x,x=1..2); true > isc on t(1/x,x=-1..1,closed); false> iscont(1/(x+a),x=0..1);1.2.2间断函数discont 可以寻找函数或表达式在实数域的间断点 ,当间断点周期或成对出现时,Maple 会利用 一些辅助变量予以表达,比如,_Zn ~(任意整数)、_NZn ~(任意自然数)和Bn ~(一个二进制数,0或者1),其 中n 是序号.判定f (x )间断点的命令为:disc on t(f, x);> disco nt(l n(xA2-4),x);{ -2, 2}> disco nt(arcta n(1/2*ta n(2*x))/(xA2-1),x);1 1{-1, 1,2 二一Z 1~ 4 二}> disco nt(rou nd(3*x-1/2),x);{33-Z1函数rou nd 为“四舍五入”函数,上例并非一目了然,对其进一步理解可借助于函数 的fdisco nt 例子。

Maple 入门教程

Maple 入门教程

是一
例子:输入上面的方程(使用单引号作为 微分符号),为了验证它是一个微分方 程,从关联菜单中选择 Solve DE 求解。
标签 无论你何时使用【回车键】获得一个计算 结果,工作表将自动给出一个公式标签。 如果想引用前面的计算结果,使用 C t r l + L 并输入标签数字。
例子:将上面的结果 标签。
操作步骤
结果
求精确解和数值近似 Maple 计算精确结果,也就是说,分数计算 时保持分数形式,e 和 在整个计算过程中 保留为符号形式。这些将减少在多步计算 中由于近似产生的误差。
例子:在新的一行,输入 1/2 + 1/3。 我们注意到光标 / 自动移到分母的位置。按 回车键得到计算结果。
Maple也可以计算数值近似解。 例子:鼠标右击上面的结果表达式,选择 关联菜单的Approximate,精度位选择 5。
例如," " 意思为 "x 乘以 y",但是 " " 表示一个名为" x y "的变量。
= =
=
= =
(3.4)
例子: 键入 " [ 空格]
".
如果你从右键菜单中选择Differentiate,你
将看到 x, y, 和 xy 被当作三个独立的变量。
如果你使用关联菜单选择 Differentiate,你 可以看到 x, y, 和 xy 被作为三个不同的变量 区别对待。
(3.15)
注意:在Maple中,任何想要获得求值结果 的表达式都必须为数学格式,任何文本格 式的表达式都是非执行语句。
(3.16) (3.17)
(3.18)
提示: 如何找到计算机系统下的快捷键,点击菜单 帮助 > 快速帮助,并选择 切换文本/数 学。

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 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会认识⼀些输⼊的变量名称, 如希腊字母等. 为了使⽤⽅便, 现将希腊字母表罗列如下,输⼊时只需录⼊相应的英⽂,要输⼊⼤写希腊字母, 只需把英⽂⾸字母⼤写:alpha beta gamma delta epsilon zeta eta theta iota kappa lambda munu xi omicron pi rho sigma tau upsilon phi chi psi omega有时候为了美观或特殊需要,可以采⽤Maple中的函数或程序设计⽅式控制其输出⽅式,如下例:> for i to 10 doprintf("i=%+2d and i^(1/2)=%+6.3f", i, eval(sqrt(i)));od;i=+1 and i^(1/2)=+1.000i=+2 and i^(1/2)=+1.414i=+3 and i^(1/2)=+1.732i=+4 and i^(1/2)=+2.000i=+5 andi^(1/2)=+2.236i=+6 and i^(1/2)=+2.449i=+7 and i^(1/2)=+2.646i=+8 and i^(1/2)=+2.828i=+9 and i^(1/2)=+3.000i=+10 and i^(1/2)=+3.162+2d的含义是带符号的⼗进位整数,域宽为2. 显然,这种输出⽅式不是我们想要的,为了得到更美观的输出效果,在语句中加⼊换⾏控制符“\n”即可:> for i to 10 doprintf("i=%+2d and i^(1/2)=%+6.3f\n", i, eval(sqrt(i)));od;i=+1 and i^(1/2)=+1.000i=+2 and i^(1/2)=+1.414i=+3 and i^(1/2)=+1.732i=+4 and i^(1/2)=+2.000i=+5 and i^(1/2)=+2.236i=+6 and i^(1/2)=+2.449i=+7 and i^(1/2)=+2.646i=+8 and i^(1/2)=+2.828i=+9 and i^(1/2)=+3.000i=+10 and i^(1/2)=+3.162再看下例:将输⼊的两个数字⽤特殊形式打印:> niceP:=proc(x,y)printf("value of x=%6.4f, value of y=%6.4f",x,y);end proc;> niceP(2.4,2002.204);value of x=2.4000, value of y=2002.20401.4 Maple联机帮助学会寻求联机帮助是掌握⼀个软件的钥匙. Maple有⼀个⾮常好的联机帮助系统, 它包含了90%以上命令的使⽤说明. 要了解Maple的功能可就会出现(也可以⽤Tab键和up, down选定). 可以从底栏中看到函数命令全称, 例如, 我们选graphics…, 出现该条的⼦⽬录, 从中选2D…, 再选plot就可得到作函数图象的命令plot的完整帮助信息. ⼀般帮助信息都有实例, 我们可以将实例中的命令部分拷贝到作业⾯进⾏计算、演⽰,由此可了解该命令的作⽤.在使⽤过程中, 如果对⼀个命令把握不准, 可⽤键盘命令对某个命令进⾏查询. 例如, 在命令区输⼊命令“?plot”(或help(plot);), 然后回车将2 Maple的基本运算2.1 数值计算问题算术是数学中最古⽼、最基础和最初等的⼀个分⽀, 它研究数的性质及其运算, 主要包括⾃然数、分数、⼩数的性质以及他们的加、减、乘、除四则运算. 在应⽤Maple做算术运算时, 只需将Maple当作⼀个“计算器”使⽤, 所不同的是命令结束时需加“;”或“:”.在Maple中, 主要的算术运算符有“+”(加)、“–”(减)、“*”(乘)、“/”(除)以及“^”(乘⽅或幂,或记为**), 算术运算符与数字或字母⼀起组成任意表达式, 但其中“+”、“*”是最基本的运算, 其余运算均可归诸于求和或乘积形式. 算述表达式运算的次序为: 从左到右, 圆括号最先, 幂运算优先, 其次是乘除,最后是加减. 值得注意的是, “^”的表达式只能有两个操作数, 换⾔之, 是错误的, ⽽“+”或“*”的任意表达式可以有两个或者两个以上的操作数.Maple有能⼒精确计算任意位的整数、有理数或者实数、复数的四则运算, 以及模算术、硬件浮点数和任意精度的浮点数甚⾄于矩阵的计算等等. 总之, Maple可以进⾏任意数值计算.但是, 任何软件或程序毕竟只是⼈们进⾏科学研究的⼀种必要的辅助, 即便它有很多优点, 但也有它的局限性, 为了客观地认识数学软件、认识Maple, 下⾯通过两个简单例⼦予以说明.第⼀个简单的数值计算实例想说明Maple数值计算的答案的正确性:> 3!!!;上述运算结果在IBM PC机(1G, 128M)上计算只需要0.01秒, 得到如此复杂的结果(1747位), ⼀个⾃然的问题是: 答案正确吗?为了回答这个问题, 我们借助于数值分析⽅法, 由Stiring公式可得: , 前三位数字与Maple输出结果相同, 且两者结果均为1747位. 另外, 在720!的计算中, 5的因⼦的个数为:这些5与⾜够多的2相乘将得到178个0, ⽽Maple的输出结果中最后178位数为零. 由此, 可以相信Maple结果的正确性.另⼀个例⼦则想说明Maple计算的局限性:Maple在处理问题时, 为了避免失根, 从不求算术式的近似值, 分数则化简为既约分数. 因此, 在Maple中很容易得到:显然这是错误的. 这⼀点可以从代数的⾓度予以分析.不妨设, 则, 即, 显然有3个结果, -2是其实数结果.另⼀⽅⾯, 设, 则, 即:显然有6个结果, -2、2是其实数结果.这个简单的例⼦说明了Maple在数值计算⽅⾯绝对不是万能的, 其计算结果也不是完全正确的, 但是, 通过更多的实验可以发现: Maple只可能丢失部分结果, ⽽不会增加或很少给出完全错误的结果(如上例中Maple的浮点数结果皆为). 这⼀点提醒我们, 在利⽤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教程

Maple教程Maple是一款强大的数学软件,它被广泛用于科学研究、工程设计、教育等领域。

本教程将为你介绍Maple的基本使用方法和一些常用功能,帮助你快速上手和利用Maple解决数学问题。

一、Maple的安装与启动1. 安装MapleMaple的安装非常简单,你只需要从官方网站下载Maple 的安装程序,然后按照提示进行安装即可。

2. 启动Maple安装完成后,你可以在桌面或开始菜单中找到Maple的启动图标,双击它即可启动Maple。

二、Maple的基本功能1. Maple的界面Maple的界面非常直观和友好,主要包括以下几个部分:•菜单栏:包含了各种功能和工具的菜单选项;•工具栏:提供了常用功能的快捷操作按钮;•输入框:可以输入和编辑Maple代码;•输出区:显示Maple执行代码的结果。

2. Maple的基本操作在Maple中,你可以通过输入和执行代码来完成各种数学运算和数据处理。

下面是一些常用的基本操作方法:•输入代码:在输入框中输入Maple代码,然后按下回车键执行;•注释代码:使用#符号可以在代码中添加注释,注释的内容将被忽略;•查看帮助:通过菜单栏的帮助选项或使用?键,可以查看Maple的帮助文档和函数说明。

3. Maple的数学计算Maple支持各种数学计算,包括基本运算、符号计算、数值计算等。

下面是一些常用的数学计算方法:•基本运算:Maple可以进行各种基本运算,如加减乘除、幂运算、取余等;•符号计算:Maple可以处理符号表达式,进行符号计算、方程求解、微分积分等;•数值计算:Maple可以进行数值计算,如数值积分、方程数值求解、函数拟合等。

三、Maple的扩展功能除了基本功能外,Maple还提供了许多强大的扩展功能,帮助用户进行更复杂的数学运算和数据处理。

1. 绘图功能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入门

maple入门

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 ,not
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
3) 求积分 பைடு நூலகம்示
1.1.2界面介绍
1.工具栏 在Maple界面上说明 2. 工作区 每一个">"是一个执行块. 表 示命令提示符.
1.2基本运算
能精确计算整数,有理数或者实数,复 数的四则运算, 以及模算术,硬件浮点数和 任意精度的浮点数甚至于矩阵的计算等等. 总之, Maple可以进行任意数值计算.

Maple常用计算命令

Maple常用计算命令

常用计算命令《Maple 指令》7.0版本第1章章数1.1 复数Re,Im - 返回复数型表达式的实部/虚部abs - 绝对值函数argument - 复数的幅角函数conjugate - 返回共轭复数csgn - 实数和复数表达式的符号函数signum - 实数和复数表达式的sign 函数51.2 MAPLE 常数已知的变量名称指数常数(以自然对数为底)I - x^2 = -1 的根infinity 无穷大1.3 整数函数! - 阶乘函数irem, iquo - 整数的余数/商isprime - 素数测试isqrfree - 无整数平方的因数分解max, min - 数的最大值/最小值mod, modp, mods - 计算对 m 的整数模rand - 随机数生成器randomize - 重置随机数生成器1.4 素数Randpoly, Randprime - 有限域的随机多项式/首一素数多项式ithprime - 确定第 i 个素数nextprime, prevprime - 确定下一个最大/最小素数1.5 数的进制转换convert/base - 基数之间的转换convert/binary - 转换为二进制形式convert/decimal - 转换为 10 进制convert/double - 将双精度浮点数由一种形式转换为另一种形式convert/float - 转换为浮点数convert/hex - 转换为十六进制形式convert/metric - 转换为公制单位convert/octal - 转换为八进制形式1.6 数的类型检查type - 数的类型检查函数第2章初等数学2.1 初等函数product - 确定乘积求和不确定乘积exp - 指数函数sum - 确定求和不确定求和sqrt - 计算平方根算术运算符+, -, *, /, ^add, mul - 值序列的加法/乘法2.2 三角函数arcsin, arcsinh, . - 反三角函数/反双曲函数sin, sinh, . - 三角函数/双曲函数2.3 LOGARITHMS 函数dilog - Dilogarithm 函数ln, log, log10 - 自然对数/一般对数,常用对数2.4 类型转换convert/`+`,convert/`*` - 转换为求和/乘积convert/hypergeom - 将求和转换为超越函数convert/degrees - 将弧度转换为度convert/expsincos - 将trig 函数转换为exp, sin, cosconvert/Ei - 转换为指数积分convert/exp - 将trig 函数转换为指数函数convert/ln - 将arctrig 转换为对数函数polar - 转换为极坐标形式convert/radians - 将度转换为弧度convert/sincos - 将trig 函数转换为sin, cos, sinh, cosh convert/tan - 将trig 函数转换为tanconvert/trig - 将指数函数转换为三角函数和双曲函数第3章求值3.1 假设功能3.2 求值Eval - 对一个表达式求值eval - 求值evala - 在代数数(或者函数)域求值evalb - 按照一个布尔表达式求值evalc - 在复数域上符号求值evalf - 使用浮点算法求值evalhf - 用硬件浮点数算法对表达式求值evalm - 对矩阵表达式求值evaln - 求值到一个名称evalr, shake - 用区间算法求表达式的值和计算范围evalrC - 用复数区间算法对表达式求值value - 求值的惰性函数第4章求根,解方程4.1 数值解fsolve - 利用浮点数算法求解solve/floats - 包含浮点数的表达式4.2 最优化extrema - 寻找一个表达式的相对极值minimize, maximize - 计算最小值/最大值maxnorm - 一个多项式无穷大范数4.3 求根allvalues -计算含有RootOfs的表达式的所有可能值isqrt, iroot - 整数的平方根/第n 次根realroot - 一个多项式的实数根的隔离区间root - 一个代数表达式的第n 阶根RootOf - 方程根的表示surd - 非主根函数roots - 一个多项式对一个变量的精确根turm, sturmseq - 多项式在区间上的实数根数和实根序列4.4 解方程eliminate - 消去一个方程组中的某些变量isolve - 求解方程的整数解solvefor - 求解一个方程组的一个或者多个变量isolate - 隔离一个方程左边的一个子表达式singular - 寻找一个表达式的极点solve/identity - 求解包含属性的表达式solve/ineqs - 求解不等式solve/linear - 求解线性方程组solve/radical - 求解含有未知量根式的方程solve/scalar - 标量情况(单变量和方程)solve/series - 求解含有一般级数的方程solve/system - 解方程组或不等式组第5章操作表达式5.1 处理表达式Norm - 代数数 (或者函数) 的标准型Power - 惰性幂函数Powmod -带余数的惰性幂函数Primfield - 代数域的原始元素Trace - 求一个代数数或者函数的迹charfcn - 表达式和集合的特征函数Indets - 找一个表达式的变元invfunc - 函数表的逆powmod - 带余数的幂函数Risidue - 计算一个表达式的代数余combine - 表达式合并(对tan,cot不好用)expand - 表达式展开Expand - 展开表达式的惰性形式expandoff/expandon - 抑制/不抑制函数展开5.2 因式分解Afactor - 绝对因式分解的惰性形式Afactors - 绝对因式分解分解项列表的惰性形式Berlekamp - 因式分解的Berlekamp 显式度factor - 多元的多项式的因式分解factors - 多元多项式的因式分解列表Factor - 函数factor 的惰性形式Factors - 函数factors 的惰性形式polytools[splits] - 多项式的完全因式分解第6章化简6.1 表达式化简118simplify - 给一个表达式实施化简规则simplify/@ - 利用运算符化简表达式simplify/Ei - 利用指数积分化简表达式simplify/GAMMA - 利用GAMMA 函数进行化简simplify/RootOf - 用RootOf 函数化简表达式simplify/wronskian - 化简含wronskian 标识符的表达式simplify/hypergeom - 化简超越函数表达式simplify/ln - 化简含有对数的表达式simplify/piecewise - 化简分段函数表达式simplify/polar - 化简含有极坐标形式的复数型表达式simplify/power - 化简含幂次的表达式simplify/radical - 化简含有根式的表达式simplify/rtable - 化简rtable 表达式simplify/siderels - 使用关系式进行化简simplify/sqrt - 根式化简simplify/trig - 化简trig 函数表达式simplify/zero - 化简含嵌入型实数和虚数的复数表达式6.2 其它化简操作Normal - normal 函数的惰性形式convert - 将一个表达式转换成不同形式radnormal - 标准化一个含有根号数的表达式rationalize - 分母有理化第7章操作多项式7.0 MAPLE 中的多项式简介7.1 提取coeff - 提取一个多项式的系数coeffs - 提取多元的多项式的所有系数coeftayl - 多元表达式的系数lcoeff, tcoeff - 返回多元多项式的首项和末项系数7.2 多项式约数和根gcd, lcm - 多项式的最大公约数/最小公倍数psqrt, proot - 多项式的平方根和第n次根rem,quo - 多项式的余数/商7.3 操纵多项式convert/horner - 将一个多项式转换成Horner形式collect - 象幂次一样合并系数compoly - 确定一个多项式的可能合并的项数convert/polynom - 将级数转换成多项式形式convert/mathorner - 将多项式转换成Horner矩阵形式convert/ratpoly - 将级数转换成有理多项式sort - 将值的列表或者多项式排序sqrfree - 不含平方项的因数分解函数discrim - 多项式的判别式fixdiv - 计算多项式的固定除数norm - 多项式的标准型resultant - 计算两个多项式的终结式bernoulli - Bernoulli 数和多项式bernstein - 用Bernstein多项式近似一个函数content, primpart - 一个多元的多项式的内容和主部degree, ldegree - 一个多项式的最高次方/最低次方divide - 多项式的精确除法euler - Euler 数和多项式icontent - 多项式的整数部分interp - 多项式的插值prem, sprem - 多项式的pseudo 余数和稀疏pseudo 余数randpoly - 随机多项式生成器spline - 计算自然样条函数第8章有理表达式8.0 有理表达式简介8.1 操作有理多项式numer,denom - 返回一个表达式的分子/分母frontend - 将一般的表达式处理成一个有理表达式normal - 标准化一个有理表达式convert/parfrac - 转换为部分分数形式convert/rational - 将浮点数转换为接近的有理数ratrecon - 重建有理函数第9章微积分9.1 取极限Limit, limit - 计算极限limit[dir] - 计算方向极限limit[multi] - 多重方向极限limit[return] - 极限的返回值9.2 连续性测试discont - 寻找一个函数在实数域上的间断点fdiscont - 用数值法寻找函数在实数域上的间断点iscont - 测试在一个区间上的连续性D - 微分算子D, diff - 运算符D 和函数diffdiff, Diff - 微分或者偏微分convert/D - 将含导数表达式转换为D运算符表达式convert/diff - 将D(f)(x)表达式转换为diff(f(x),x)的形式implicitdiff - 由一个方程定义一个函数的微分9.4 积分计算Si, Ci … - 三角和双曲积分Dirac, Heaviside - Dirac 函数/Heaviside阶梯函数Ei - 指数积分Elliptic - 椭圆积分FresnelC, … - Fresnel 正弦,余弦积分和辅助函数int, Int - 定积分和不定积分LegendreP, … - Legendre 函数及其第一和第二类函数Li - 对数积分student[changevar] - 变量代换dawson - Dawson 积分ellipsoid - 椭球体的表面积evalf(int) - 数值积分intat, Intat - 在一个点上积分求值第10章微分方程10.1 微分方程分类odeadvisor - ODE-求解分析器DESol - 表示微分方程解的数据结构pdetest - 测试pdsolve 能找到的偏微分方程(PDEs)解10.2 常微分方程求解dsolve - 求解常微方程 (ODE)dsolve - 用给定的初始条件求解ODE 问题dsolve/inttrans - 用积分变换方法求解常微分方程dsolve/numeric - 常微方程数值解dsolve/piecewise - 带分段系数的常微方程求解dsolve - 寻找ODE 问题的级数解dsolve - 求解ODEs 方程组odetest - 从ODE 求解器中测试结果是显式或者隐式类型10.3 偏微分方程求解pdsolve - 寻找偏微分方程 (PDEs) 的解析解第11章数值计算11.1 MAPLE 中的数值计算环境IEEE 标准和Maple数值计算数据类型特殊值环境变量11.2 算法标准算法复数算法含有0,无穷和未定义数的算法11.3 数据构造器254complex - 复数和复数构造器Float, … - 浮点数及其构造器Fraction - 分数及其的构造器integer - 整数和整数构造器11.4 MATLAB 软件包简介11.5 “”区间类型表达式第12章级数12.1 幂级数的阶数Order - 阶数项函数order - 确定级数的截断阶数12.2 常见级数展开series - 一般的级数展开taylor - Taylor 级数展开mtaylor - 多元Taylor级数展开poisson - Poisson级数展开.26812.3 其它级数eulermac - Euler-Maclaurin求和piecewise - 分段连续函数asympt - 渐进展开第13章特殊函数AiryAi, AiryBi - Airy 波动函数AiryAiZeros, AiryBiZeros - Airy函数的实数零点AngerJ, WeberE - Anger函数和Weber函数BesselI, HankelH1, … - Bessel函数和Hankel函数BesselJZeros, … - Bessel函数实数零点Beta - Beta函数EllipticModulus - 模数函数k(q)GAMMA, lnGAMMA - 完全和不完全Gamma函数GaussAGM - Gauss 算术的几何平均数JacobiAM, ., - Jacobi 振幅函数和椭圆函数JacobiTheta1, JacobiTheta4 - Jacobi theta函数JacobiZeta - Jacobi 的Zeta函数KelvinBer, KelvinBei - Kelvin函数KummerM, - Kummer M函数和U函数LambertW - LambertW函数LerchPhi - 一般的Lerch Phi函数LommelS1, LommelS2 - Lommel函数MeijerG - 一个修正的Meijer G函数Psi - Digamma 和Polygamma函数StruveH, StruveL - Struve函数WeierstrassP - Weierstrass P函数及其导数WhittakerM - Whittaker 函数Zeta - Zeta 函数erf, … - 误差函数,补充的误差函数和虚数误差函数harmonic - 调和函数hypergeom - 广义的超越函数pochhammer - 一般的pochhammer函数polylog - 一般的polylogarithm函数第14章线性代数14.1 ALGEBRA(代数)中矩阵,矢量和数组14.2 LINALG 软件包简介14.3 数据结构矩阵matrices(小写)矢量vectors(矢量)convert/matrix - 将数组,列表,Matrix 转换成matrixconvert/vector - 将列表,数组或Vector 转换成矢量vector linalg[matrix] - 生成矩阵matrix(小写)linalg[vector] - 生成矢量vector(小写)14.4 惰性函数Det - 惰性行列式运算符Eigenvals - 数值型矩阵的特征值和特征向量Hermite, Smith - 矩阵的Hermite 和Smith 标准型14.5 LinearAlgebra函数Matrix 定义矩阵Add 加/减矩阵Adjoint 伴随矩阵BackwardSubstitute 求解 A . X = B,其中 A 为上三角型行阶梯矩阵BandMatrix 带状矩阵Basis 返回向量空间的一组基SumBasis 返回向量空间直和的一组基IntersectionBasis 返回向量空间交的一组基BezoutMatrix 构造两个多项式的 Bezout 矩阵BidiagonalForm 将矩阵约化为双对角型CharacteristicMatrix 构造特征矩阵CharacteristicPolynomial 构造矩阵的特征多项式CompanionMatrix 构造一个首一(或非首一)多项式或矩阵多项式的友矩阵(束)ConditionNumber 计算矩阵关于某范数的条件数ConstantMatrix 构造常数矩阵ConstantVector 构造常数向量Copy 构造矩阵或向量的一份复制CreatePermutation 将一个 NAG 主元向量转换为一个置换向量或矩阵CrossProduct 向量的叉积`&x` 向量的叉积DeleteRow 删除矩阵的行DeleteColumn 删除矩阵的列Determinant 行列式Diagonal 返回从矩阵中得到的向量序列DiagonalMatrix 构造(分块)对角矩阵Dimension 行数和列数DotProduct 点积BilinearForm 向量的双线性形式EigenConditionNumbers 计算数值特征值制约问题的特征值或特征向量的条件数Eigenvalues 计算矩阵的特征值Eigenvectors 计算矩阵的特征向量Equal 比较两个向量或矩阵是否相等ForwardSubstitute 求解 A . X = B,其中 A 为下三角型行阶梯矩阵FrobeniusForm 将一个方阵约化为 Frobenius 型(有理标准型)GaussianElimination 对矩阵作高斯消元ReducedRowEchelonForm 对矩阵作高斯-约当消元GetResultDataType 返回矩阵或向量运算的结果数据类型GetResultShape 返回矩阵或向量运算的结果形状GivensRotationMatrix 构造 Givens 旋转的矩阵GramSchmidt 计算一个正交向量集HankelMatrix 构造一个 Hankel 矩阵HermiteForm 计算一个矩阵的 Hermite 正规型HessenbergForm 将一个方阵约化为上 Hessenberg 型HilbertMatrix 构造广义 Hilbert 矩阵HouseholderMatrix 构造 Householder 反射矩阵IdentityMatrix 构造一个单位矩阵IsDefinite 检验矩阵的正定性,负定性或不定性IsOrthogonal 检验矩阵是否正交IsUnitary 检验矩阵是否为酉矩阵IsSimilar 确定两个矩阵是否相似JordanBlockMatrix 构造约当块矩阵JordanForm 将矩阵约化为约当型KroneckerProduct 构造两个矩阵的 Kronecker 张量积LeastSquares 方程的最小二乘解LinearSolve 求解线性方程组 A . x = bLUDecomposition 计算矩阵的 Cholesky,PLU 或 PLU1R 分解Map 将一个程序映射到一个表达式上,对矩阵和向量在原位置上进行处理MatrixAdd 计算两个矩阵的线性组合VectorAdd 计算两个向量的线性组合MatrixExponential 确定一个矩阵 A 的矩阵指数 exp(A)MatrixFunction 确定方阵 A 的函数 F(A)MatrixInverse 计算方阵的逆或矩阵的 Moore-Penrose 伪逆MatrixMatrixMultiply 计算两个矩阵的乘积MatrixVectorMultiply 计算一个矩阵和一个列向量的乘积VectorMatrixMultiply 计算一个行向量和一个矩阵的乘积MatrixPower 矩阵的幂MinimalPolynomial 构造矩阵的最小多项式Minor 计算矩阵的子式Multiply 矩阵相乘Norm 计算矩阵或向量的p-范数MatrixNorm 计算矩阵的p-范数VectorNorm 计算向量的p-范数Normalize 向量正规化NullSpace 计算矩阵的零度零空间OuterProductMatrix 两个向量的外积Permanent 方阵的不变量Pivot 矩阵元素的主元消去法PopovForm Popov 正规型QRDecomposition QR 分解RandomMatrix 构造随机矩阵RandomVector 构造随机向量Rank 计算矩阵的秩Row 返回矩阵的一个行向量序列Column 返回矩阵的一个列向量序列RowOperation 对矩阵作初等行变换ColumnOperation 对矩阵作出等列变换RowSpace 返回矩阵行空间的一组基ColumnSpace 返回矩阵列空间的一组基ScalarMatrix 构造一个单位矩阵的数量倍数ScalarVector 构造一个单位向量的数量倍数ScalarMultiply 矩阵与数的乘积MatrixScalarMultiply 计算矩阵与数的乘积VectorScalarMultiply 计算向量与数的乘积SchurForm 将方阵约化为 Schur 型SingularValues 计算矩阵的奇异值SmithForm 将矩阵约化为 Smith 正规型StronglyConnectedBlocks 计算方阵的强连通块SubMatrix 构造矩阵的子矩阵SubVector 构造向量的子向量SylvesterMatrix 构造两个多项式的 Sylvester 矩阵ToeplitzMatrix 构造 Toeplitz 矩阵Trace 计算方阵的迹Transpose 转置矩阵HermitianTranspose 共轭转置矩阵TridiagonalForm 将方阵约化为三对角型UnitVector 构造单位向量VandermondeMatrix 构造一个 Vandermonde 矩阵VectorAngle 计算两个向量的夹角ZeroMatrix 构造一个零矩阵ZeroVector 构造一个零向量Zip 将一个具有两个参数的程序作用到一对矩阵或向量上LinearAlgebra[Generic] 子函数包 [Generic] 子函数包提供作用在场,欧几里得域,积分域和环上的线性代数算法。

Maple教程

Maple教程

数学实验数学软件Maple使用教程序言一.什么是数学实验?我们都熟悉物理实验和化学实验,就是利用仪器设备,通过实验来了解物理现象、化学物质等的特性。

同样,数学实验也是要通过实验来了解数学问题的特性并解决对应的数学问题。

过去,因为实验设备和实验手段的问题,无法解决数学上的实验问题,所以,一直没有听说过数学实验这个词。

随着计算机的飞速发展,计算速度越来越快,软件功能也越来越强,许多数学问题都可以由计算机代替完成,也为我们用实验解决数学问题提供了可能。

数学实验就是以计算机为仪器,以软件为载体,通过实验解决实际中的数学问题。

二.常用的数学软件目前较流行的数学软件主要有四种:1.MathACD其优点是许多数学符号键盘化,通过键盘可以直接输入数学符号,在教学方面使用起来非常方便。

缺点是目前仅能作数值运算,符号运算功能较弱,输出界面不好。

2.Matlab优点是大型矩阵运算功能非常强,构造个人适用函数方便很方便,因此,非常适合大型工程技术中使用。

缺点是输出界面稍差,符号运算功能也显得弱一些。

不过,在这个公司购买了Maple公司的内核以后,符号运算功能已经得到了大大的加强。

再一个缺点就是这个软件太大,按现在流行的版本5.2,自身有400多兆,占硬盘空间近1个G,一般稍早些的计算机都安装部下。

我们这次没用它主要就是这个原因。

3.Mathematica其优点是结构严谨,输出界面好,计算功能强,是专业科学技术人员所喜爱的数学软件。

缺点是软件本身较大,目前流行的3.0版本有200兆;另一个缺点就是命令太长,每一个命令都要输入英文全名,因此,需要英语水平较高。

4.Maple优点是输出界面很好,与我们平常书写几乎一致;还有一个最大的优点就是它的符号运算功能特别强,这对于既要作数值运算,又要作符号运算时就显得非常方便了。

除此之外,其软件只有30兆,安装也很方便(直接拷贝就可以用)。

所以,我们把它放到学校网上直接调用。

缺点就是目前市面上买不到教材,帮助系统又是英语,为学习带来了不便。

Maple常用计算命令

Maple常用计算命令

常用计算命令版本7.0指令》Maple 《章数章1第复数1.1 虚部/返回复数型表达式的实部Re,Im - 函数绝对值abs - 复数的幅角函数argument - 返回共轭复数conjugate - 实数和复数表达式的符号函数csgn - 5 函数sign 实数和复数表达式的signum - 常数1.2 MAPLE 已知的变量名称指数常数(以自然对数为底)的根I - x^2= -1 无穷大infinity 整数函数1.3 阶乘函数!- 商/整数的余数irem, iquo - 素数测试isprime - 无整数平方的因数分解isqrfree - 最小值/数的最大值max, min - 的整数模 m 计算对mod, modp, mods - 随机数生成器rand - 重置随机数生成器randomize - 素数1.4 首一素数多项式/有限域的随机多项式Randpoly, Randprime - 个素数 i 确定第ithprime - 最小素数/确定下一个最大nextprime, prevprime - 数的进制转换1.5 基数之间的转换convert/base - 转换为二进制形式convert/binary - convert/decimal - 进制 10 转换为将双精度浮点数由一种形式转换为另一种形式convert/double - 转换为浮点数convert/float - 转换为十六进制形式convert/hex - 转换为公制单位convert/metric - 转换为八进制形式convert/octal - 数的类型检查1.6 数的类型检查函数type - 初等数学章2第初等函数2.1 确定乘积求和不确定乘积product - 指数函数exp - 确定求和不确定求和sum - 计算平方根sqrt - +, -, *, /, ^ 算术运算符乘法/值序列的加法add, mul - 三角函数2.2 反双曲函数/反三角函数arcsin, arcsinh, . - 双曲函数/三角函数sin, sinh, . - 函数2.3 LOGARITHMS 函数dilog - Dilogarithm 一般对数,常用对数/自然对数ln, log, log10 - 类型转换2.4 乘积/转换为求和convert/`+`,convert/`*` - 将求和转换为超越函数convert/hypergeom - 将弧度转换为度convert/degrees - exp, sin, cos 函数转换为trig 将convert/expsincos - 转换为指数积分convert/Ei - 函数转换为指数函数trig 将convert/exp - 转换为对数函数arctrig 将convert/ln - 转换为极坐标形式polar - 将度转换为弧度convert/radians - sin, cos, sinh, cosh 函数转换为trig 将convert/sincos - tan 函数转换为trig 将convert/tan - 将指数函数转换为三角函数和双曲函数convert/trig - 章3第求值假设功能3.1 求值3.2 对一个表达式求值Eval - 求值eval -在代数数(或者函数)域求值evala - 求值布尔表达式按照一个evalb - 在复数域上符号求值evalc - 使用浮点算法求值evalf - 用硬件浮点数算法对表达式求值evalhf - 对矩阵表达式求值evalm - 求值到一个名称evaln - 用区间算法求表达式的值和计算范围evalr, shake - 用复数区间算法对表达式求值evalrC - 求值的惰性函数value - 求根,解方程章4第数值解4.1 利用浮点数算法求解fsolve - 包含浮点数的表达式solve/floats - 最优化4.2 寻找一个表达式的相对极值extrema - 最大值/计算最小值minimize, maximize - 一个多项式无穷大范数maxnorm - 求根4.3 的表达式的所有可能值RootOfs计算含有allvalues - 次根n 第/整数的平方根isqrt, iroot - 一个多项式的实数根的隔离区间realroot - 阶根n一个代数表达式的第root - 方程根的表示RootOf- 非主根函数surd - 一个多项式对一个变量的精确根roots - 多项式在区间上的实数根数和实根序列turm, sturmseq - 解方程4.4 消去一个方程组中的某些变量eliminate - 求解方程的整数解isolve - 求解一个方程组的一个或者多个变量solvefor - 隔离一个方程左边的一个子表达式isolate - 寻找一个表达式的极点singular - 求解包含属性的表达式solve/identity - 求解不等式solve/ineqs - 求解线性方程组solve/linear - 求解含有未知量根式的方程solve/radical -标量情况(单变量和方程)solve/scalar - 求解含有一般级数的方程solve/series - 解方程组或不等式组solve/system - 操作表达式章5第处理表达式5.1 的标准型) 或者函数 (代数数Norm - 惰性幂函数Power - 带余数的惰性幂函数Powmod - 代数域的原始元素 Primfield - 求一个代数数或者函数的迹Trace - 表达式和集合的特征函数charfcn - 找一个表达式的变元Indets - 函数表的逆invfunc - 带余数的幂函数powmod - 计算一个表达式的代数余Risidue - ) 不好用tan,cot对(表达式合并combine - 表达式展开expand - 展开表达式的惰性形式Expand - 不抑制函数展开/抑制expandoff/expandon - 因式分解5.2 绝对因式分解的惰性形式Afactor - 绝对因式分解分解项列表的惰性形式Afactors - 显式度Berlekamp 因式分解的Berlekamp - 多元的多项式的因式分解factor - 多元多项式的因式分解列表factors - 的惰性形式factor 函数Factor - 的惰性形式factors 函数Factors - 多项式的完全因式分解polytools[splits] - 化简章6第 118 表达式化简6.1 给一个表达式实施化简规则simplify - 利用运算符化简表达式simplify/@ - 利用指数积分化简表达式simplify/Ei - 函数进行化简GAMMA利用simplify/GAMMA - 函数化简表达式RootOf用simplify/RootOf -的表达式标识符wronskian 化简含simplify/wronskian - 化简超越函数表达式simplify/hypergeom - 化简含有对数的表达式simplify/ln - 化简分段函数表达式simplify/piecewise - 化简含有极坐标形式的复数型表达式simplify/polar - 化简含幂次的表达式simplify/power - 化简含有根式的表达式simplify/radical - 表达式rtable 化简simplify/rtable - 使用关系式进行化简simplify/siderels - 根式化简simplify/sqrt - 函数表达式trig 化简simplify/trig - 化简含嵌入型实数和虚数的复数表达式simplify/zero - 其它化简操作6.2 函数的惰性形式Normal - normal 将一个表达式转换成不同形式convert - 标准化一个含有根号数的表达式radnormal - 分母有理化rationalize - 操作多项式章7第中的多项式简介7.0 MAPLE 提取7.1 提取一个多项式的系数coeff - 提取多元的多项式的所有系数coeffs - 多元表达式的系数coeftayl - 返回多元多项式的首项和末项系数lcoeff, tcoeff - 多项式约数和根7.2 最小公倍数/多项式的最大公约数gcd, lcm - 次根n多项式的平方根和第psqrt, proot - 商/多项式的余数rem,quo - 操纵多项式7.3 形式Horner将一个多项式转换成convert/horner - collect - 象幂次一样合并系数确定一个多项式的可能合并的项数compoly - 将级数转换成多项式形式convert/polynom - 矩阵形式Horner将多项式转换成convert/mathorner - 将级数转换成有理多项式convert/ratpoly - 将值的列表或者多项式排序sort- 不含平方项的因数分解函数sqrfree -多项式运算7.4 多项式的判别式discrim - 计算多项式的固定除数fixdiv - 多项式的标准型norm - 计算两个多项式的终结式resultant - 数和多项式bernoulli - Bernoulli 多项式近似一个函数Bernstein用bernstein - 一个多元的多项式的内容和主部content, primpart - 最低次方/一个多项式的最高次方degree, ldegree - 多项式的精确除法divide - 数和多项式euler - Euler 多项式的整数部分icontent - 多项式的插值interp - 余数pseudo 余数和稀疏pseudo 多项式的prem, sprem - 随机多项式生成器randpoly - 计算自然样条函数spline - 有理表达式章8第有理表达式简介8.0 操作有理多项式8.1 分母/返回一个表达式的分子numer,denom - 将一般的表达式处理成一个有理表达式frontend - 标准化一个有理表达式normal - 转换为部分分数形式convert/parfrac - 将浮点数转换为接近的有理数convert/rational - 重建有理函数ratrecon - 微积分章9第取极限9.1 计算极限Limit, limit - 计算方向极限limit[dir] - 多重方向极限limit[multi] - 极限的返回值limit[return] - 连续性测试9.2 寻找一个函数在实数域上的间断点discont - 用数值法寻找函数在实数域上的间断点fdiscont - 测试在一个区间上的连续性iscont -微分计算9.3 微分算子D - diff 和函数D 运算符D, diff - 微分或者偏微分diff, Diff - 运算符表达式D将含导数表达式转换为convert/D - 的形式diff(f(x),x)表达式转换为D(f)(x)将convert/diff - 由一个方程定义一个函数的微分implicitdiff - 积分计算9.4 三角和双曲积分- Si, C i … 阶梯函数/Heaviside函数Dirac, Heaviside - Dirac 指数积分Ei - 椭圆积分Elliptic - 余弦积分和辅助函数,正弦- Fresnel FresnelC, … 定积分和不定积分int, Int - 函数及其第一和第二类函数- Legendre eP, … Legendr 对数积分Li - 变量代换student[changevar] - 积分dawson - Dawson 椭球体的表面积ellipsoid - 数值积分evalf(int) - 在一个点上积分求值intat, Intat - 微分方程章10第微分方程分类10.1 求解分析器odeadvisor - ODE- 数据结构表示微分方程解的DESol - 解(PDEs)能找到的偏微分方程pdsolve 测试pdetest - 常微分方程求解10.2 (ODE) 求解常微方程dsolve - 问题ODE 求解初始条件用给定的dsolve - 用积分变换方法求解常微分方程dsolve/inttrans - 常微方程数值解dsolve/numeric - 带分段系数的常微方程求解dsolve/piecewise - 问题的级数解ODE 寻找dsolve - 方程组ODEs 求解dsolve - 求解器中测试结果是显式或者隐式类型ODE 从odetest - 偏微分方程求解10.3 的解析解 (PDEs) 寻找偏微分方程pdsolve -数值计算章11第中的数值计算环境11.1 MAPLE 数值计算Maple标准和IEEE 数据类型特殊值环境变量算法11.2 标准算法复数算法,无穷和未定义数的算法0含有数据构造器11.3 254 复数和复数构造器complex - 浮点数及其构造器- Float, … 分数及其的构造器Fraction- 整数和整数构造器integer - 简介软件包11.4 MATLAB 11.5 “”区间类型表达式12第章级数幂级数的阶数12.1 阶数项函数Order - 确定级数的截断阶数order - 常见级数展开12.2 一般的级数展开series - 级数展开taylor - Taylor 级数展开Taylor多元mtaylor - .268 级数展开poisson- Poisson 其它级数12.3 求和eulermac - Euler-Maclaurin 分段连续函数piecewise - 渐进展开asympt - 13第特殊函数章波动函数AiryAi, AiryBi- Airy 函数的实数零点AiryAiZeros, AiryBiZeros - Airy 函数Weber函数和AngerJ, WeberE - Anger 函数Hankel函数和- BesselBesselI, HankelH1, … 函数实数零点- BesselBesselJZeros, … 函数Beta - Beta k(q) 模数函数EllipticModulus - 函数Gamma完全和不完全GAMMA, lnGAMMA - 算术的几何平均数GaussAGM - Gauss 椭圆函数振幅函数和JacobiAM, ., - Jacobi 函数JacobiTheta1, JacobiTheta4 - Jacobi theta 函数Zeta的JacobiZeta- Jacobi 函数KelvinBer, KelvinBei - Kelvin 函数U函数和KummerM, - Kummer M 函数LambertW - LambertW 函数Lerch Phi一般的LerchPhi - 函数LommelS1, LommelS2 - Lommel 函数Meijer G一个修正的MeijerG - 函数Polygamma和Psi - Digamma 函数StruveH, StruveL - Struve 函数及其导数WeierstrassP - Weierstrass P 函数WhittakerM - Whittaker 函数Zeta - Zeta 误差函数,补充的误差函数和虚数误差函数- erf, … 调和函数harmonic - 广义的超越函数hypergeom -一般的pochhammer - 函数pochhammer 函数polylogarithm一般的polylog - 线性代数章14第数组(代数)中矩阵,矢量和14.1 ALGEBRA 软件包简介14.2 LINALG 14.3 数据结构(小写)matrices矩阵(矢量)vectors矢量 matrix 转换成Matrix 将数组,列表,convert/matrix - vector转换成矢量Vector 将列表,数组或convert/vector - (小写)matrix生成矩阵linalg[matrix] - (小写)vector生成矢量linalg[vector] - 惰性函数14.4 惰性行列式运算符Det -数值型矩阵的特征值和特征向量Eigenvals - 标准型Smith 和Hermite 矩阵的Hermite, Smith - 函数14.5 LinearAlgebra 定义矩阵Matrix 减矩阵/加Add 伴随矩阵Adjoint 为上三角型行阶梯矩 A ,其中 A . X = B求解BackwardSubstitute 阵带状矩阵BandMatrix 返回向量空间的一组基Basis 返回向量空间直和的一组基SumBasis 返回向量空间交的一组基IntersectionBasis Bezout 构造两个多项式的BezoutMatrix 矩阵将矩阵约化为双对角型BidiagonalForm 构造特征矩阵CharacteristicMatrix 构造矩阵的特征多项式CharacteristicPolynomial 构造一个首一(或非首一)多项式或矩阵多项式的CompanionMatrix 友矩阵(束)计算矩阵关于某范数的条件数ConditionNumber 构造常数矩阵ConstantMatrix 构造常数向量ConstantVector 构造矩阵或向量的一份复制Copy NAG 将一个CreatePermutation 主元向量转换为一个置换向量或矩阵向量的叉积CrossProduct 向量的叉积`&x` 删除矩阵的行DeleteRow 删除矩阵的列DeleteColumn 行列式Determinant 返回从矩阵中得到的向量序列Diagonal 对角矩阵构造(分块)DiagonalMatrix 行数和列数Dimension 点积DotProduct 向量的双线性形式BilinearForm 计算数值特征值制约问题的特征值或特征向EigenConditionNumbers 量的条件数计算矩阵的特征值Eigenvalues 计算矩阵的特征向量Eigenvectors比较两个向量或矩阵是否相等Equal 为下三角型行阶梯矩阵 A ,其中 A . X = B求解ForwardSubstitute 型(有理标准型) Frobenius 将一个方阵约化为FrobeniusForm 消元高斯对矩阵作GaussianElimination 对矩阵作高斯-约当消元ReducedRowEchelonForm 返回矩阵或向量运算的结果数据类型GetResultDataType 返回矩阵或向量运算的结果形状GetResultShape 旋转的矩阵Givens 构造GivensRotationMatrix 计算一个正交向量集GramSchmidt 矩阵Hankel 构造一个HankelMatrix HermiteForm 正规型 Hermite 计算一个矩阵的型Hessenberg 将一个方阵约化为上HessenbergForm 矩阵Hilbert 构造广义HilbertMatrix 反射矩阵Householder 构造HouseholderMatrix 构造一个单位矩阵IdentityMatrix 检验矩阵的正定性,负定性或不定性IsDefinite 检验矩阵是否正交IsOrthogonal 检验矩阵是否为酉矩阵IsUnitary 确定两个矩阵是否相似IsSimilar 构造约当块矩阵JordanBlockMatrix 将矩阵约化为约当型JordanForm 张量积Kronecker 构造两个矩阵的KroneckerProduct 方程的最小二乘解LeastSquares A . x = b 求解线性方程组LinearSolve 分解PLU1R 或PLU ,Cholesky计算矩阵的LUDecomposition 将一个程序映射到一个表达式上,对矩阵和向量在原位置上进行Map 处理计算两个矩阵的线性组合MatrixAdd VectorAdd 计算两个向量的线性组合 exp(A) 的矩阵指数 A 确定一个矩阵MatrixExponential F(A) 的函数A 确定方阵MatrixFunction 伪逆Moore-Penrose 计算方阵的逆或矩阵的MatrixInverse 计算两个矩阵的乘积MatrixMatrixMultiply 计算一个矩阵和一个列向量的乘积MatrixVectorMultiply 计算一个行向量和一个矩阵的乘积VectorMatrixMultiply 矩阵的幂MatrixPower 构造矩阵的最小多项式MinimalPolynomial 计算矩阵的子式Minor矩阵相乘Multiply 范数p-计算矩阵或向量的Norm 范数p-计算矩阵的MatrixNorm 范数p-计算向量的VectorNorm 向量正规化Normalize 计算矩阵的零度零空间NullSpace 两个向量的外积OuterProductMatrix 方阵的不变量Permanent 矩阵元素的主元消去法Pivot 正规型PopovFormPopov 分解QRDecomposition QR 随机矩阵构造RandomMatrix 构造随机向量RandomVector 矩阵的秩计算Rank 返回矩阵的一个行向量序列Row 返回矩阵的一个列向量序列Column 对矩阵作初等行变换RowOperation 对矩阵作出等列变换ColumnOperation 返回矩阵行空间的一组基RowSpace 返回矩阵列空间的一组基ColumnSpace 构造一个单位矩阵的数量倍数ScalarMatrix 构造一个单位向量的数量倍数ScalarVector 矩阵与数的乘积ScalarMultiply 计算矩阵与数的乘积MatrixScalarMultiply VectorScalarMultiply 计算向量与数的乘积型Schur 将方阵约化为SchurForm 计算矩阵的奇异值SingularValues 正规型 Smith 将矩阵约化为SmithForm 计算方阵的强连通块StronglyConnectedBlocks 构造矩阵的子矩阵SubMatrix 构造向量的子向量SubVector 构造两个多项式的SylvesterMatrix 矩阵Sylvester 矩阵Toeplitz 构造ToeplitzMatrix 计算方阵的迹Trace 转置矩阵Transpose 共轭转置矩阵HermitianTranspose 将方阵约化为三对角型TridiagonalForm 构造单位向量UnitVector矩阵Vandermonde 构造一个VandermondeMatrix计算两个向量的夹角VectorAngle 构造一个零矩阵ZeroMatrix 构造一个零向量ZeroVector Zip 将一个具有两个参数的程序作用到一对矩阵或向量上子函数包提供作用在[Generic] 子函数包LinearAlgebra[Generic] 域,积分域和环上的线性代数算法。

Maple计算无理数和浮点数教程

Maple计算无理数和浮点数教程

Maple计算无理数和浮点数教程Maple对有理数可以自动化简。

但是一般情况下,Maple 并不这样做。

它总是按照你的命令来工作。

尤其是在关于无理数和浮点数的计算时,更是如此。

本教程就介绍Maple计算无理数与浮点数的情况。

先看这样一个情况:在这个例子中,我们看到对于第一个输入25^(1/6),Maple并不作化简的工作(主要的原因是直接化简有可能犯错误),你必须用simplify命令强迫它化简。

但是由于25是整数,因此Maple也不会自动计算25^(1/6)的值,你需要用evalf命令来求出它的浮点值。

convert命令是一个用途广泛的函数,它主要用来在Maple的不同数据结构之间进行转换,在上面的例子中,我们用convert把一个整数表达式转换为浮点数。

在上面的计算过程中,出现了%,它的含义是上一次计算的结果。

在不同的Maple版本中,代表上一次运算结果的符号是不同的。

在Maple V Release 4以前的版本中是用"来代表上一次的运算结果,而在Maple V Release 5以后的版本中,都是用%来表示上一次计算的结果。

如果你输入的数据包含一个小数点。

那么Maple的解释器就认为这个数是浮点数,上述的计算就可以直接进行。

在这种情况下,Maple会自动的进行整数类型到浮点数类型的转换。

例如:浮点算术的位数由Maple变量Digits控制,省缺情况下,Digits的值是10。

从前面的计算可以看出浮点数在小数点后的位数不超过10。

改变Digits的值,就可以得到不同精度的浮点值。

Maple在进行浮点数计算时经常使用的函数是evalf,它的作用是计算一个表达式的浮点值。

例如:evalf过程用第二个参数来指定浮点数的精度,如果没有第二个参数,浮点数的位数由Digits决定。

Maple知道许多数学常数,例如圆周率等。

它们存储在序列constants中。

当然,你也可以定义自己的符号常数,定义的方法就是附加在constants之后。

第二部分 Maple 6软件包上机指导2

第二部分 Maple 6软件包上机指导2

第一章Maple 6基本操作§1.1 Maple 6基本操作简介1.1.1 简单数值类型Maple 6支持的简单数值类型包括整数、分数、浮点数和复数。

由数字0~9以及表示指数的e,表示复数单位的I组合而成。

不同于C、FORTAN程序语言对各种数据类型的长度限制,Maple不限制整数的大小及浮点小数点后的位数,只要内存允许,可以在Maple中计算出任意大小、任意精度的数值,缺省显示小数点后的10位有效数字,并可根据用户的需要随意调整显示位数,如> evalf(2/3);.6666666667> evalf(2/3,30); 第二个位置的“30”表示显示的有效位数.666666666666666666666666666667如果输入的是分式,Maple将自动对其进行化简,而且会精确保留其数值。

如:> 2+656/32;452对于浮点数,Maple将始终按照输入时的精度对它进行处理,而且会将计算结果同算式中小数点后有效位数最多的一个因子保持精度一致。

如:> 1.1+2.22+3.333+4.4444;11.0974在使用指数形式的表达式时,注意指数要紧跟在“E”或“e”的后边,如果分开,系统会认为是在执行加减法运算。

如:> 5e+3;5000.> 5e +3;8.> 5*e+3;5e3+> .2e-2;.002> .2e -2;-1.8进行浮点数、分数的混合运算时,Maple会以10位有效数字的浮点数作为默认的显示方式。

如:> 3.4+3/4+3^4;85.15000000对于复数,Maple会自动将虚数单位“I”显示在其应该出现的位置,而且可以通过“Re()”,“Im()”两个函数提取出复数的实部与虚部。

如:> evalf(-5^(1/3));-1.709975947> evalf((-5)^(1/3));.8549879733 1.480882610I+> Re(%),Im(%); “%”代表上一行的结果.85498797331.480882610,除了虚数单位“I”以外,Maple中还定义了其他一些数数常数,这些数数常数都是精确的,表示的意义与数学中定义的相同。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Maple计算无理数和浮点数教程
Maple对有理数可以自动化简。

但是一般情况下,Maple 并不这样做。

它总是按照你的命令来工作。

尤其是在关于无理数和浮点数的计算时,更是如此。

本教程就介绍Maple计算无理数与浮点数的情况。

先看这样一个情况:
在这个例子中,我们看到对于第一个输入25^(1/6),Maple并不作化简的工作(主要的原因是直接化简有可能犯错误),你必须用simplify命令强迫它化简。

但是由于25是整数,因此Maple也不会自动计算25^(1/6)的值,你需要用evalf命令来求出它的浮点值。

convert命令是一个用途广泛的函数,它主要用来在Maple的不同数据结构之间进行转换,在上面的例子中,我们用convert把一个整数表达式转换为浮点数。

在上面的计算过程中,出现了%,它的含义是上一次计算的结果。

在不同的Maple版本中,代表上一次运算结果的符号是不同的。

在Maple V Release 4以前的版本中是用"来代表上一次的运算结果,而在Maple V Release 5以后的版本中,都是用%来表示上一次计算的结果。

如果你输入的数据包含一个小数点。

那么Maple的解释器就认为这个数是浮点数,上述的计算就可以直接进行。

在这种情况下,Maple会自动的进行整数类型到浮点数类型的转换。

例如:
浮点算术的位数由Maple变量Digits控制,省缺情况下,Digits的值是10。

从前面的计算可以看出浮点数在小数点后的位数不超过10。

改变Digits的值,就可以得到不同精度的浮点值。

Maple在进行浮点数计算时经常使用的函数是evalf,它的作用是计算一个表达式的浮点值。

例如:
evalf过程用第二个参数来指定浮点数的精度,如果没有第二个参数,浮点数的位数由Digits决定。

Maple知道许多数学常数,例如圆周率等。

它们存储在序列constants中。

当然,你也可以定义自己的符号常数,定义的方法就是附加在constants之后。

例如:
在上面的常量中,false、true、FAIL是布尔常量,常量?是欧拉常数,定义是:
Catalan数的定义是:
以上内容向大家介绍了Maple计算无理数与浮点数的一些简单的操作,Maple可以对一些数学情景在不同的设置下进行自动识别,Maple数值计算的功能也是非常不错的。

相关文档
最新文档