Maple
- 格式:ppt
- 大小:250.00 KB
- 文档页数:31
1.Maple概述什么是Maple, 怎么学习Maple?Maple软件是加拿大Waterloo大学在1980年开始开发,到现在最新的版本是Maple11, Maple具有强大的数值计算能力,图形处理能力,特别是符号计算能力。
常用的数学软件除Maple外,有Matlab等, 统计软件: SAS,SPSS,运筹学软件:Lingo, WINQSB.1. 数值计算与符号计算的区别a*x^2+b*x+c=0求这方程的跟, 来说明数值计算与符号计算的区别数值计算:切线法符号计算:Maple功能非常之强大, 不仅适合数学家, 还适合物理学家, 工程师,化学家,生物学家, 总之,它适合所有需要科学计算的人.举例:1) 求PI的前100位2) 求X的范围3) 求积分演示1.1.2界面介绍1.工具栏在Maple界面上说明2. 工作区每一个“>”是一个执行块. 表示命令提示符。
9-95 1.2基本运算能精确计算整数、有理数或者实数、复数的四则运算, 以及模算术、硬件浮点数和任意精度的浮点数甚至于矩阵的计算等等.总之, Maple可以进行任意数值计算.10-95 1.2.1数值计算问题关键符号问号(?) 帮助分号(;) 表示表达式结束,显示内容冒号(:) 表示表达式结束,不显示内容字符(\) 表示内容连续井号(#) 表示注释百分号(%) 表示上一步(I) 表示虚数单位演示11-951.2.1.2复数运算函数作用格式Re 返回实部function(co mplex)Im返回虚部conjugate 共轭复数argument 幅角abs模演示1.2.1.3数的进制转换convert 函数●b inary二进制●d ecimal 十进制●o ctal 八进制●h ex十六进制演示1.2.1.4常用函数●isprime素数isprime(n)●max/min最值max(a1,a2,…);●mod/modp/mods余a mod b; modp(a,b); mods(a,b);●rand随机数rand();rand(a..b)();14-95 1.2.1.5整数计算函数abs 求绝对值ifactor 求因子iquo 求商iquo(a,b,’r’)irem 余数irem(a,b,’q’)isqrt 近似的平方跟整数15-95 1.2.1.6精确与非精确运算在精确运算中,必须所有的数是整数或恒数(如, Pi), Maple不会对该表达式进行浮点运算.如果你想得到非精确值, 用浮点数进行该表达式计算.演示1.2.2初等函数初等数学是数学的基础之一, 也是数学中最有魅力的一部分内容. 通过下面的内容我们可以领略Maple对初等数学的驾驭能力, 也可以通过这些实验对Maple产生一些感性认识. 指数函数:exp自然函数:ln一般对数:log[a]常用对数: log101.2.2.1重要函数连乘函数: product/Product 连加函数: sum/Sum展开函数:expand合并函数:combine1.2.2.2简单函数定义Maple定义简单的函数有2种方法:•函数法:unapply(expr,vars);expr为任意表达式,vars为变量组•箭头法: (vars)->expr;expr为任意表达式,vars为变量组重要函数floorceilopnopsmap演示1.3求值1.3.1赋值在Maple中,不需要申明变量类型,直接对变量赋值,其赋值格式为.变量明:=表达式;例如:y:=5;f:=x^2+3*x+2;1.3.2变量代换在表达式化简中, 变量代换是一个得力工具. 我们可以利用函数subs根据自己的意愿进行变量代换, 最简单的调用这个函数的形式是这样的:单个变量替换subs ( x= a, expr);多个变量替换subs ( x = a,y=b, expr);调用的结果是将表达式expr中所有变量var出现的地方替换成变量的值.演示subs命令●顺序替换subs(var1=val1,var2=val2,…,expr);subs((var1=val1,var2=val2,…),expr);●同步替换subs({var1=val1,var2=val2,…},expr);演示1.3.3 假设机制解决某些问题的时候,我们必须要对其变量进行假设,格式如下:assume(x1::prop1,x2::prop2,…);assume(x1>val,x2<val);其中xi表示变量,propi表示属性,val表示值例如:sin(n*Pi),如果n是整数,这个表达式值为0assume(n::interger)演示1.3.4 求值规则●eval 命令格式:eval(e, x=a); #求表达式e在x=a处的值eval(e, vars); #对方多个变量求值●evalc #对复数求值●evalf #求浮点数●evala #对表达式或未求值函数求值●value #对惰性表达式求值1.4 数据结构●变量类型(数字,字符串,复合表达式)integer, float, list, set, exprseq,…●运算符: +, -, *, /, ^●关系表达式:=, <>, <, <=注意“>”●逻辑表达式: and, or ,not26-95 1.4.1 数据及变量类型查询●whattype(expr)其中expr是任何表达式●type(expr,t)其中expr是任何表达式,t为有效表达式1.4.2 序列,列表和集合1.4.2.1序列所谓序列(Sequence), 就是一组用逗号隔开的表达式列.如:s:=1,4,9,16,25;一个序列也可以由若干个序列复合而成s:=s,s;该值为:1,4,9,16,25,1,4,9,16,25;产生序列的函数为seq(f,i=m..n)其中f是函数,可以是i的函数,也可以不是.判断序列的函数为:nops演示1.4.2.2 列表简单的说, 就是序列加上方括号如:L:=[1,2,3,4];L1:=[[1,2,3],[2,3,4]];对序列和列表操作的函数nops:个数sort:排序op:解开操作extracts operands from an expression1.4.2.3 集合集合(set)也是把对象(元素)放在一起的数据结构, 与列表不同的是集合中不可以有相同的元素(如果有, Maple也会自动将其当作同一个元素), 另外, 集合中的元素不管次序. 用花括号表示集合.s:={x,1,1-z,x};集合的基本运算函数:交(intersect),并(union),差(minus)格式:函数(集合,集合);1.4.3 数组和表arraytableS := table([(2)=45,(4)=61]);1.4.4 数据类型的转换与合并convert 这个功能强大的类型转换函数,可以实现列表和数组的类型转换将array转换为list将array转换为set1.5 高级输入与输出操作Maple提供了良好的接口来编辑与计算数学式. 许多时候, 我们可能需要把Maple的运算结果输出到一个文件中, 或者在一个文本编辑器里先编好一个较大的Maple程序, 再将它加载到Maple的环境里.1.5.1 fprintffprintf函数是用来输出到文件中,在使用该函数前,先用fopen打开一个文件,再使用fprintf函数输出到fopen打开的文件中,最后用fclose关闭文件。
Maple简介Maple简介⼀、Maple操作界⾯介绍1、编辑功能:编辑功能中查找模块,可以帮助查找你所需要的关键字节.具体操作如图所⽰:按上述操作完成后,出现下图所⽰的对话框:在⽂本框中输⼊你要查找的字符或者符号,可以通过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的科学计算功能主要是以命令输⼊的⽅式来实现的。
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 - 表达式合并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 - 不含平方项的因数分解函数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 - 计算自然样条函数第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 - 微分算子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函数Bessel I, 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 转换成matrix convert/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中的一个重要功能,可以用来分析周期性信号的频谱特征。
傅里叶级数是一种将周期性信号分解为一系列正弦和余弦函数的方法。
它的基本思想是将一个周期为T的函数f(t)表示为一系列正弦和余弦函数的线性组合,即:f(t) = a0 + Σ(an*cos(nωt) + bn*sin(nωt))其中,a0、an、bn是待求系数,ω=2π/T是角频率,n是正整数。
这个式子被称为傅里叶级数公式。
在Maple中,可以使用FourierSeries函数来计算傅里叶级数。
例如,对于一个周期为2π的方波信号,可以使用以下代码来计算其傅里叶级数:f := piecewise(-Pi < x and x < 0, -1, 0 < x and x < Pi, 1, 0); FourierSeries(f, x = -Pi .. Pi);其中,piecewise函数用来定义方波信号的取值范围,FourierSeries 函数用来计算傅里叶级数。
运行以上代码,可以得到以下结果:1/2*Pi - 4/Pi*sin(x) + 4/(3*Pi)*sin(3*x) - 4/(5*Pi)*sin(5*x) +4/(7*Pi)*sin(7*x) - 4/(9*Pi)*sin(9*x) + 4/(11*Pi)*sin(11*x) -4/(13*Pi)*sin(13*x) + 4/(15*Pi)*sin(15*x) - 4/(17*Pi)*sin(17*x) + 4/(19*Pi)*sin(19*x) - 4/(21*Pi)*sin(21*x) + 4/(23*Pi)*sin(23*x) - 4/(25*Pi)*sin(25*x) + 4/(27*Pi)*sin(27*x) - 4/(29*Pi)*sin(29*x) + 4/(31*Pi)*sin(31*x) - 4/(33*Pi)*sin(33*x) + 4/(35*Pi)*sin(35*x) - 4/(37*Pi)*sin(37*x) + 4/(39*Pi)*sin(39*x) - 4/(41*Pi)*sin(41*x) + 4/(43*Pi)*sin(43*x) - 4/(45*Pi)*sin(45*x) + 4/(47*Pi)*sin(47*x) - 4/(49*Pi)*sin(49*x) + 4/(51*Pi)*sin(51*x) - 4/(53*Pi)*sin(53*x) + 4/(55*Pi)*sin(55*x) - 4/(57*Pi)*sin(57*x) + 4/(59*Pi)*sin(59*x) - 4/(61*Pi)*sin(61*x) + 4/(63*Pi)*sin(63*x)这个结果表示了方波信号的傅里叶级数,其中包含了无穷多个正弦函数的系数。
maple因式分解命令-回复maple因式分解命令是一种功能强大的数学软件,通过使用该命令,我们可以将多项式分解为更简单的因子。
本文将逐步介绍maple因式分解命令的用法和相关技巧,帮助读者更好地理解和应用这一命令。
首先,我们需要明确maple因式分解命令的语法和基本用法。
在maple 中,使用"factor"命令进行因式分解。
要分解一个多项式,只需在该命令后面输入待分解的多项式即可。
例如,下面的命令将分解多项式x^2 + 2x + 1:factor(x^2 + 2*x + 1)当我们在maple中输入这个命令后,系统将返回分解后的结果。
在这种情况下,分解结果是(x + 1)(x + 1),即多项式x^2 + 2x + 1可以完全分解为两个因子的乘积。
除了完全分解为因子的乘积,有时候我们可能更关注多项式的部分因式分解。
在这种情况下,我们可以使用maple的"factor"命令的扩展功能来实现。
具体来说,我们可以将分解结果保存在一个变量中,然后使用这个变量来查询多项式的部分因式。
下面的示例展示了如何执行部分因式分解:factors := factor(x^3 + 2*x^2 + x):factors;在这个示例中,我们首先使用"factor"命令将待分解的多项式x^3 +2*x^2 + x进行分解,并将分解结果保存在变量"factors"中。
然后,通过简单地输入变量"factors"来查询多项式的分解结果。
在这种情况下,系统将返回多项式(x)(x + 1)^2的部分因式。
除了基本的因式分解功能外,maple还提供了一些其他的用于处理多项式的命令和函数。
下面我们将介绍其中两个重要的命令——"expand"和"collect"。
"expand"命令用于展开一个已经因式分解的多项式。
Maple系统内置高级技术解决建模和仿真中的数学问题,包括世界上最强大的符号计算、无限精度数值计算、创新的互联网连接、强大的4GL语言等,内置超过5000个计算命令,数学和分析功能覆盖几乎所有的数学分支,如微积分、微分方程、特殊函数、线性代数、图像声音处理、统计、动力系统、等。
Maple不仅仅提供编程工具,更重要的是提供数学知识。
Maple是教授、研究员、科学家、工程师、学生们必备的科学计算工具,从简单的数字计算到高度复杂的非线性问题,Maple都可以帮助您快速、高效地解决问题。
用户通过Maple产品可以在单一的环境中完成多领域物理系统建模和仿真、符号计算、数值计算、程序设计、技术文件、报告演示、算法开发、外部程序连接等功能,满足各个层次用户的需要,从高中学生到高级研究人员。
主要技术特征强大的求解器:数学和分析软件的领导者★ 内置超过5000个符号和数值计算命令,覆盖几乎所有的数学领域,如微积分,线性代数,方程求解,积分和离散变换,概率论和数理统计,物理,图论,张量分析,微分和解析几何,金融数学,矩阵计算,线性规划,组合数学,矢量分析,抽象代数,泛函分析,数论,复分析和实分析,抽象代数,级数和积分变换,特殊函数,编码和密码理论,优化等。
★ 各种工程计算:优化,统计过程控制,灵敏度分析,动力系统设计,小波分析,信号处理,控制器设计,集总参数分析和建模,各种工程图形等。
★ 提供世界上最强大的符号计算和高性能数值计算引擎,包括世界上最强大的微分方程求解器(ODEs,PDEs,高指数DAEs)。
★ 智能自动算法选择。
★ 强大、灵活、容易使用的编程语言,让您能够开发更复杂的模型或算法。
★ 与多学科复杂系统建模和仿真平台MapleSim紧密集成。
技术文件环境:重新定义数学的使用性★ 大量易学易用的工具和特征,提供“数学版office”工作环境,用户即使没有任何语法知识也可以完成大量数学问题的计算,戏剧性缩短学习曲线。
第一章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 MathNotation). Maple语言是一种结构良好、方便实用的内建高级语言, 它的语法和Pascal或C有一定程度的相似, 但有很大差别. 它支持多种数据操作命令, 如函数、序列、集合、列表、数组、表, 还包含许多数据操作命令, 如类型检验、选择、组合等. 标准数学记法就是我们常用的数学语言.启动Maple, 会出现新建文档中的“[>”提示符, 这是Maple中可执行块的标志, 在“>”后即可输入命令, 结束用“;”(显示输出结果)或者“:”(不显示输出结果). 但是, 值得注意的是, 并不是说Maple的每一行只能执行一句命令, 而是在一个完整的可执行块中健入回车之后, Maple 会执行当前执行块中所有命令(可以是若干条命令或者是一段程序). 如果要输入的命令很长, 不能在一行输完, 可以换行输入, 此时换行命令用“shift+Enter”组合键, 而在最后一行加入结束标志“;”或“:”, 也可在非末行尾加符号“\”完成.Maple 7有4种输出方式: Maple语言、格式化文本(Character Notation)、固定格式记法(Typeset Notation)、标准数学记法(Standard Math Notation). 通常采用标准数学记法.Maple会认识一些输入的变量名称, 如希腊字母等. 为了使用方便, 现将希腊字母表罗列如下,输入时只需录入相应的英文,要输入大写希腊字母, 只需把英文首字母大写:有时候为了美观或特殊需要,可以采用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 andi^(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 andi^(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 proc ()end proc ,x y ()printf ,,"value of x =%6.4f, value of y=%6.4f"x y > niceP(2.4,2002.204);value of x=2.4000, value of y=2002.20401.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!!!;2601218943565795100204903227081043611191521875016945785727541837850835631156947382240678577958130457082619920575892247259536641565162052015873791984587740832529105244690388811884123764341191951045505346658616243271940197113909845536727278537099345629855586719369774070003700430783758997420676784016967207846280629229032107161669867260548988445514257193985499448939594496064045132362140265986193073249369770477606067680670176491669403034819961881455625195592566918830825514942947596537274845624628824234526597789737740896466553992435928786212515967483220976029505696699927284670563747137533019248313587076125412683415860129447566011455420749589952563543068288634631084965650682771552996256790845235702552186222358130016700834523443236821935793184701956510729781804354173890560727428048583995919729021726612291298420516067579036232337699453964191475175567557695392233803056825308599977441675784352815913461340394604901269542028838347101363733824484506660093348484440711931292537694657354337375724772230181534032647177531984537341478674327048457983786618703257405938924215709695994630557521063203263493209220738320923356309923267504401701760572026010829288042335606643089888710297380797578013056049576342838683057190662205291174822510536697756603029574043387983471518552602805333866357139101046336419769097397432285994219837046979109956303389604675889865795711176566670039156748153115943980043625399399731203066490601325311304719028898491856203766669164468791125249193754425845895000311561682974304641142538074897281723375955380661719801404677935614793635266265683339509760000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000上述运算结果在IBM PC 机(1G , 128M)上计算只需要0.01秒, 得到如此复杂的结果(1747位), 一个自然的问题是: 答案正确吗?为了回答这个问题, 我们借助于数值分析方法, 由Stiring 公式)exp(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 , 即:0)42)(42)(2)(2()8)(8(2233=+++--+=-+x 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;1197504873125> 123456789/987654321;13717421109739369> evalf(%); .1249999989> 10!; 100*100+1000+10+1; (100+100)*100-9;36288001101119991> big_number:=3^(3^3);:= big_number 7625597484987> length(%);13上述实验中使用了一个变量“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的余数, 将商赋给q83> q; #显示q19> iquo(2002,101,'r'); # 求2002除以101的商, 将余数赋给r19> r; #显示r83> irem(x,3);()irem ,x 32)素数判别(isprime)素数判别一直是初等数论的一个难点, 也是整数分解问题的基础. Maple 提供的isprime 命令可以判定一个整数n 是否为素数. 命令格式: isprime(n);如果判定n 可分解, 则返回false, 如果返回true, 则n “很可能”是素数.> isprime(2^(2^4)+1);true> isprime(2^(2^5)+1);false上述两个例子是一个有趣的数论难题。