第四章 Maple 简介 第一节 Maple 概述 第二节 Maple 的简单应用
第一节 Maple 概述 一、主要功能 二、安装、启动与退出 三、界面简介 四、基本操作
一、主要功能 Maple的主要功能包括计算功能(符号计算、数值处理、二维与三维作图)和编辑功能等两方面
二、安装、启动与退出 1. 软件的安装 2. 软件的启动与退出
三、界面简介
四、基本操作 1. 基本运算符 2. 变量与函数 3. 工具栏(Palettes)的使用 4. 帮助系统的使用 加、减、乘、除和乘方的符号+、-、*、/ 和^ 在运算过程中加注释, 用符号“#”起始就行了 2. 变量与函数 Maple本身定义的函数的第一个字母小写,函数的变量用圆括号() 3. 工具栏(Palettes)的使用 4. 帮助系统的使用
第二节 Maple 的简单应用 一、算术运算 二、函数运算 三、初等代数运算 四、微积分运算 五、线性代数运算 六、作图
一、算术运算 1. 数值表示和计算 2. 整数运算 3. 内部常数 4. 小数划为分数运算 5. 复数运算
1. 数值表示和计算 evalf(expr) expr的计算结果含有机器的默认位的数字 1. 数值表示和计算 evalf(expr) expr的计算结果含有机器的默认位的数字 evalf(expr,n) expr的计算结果含n位数字 Digits 查看数值的默认位数 Digits:=n 将数值的默认位数设定为n
2. 整数运算 ifactor(n) 将整数n分解为素数的乘积 igcd(m,n,k,…) 求m,n,k, 的最大公约数 2. 整数运算 ifactor(n) 将整数n分解为素数的乘积 igcd(m,n,k,…) 求m,n,k, 的最大公约数 ilcm(m,n,k,…) 求m,n,k, 的最小公倍数 ithprime(n) 给出第n个素数 isprime(n) 判定n是(True)否(False)为素数factorial(n)或n! 计算n阶阶乘 rand(m..n) 随机产生在m与n间的整数 irem(m,n) 计算m/n的余数 iquo(m,n) 计算m/n的商
3. 内部常数 Pi表示圆周率π I表示纯虚数 自然对数的底用exp(1)表示 角的单位度数是deg 无穷大为infinity.
4. 小数划为分数运算 convert(x,rational) 将实数(有理数)x转换为精确分数 4. 小数划为分数运算 convert(x,rational) 将实数(有理数)x转换为精确分数 convert(x,rational,n) 将实数(无理数)x转换为分子与分母非零数码的个数和为n的分数
5. 复数运算 z = a + b*I 复数z的代数表示,a, b为实数 Re(z)求复数z的实部 Im(z)求复数z的虚部 abs(z)求复数z的模长或绝对值 argument(z)求复数z的幅角(在-π和π之间) Conjugate(z)求复数z的共轭复数 evalc(expr)完成表达式expr的复数运算
二、函数运算 1. 变量 2. Maple的自定义函数 3. 定义函数
1. 变量 变量的赋值方式是:变量 := 值 变量的第一个字母不能是数字 1. 变量 变量的赋值方式是:变量 := 值 变量的第一个字母不能是数字 指令assigned(x) 用于查看变量x是否被赋值,若被赋值,返回true, 否则false 百分号%的用法: % 指上一步的运算结果 %%%(n个%)指前倒数第n步的运算结果
2. Maple的自定义函数 sqrt(x) 平方根函数 exp(x), ln(x) 指数函数和自然对数函数 log[b](x) 以b为底的对数函数 Abs(x) 绝对值函数 round(x) 最接近x的整数rand ()12位的随机数 Max(a,b,c,),min(a,b,c,) a, b, c, 中的最大(小)数 floor(x) 不大于x的最大整数 ceil(x) 不小于x的最小整数 trunc(x) x靠近0的整数部分 frac(x) x的分数部分(=x-trunc(x))signum(x)符号函数
3. 定义函数 定义函数的基本方式是: “函数名 := 变量 - > 变量的表达式” 另一种方式: 3. 定义函数 定义函数的基本方式是: “函数名 := 变量 - > 变量的表达式” 另一种方式: 定义表达式p := x2 + sin x 然后使用指令:函数名 := unapply(p,x) 定义分段函数的指令: piecewise 清除变量赋值和自定义函数的指令: 变量名:=’变量名’ 或 函数名:= ’函数名’. 清除所有自定义变量和函数的指令: restart
三、初等代数运算 1. 不同形式代数表达式之间的转换 2. 有理化分母和部分分式 3. 解方程 4. 解不等式
1. 不同形式代数表达式之间的转换 expand(expr) 乘出expr所有乘积和幂(简称展开) factor(expr) 将expr分解成因子的乘积 normal(expr) 消去分子和分母的公因子 simplify(expr) 做一系列变换使得expr具有最简形式 collect(expr, x) 给出expr按照x方幂展开的形式
2. 有理化分母和部分分式 rationalize(expr) 有理化根式分式的分母 convert(f, parfrac, x) 将f按x化为部分分式 convert(f, parfrac, x, K) 将f在K上按x化为部分分式
3. 解方程 solve(eqn, x) 对方程eqn求解x subs(x=soln,eqn)验证解soln满足方程eqn solve({eqn1,eqn2,…}, {x,y,…}) 对未知数x, y,… 求解方程组eqn1, eqn2, … fsolve(eqn, x, a .. b) 对方程eqn在a与b之间求解x
4. 解不等式 Maple用指令solve解不等式,不等号为: <=(小于等于) >=(大于等于) <(小于) >(大宇) <>(不等于)
四、微积分运算 1. 极限运算 2. 求导运算 3. 积分运算 4. 级数 5. 微分方程
1. 极限运算 Limit(f(x), x = a ) 求表达式f(x)当x趋于a时的极限 Limit(f(x), x=a, dir ) 1. 极限运算 Limit(f(x), x = a ) 求表达式f(x)当x趋于a时的极限 Limit(f(x), x=a, dir ) 求表达式f(x)当x沿方向dir趋于a时的极限 Limit(f(x,y,…),{x=a,y=b}) 求表达式f(x, y,…)当x,y,…分别趋于a、b,…时的极限
2. 求导运算 (1) 普通求导 (2) 复合函数和隐函数的求导
(1) 普通求导 diff(f(x), x) 求f(x)对x的导数 diff(f(x,y, …), x, y, …) 求f(x,y, …)对x, y, …的导数 diff(f(x), x$n) 求f(x)对x的n阶导数 diff(f(x,y, …), x$m, y$n,…) 求f(x,y, …)对x的 m阶, 对y 的n阶, …的导数 D(f) 求一元函数f的一阶导函数 D[1, 2, …](f) 求多元函数f对第一个变量一次,第二个变量一次,…的导函数 (D@@n)(f) 求一元函数f的n阶导函数 D[1$m, 2$n, …](f) 求多元函数f对第一个变量m次,第二个变量n次,…的导函数
(2) 复合函数和隐函数的求导 f@g 函数f与g的复合函数 implicitdiff(f, y, x) 求由方程f定义的隐函数y对x的导数 implicitdiff(f, y, x1,...,xk) 求由方程f定义的隐函数y对x1,...,xk的导数 implicitdiff({f1,...,fm},{y1,...,yn},u, x1,...,xk ) 求由方程f1,...,fm定义的隐函数y1,...,yn 中的某个u对x1,...,xk的导数 implicitdiff({f1,...,fm},{y1,...,yn},{u1,...,ur}, x1,...,xk) 求由方程f1,...,fm 定义的隐函数y1,...,yn 中的某r个 u1,...,ur对x1,...,xk的导数
3. 积分运算 int(expr, x) 求expr对于x的不定积分 3. 积分运算 int(expr, x) 求expr对于x的不定积分 int(expr, x=a..b, ...) 求expr对于x由a到b的定积分, …为选项 changevar(s, f, u) 对积分f作变量替换s, u为新的积分变量 intparts(f, u) 对积分f作分部积分, u为在udv中选择的u
4. 级数 Sum(f, k= m..n)求和式 Product(f, k= m..n)连乘式 series(expr, x=a, n) 求出表达式expr在a点次数至n的幂级数展开式 convert(series,polynom) 去除幂级数的余项而留下多项式
5. 微分方程 dsolve(ode) 求解常微分方程 5. 微分方程 dsolve(ode) 求解常微分方程 odedsolve({ode,ics}, y(x), option)求解常微分方程ode满足初值条件ics的解(option为选项) odeadvisor(ode)给出常微分方程ode类型和求解方法的建议
五、线性代数运算 加载程序包LinearAlgebra 1. 向量和矩阵的输入和运算 2. 向量的其他运算 3. 矩阵的其他运算 1. 向量和矩阵的输入和运算 2. 向量的其他运算 3. 矩阵的其他运算 4. 求解线性方程组 5. 矩阵的特征值和特征向量
1. 向量和矩阵的输入和运算 v := <a1, a2, …, ak> 定义k维列向量 1. 向量和矩阵的输入和运算 v := <a1, a2, …, ak> 定义k维列向量 vv := <a1 | a2 | … | ak> 定义k维行向量v M:=<<a11, …, ak1>|…|<a1n, …, akn>> 定义kΧn维矩阵M M:=Matrix([[a11,…,ak1],…,[a1n, …, akn]]) 定义kΧn维矩阵M Add(U, V, a, b) 计算向量或矩阵U和V的线性组合aU+bV Multiply(U,V) 计算向量或矩阵U和V的乘积UV
2. 向量的其他运算 CrossProduct(U, V)计算两个三维向量的叉积 DotProduct(U, V)计算两个相同维数向量的点积 2. 向量的其他运算 CrossProduct(U, V)计算两个三维向量的叉积 DotProduct(U, V)计算两个相同维数向量的点积 VectorAngle(U, V)计算两个相同维数向量间的夹角 VectorNorm(U, 2)计算向量U的欧氏长度
3. 矩阵的其他运算 Determinant(A)计算方阵A的行列式 Transpose(A)计算矩阵、向量或数值A的转置 3. 矩阵的其他运算 Determinant(A)计算方阵A的行列式 Transpose(A)计算矩阵、向量或数值A的转置 Rank(A)计算矩阵A的秩 MatrixInverse(A)计算方阵A的逆矩阵
4. 求解线性方程组 RowSpace(A)给出矩阵A的行空间的一个基 ColumnSpace(A)给出矩阵A的列空间的一个基 4. 求解线性方程组 RowSpace(A)给出矩阵A的行空间的一个基 ColumnSpace(A)给出矩阵A的列空间的一个基 NullSpace(A)计算以A为系数矩阵的齐次方程解(零子空间)的基础解系 LinearSolve(A, B)求解线性方程组Ax=B
5. 矩阵的特征值和特征根 Eigenvalues(A) 计算方阵A的特征值 Eigenvectors(A) 计算方阵A的特征向量
六、作图 1. 二维作图 2. 三维作图 3. 动画
1. 二维作图 (1) 基本指令形式 (2) 作图选项
(1) 基本指令形式 plot(f, h, v,...)作函数f的图象,h为自变量范围,v为函数值范围,… 为选项 plot([x(t),y(t),t=a..b],h,v,…) 作参数曲线x=x(t), y=y(t)图象,h为水平范围,v为垂直范围,… 为选项 plot([r(t),theta(t),t=a..b] ),h,v,coords=polar) 在极坐标中作参数曲线r=r(t), θ=θ(t)图象,h为水平范围,v为垂直范围,… 为选项
(2) 作图选项 选项 设置格式 取值范围 说明 adaptive adaptive= true 还有false 自适应,取消 axes axes=normal frame, boxed, normal, none 坐标轴设置,四种 axesfont axesfont=[family,style,size] 参看plot,options 设置刻度线标号字形 color color=n 参看plot,color 设置图象颜色 coords coords=name polar (极坐标)参看plot[coords] 选择作图所用坐标系
(2) 作图选项(续1) 选项 设置格式 取值范围 说明 discont discont=false 还有true 是否在间断点用垂直线连接 filled filled=false 是否在图象和x轴之间填充 font font=[family,style,size ] 参看plot,options 设置图象中文字部分的字形 labels labels=[x,y] 标记坐标轴 labeldirections labeldirections=[x,y] horizontal, vertical 设置坐标轴的方向
(2) 作图选项(续2) 选项 设置格式 取值范围 说明 Labelfont labelfont=[family,style,size ] 设置坐标轴标记的字形 legend legend=s s是元素与曲线条数相同的表 加入图例 linestyle linestyle=1 1-4对应实线,点线,虚线和点划线 设置图象线的类型 numpoints numpoints =50 正整数 设置作图区间的分点数
(2) 作图选项(续3) 选项 设置格式 取值范围 说明 resolution resolution=200 正整数 设置图象的水平分辨率 sample sample =[x1,..,xk] 自变量的取值 选定作图是必须取的点 scaling scaling=unconstrained constrained x轴与y轴单位的比 style, style=line point, 参看plot,options 设置图象点之间的连接方式 symbol symbol=point box, cross, circle 设置图象中点的类型
(2) 作图选项(续3) 选项 设置格式 取值范围 说明 symbolsize symbolsize=10 正整数,单位:吋/72 设置图象中点的大小 thickness thickness=0 1, 2, 3 设置图象中线的厚度 tickmarks tickmarks =[m,n] 正整数或default 设置图象中坐标轴标号个数 title title =”…\n…” \n用作题目中的换行 作图象标题
(2) 作图选项(续4) 选项 设置格式 取值范围 说明 titlefont titlefont[family,style,size ] 参看plot,options 设置图象标题文字字形 view view =[x1..x2, y1 ..y2] 设置图象坐标选取范围 xtickmarks xtickmarks =n 正整数 设置横坐标轴标号个数
2. 三维作图 (1) 三维作图的基本指令 (2) 作等高线图和密度图的指令
(1) 三维作图的基本指令 plot3d(f(x,y), x=a..b, y=c..d) 作函数z=f(x,y)在[a, b]×[c,d]上的图象 plot3d([f(s,t), g(s,t), h(s,t)], s=a..b, t=c..d) 作参数曲面x=f(s,t), y=g(s,t), z=h(s,t) plot3d(f(x,y), x=a..b, y=c..d, coords=spherical) 在球坐标中作图象r=f(θ,φ)(θ∈[0, 2π],φ∈[0,π]) plot3d(f(x,y), x=a..b, y=c..d, coords=cylindrical) 在柱坐标中作图象z=f(r,θ) plot3d([f(s,t), g(s,t), h(s,t)], s=a..b, t=c..d, coords= spherical)) 作球坐标,参数曲面r=f(s,t),θ=g(s,t),φ=h(s,t) spacecurve(L,…)作空间曲线L(可以是多条)
(2) 作等高线图和密度图的指令 加载程序包plots contourplot(f(x,y),x=a..b,y=c..d)作函数f(x,y)的在[a, b] × [c,d]上的等高线图 contourplot([f(s,t), g(s,t), h(s,t) ],s=a..b,t=c..d)作参数曲面x=f(s,t), y=g(s,t), z=h(s,t) 的等高线图 contourplot3d(f(x,y),x=a..b,y=c..d)在三维空间作函数f(x,y)的在[a, b]×[c,d]上的等高线图 contourplot3d([f(s,t), g(s,t), h(s,t)],s=a..b,t=c..d)在三维空间作参数曲面x=f(s,t), y=g(s,t), z=h(s,t) 的等高线图 densityplot(f(x,y),x=a..b,y=c..d)作函数f(x,y)的在[a, b] × [c,d]上的密度图
3. 动画 加载程序包plots animate(F(x,t), x=a..b, t=c..d,...)对t有c至d制作动画{F(x,t), x=a..b} display(animate)显示各幅二维动画 animate3d(F(x,y, t),x=a..b,y=c..d,t=p..q )对t由p至q制作动画{F(x,y,t), t=p..q} display3d(animate3d)显示各幅三维动画