开通VIP,畅享免费电子书等14项超值服
首页
好书
留言交流
下载APP
联系客服
2021.11.14
数学实验
数学软件Maple使用教程
序言
一.什么是数学实验?
我们都熟悉物理实验和化学实验,就是利用仪器设备,通过实验来了解物理现象、化学物质等的特性。
同样,数学实验也是要通过实验来了解数学问题的特性并解决对应的数学问题。过去,因为实验设备和实验手段的问题,无法解决数学上的实验问题,所以,一直没有听说过数学实验这个词。随着计算机的飞速发展,计算速度越来越快,软件功能也越来越强,许多数学问题都可以由计算机代替完成,也为我们用实验解决数学问题提供了可能。
数学实验就是以计算机为仪器,以软件为载体,通过实验解决实际中的数学问题。
二.常用的数学软件
目前较流行的数学软件主要有四种:
1、MathACD
其优点是许多数学符号键盘化,通过键盘可以直接输入数学符号,在教学方面使用起来非常方便。缺点是目前仅能作数值运算,符号运算功能较弱,输出界面不好。
2、Matlab
优点是大型矩阵运算功能非常强,构造个人适用函数方便很方便,因此,非常适合大型工程技术中使用。缺点是输出界面稍差,符号运算功能也显得弱一些。不过,在这个公司购买了Maple公司的内核以后,符号运算功能已经得到了大大的加强。再一个缺点就是这个软件太大,按现在流行的版本5.2,自身有400多兆,占硬盘空间近1个G,一般稍早些的计算机都安装部下。我们这次没用它主要就是这个原因。
3、Mathematica
其优点是结构严谨,输出界面好,计算功能强,是专业科学技术人员所喜爱的数学软件。缺点是软件本身较大,目前流行的3.0版本有200兆;另一个缺点就是命令太长,每一个命令都要输入英文全名,因此,需要英语水平较高。
4、Maple
优点是输出界面很好,与我们平常书写几乎一致;还有一个最大的优点就是它的符号运算功能特别强,这对于既要作数值运算,又要作符号运算时就显得非常方便了。除此之外,其软件只有30兆,安装也很方便(直接拷贝就可以用)。所以,我们把它放到学校网上直接调用。缺点就是目前市面上买不到教材,帮助系统又是英语,为学习带来了不便。因为条件的限制,其它几个软件不便于介绍,所以我们把我们对该软件的了解编写成讲义发给同学们作参考。
第一章Maple软件的安装与启动
一.Maple的安装启动
1、目前市面上出售的Maple软件一般是与其它数学软件在一张光盘上,安装时只要将光盘上Maple目录全部拷贝到硬盘上就可以了。
2.在学校网络主页通过文件下载ftp内的17cai目录,找到maple点击,将其下载到计算机上并解压,即安装完毕。
启动Maple,首先进入Maple目录下的子目录BIN,找到枫叶图标(下面有Wmaple),点击图标就可启动。也可以将该图标拷贝到桌面点击启动。
二.Maple工作面
maple工作面提示符用来输入maple命令。提示符[>左边的[号表示所要一起执行的命令区,该区的命令将按先后次序连续一次执行完。若点击工具栏中T按钮,则提示符箭头消失,变为[号,表示当前为文本输入,工具栏也出现相应的字号字体选择框;常用工具栏中(从左到右)有新建、打开、保存、打印、剪切、复制、粘贴、撤消、Maple输入转换、文体输入转换、增加命令区、撤消分组、建立分组、停止运行及三个显示比例选择x按钮。点击提示符按钮将增加一个命令区;当将几个命令区及文本输入抹黑,点击建立分组,就会将抹黑部分分在一组,并出现一个分组标志,点击标志可以打开、关闭该组;点击并排的三个x按钮控制显示比例。
三.退出工作面并保存文件
2、命令quitdonestop也可退出maple。注意!这三个退出命令不保存文件,不要随便用。
3、作业中存盘,可以用文件菜单的保存,也可以用工具栏的软盘图标保存。最好在操作一段后就保存一次,避免意外情况产生损失。
第二章基本命令
命令的执行:1.每条命令必须用“:”(执行后不显示)或“;”(执行并显示)结束,否则被认为命令没输完。2.命令区中“#”号以后为命令注释(不执行)。3.光标在命令区的任何位置回车,都会依次执行该命令区所有命令。
>2+3#没有结束符,执行后会显示警告:语句没输完
Warning,incompletestatementormissingsemicolon
>2+3;会输出执行结果
>2+3:不会输出执行结果,但结果可用作以后计算使用
寻求帮助:
1、从Help(帮助)菜单按类查找。
2、?后接命令(可以是命令的前几个字母)或help(命令)查找。
>plot#查找作图命令的帮助
>plo#plot的前三个字母
>help(plot);
3、查找命令内容
info(命令);查找函数作用usage(命令);查找调用格式
>example(plot);
4、索引查找index[索引类];
索引类:library标准函数库packages专用软件包libmisc混合函数库
statements命令expressions表示类datatypes数据类型
tables表与数组procedures过程函数misc附件
>index[function]
文件操作:Maple作业面文件以.m,.ms,.wms(windows下)后缀,这种文件只能在Maple下打开。
1、writeto(文件名),这时作业面输入的命令及执行结果都以文本形式保存到指定文件内,直到命令writeto(terminal)为止,恢复屏幕显示。中间的执行结果屏幕不显示。如果要继续写,用appendto(文件名)。
注意:1.若是已有文件,writeto为重写。2.writeto、appendto写的文件不能调入作业面。
2、Save`文件名.m`可保存作业面的变量赋值状态。用read`文件名.m`读入作业面内存。
注意:文件名要打`号,该号为键盘左上角~键。
3、保存(打开)作业面文件:
1)用菜单中File(文件)菜单点save(保存),这时出现对话框,在文件名处输入文件名,点确定即可保存文件(这时文件名后自动带后缀ms或mws)。打开则在File中点open,在对话框找到文件名确定即可。
2)用工具栏中文件夹和软盘图标打开、保存文件。
4、剪切、复制、撤消:将要剪切、复制部分涂黑,用工具栏中相应图标或用Edit菜单中cut(剪切)、copy(复制)、paste(粘贴)或用键盘Ctrl+x、Ctrl+c、Ctrl+v等完成。
界面设置:interface(选项=值)选项有ansi打印突出maple关键字echo回声errorbreak出错中断indentamountlabelling标号%1labelwidth标号宽patchlevelplotdeviceplotoptionsplotoutputpostplotpreplotprettyprint输出类型prompt提示符quiet安静screenheight屏高screenwidth屏宽showassumedterminal终端verboseprocversion版本warnlevel报警
例如:
>interface(echo=2,prompt=’#--->’);提示符变为#--->
>interface(verboseproc=2);可以查看所用函数的源程序
>print(unassign);就会显示函数(命令)unassign的源程序了
直接用运算符:
+加<=小于等于-减﹥=大于等于*乘=等于/除<>不等
^或**乘方或幂-﹥箭头算子$序列生成:=赋值符@复和or逻辑或
and逻辑与&*不可交换乘not逻辑非小数点intersect集合交
minus集合差”%前一次运行结果Limit极限(第一个字母大写为极限号)
””%%前二次运行结果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
>assume(z,real);#定义z是实数变量
赋值:y:=表达式或数;将表达式或数赋值给变量Y。
assign(”)将上一次运算结果作赋值(定义)
alias(a=b)定义a为b。当一个命令较长、使用频率较高时可用此将命令定义为一个简单符号。
>x:=3;y:=sin(x);z:=sin(u)*exp(v);
序列:1.seq(f(i),I=a..b);2.a$n;3.op([数表]);4.a,b,…;
>2$3;#生成三个2构成的序列
>h:=u,v,w,x,y,z:h[2..4];#生成序列h,并察看第二到第四个元素
>seq(i^2/3,I=1..5);
注:用nops([序列名]);求序列长度。
集合(set):花括号表示集合,内部元素无顺序。可以用并、交、差运算。
>a:={1,3,4,2,7};b:=aunion{3,5,6};aintersect{3,5,7};
>b[3..5];
>op(b);#将集合b转换为序列
列表(list):方括号表示列表,内部元素有序。可用op(a)转换为序列或{op(a)}转换集合
映射、代换、转换:map(过程名,表达式);
subs(替换值,表达式);
convert(表达式,形式)
>map(f,x+y*z);map(f{a,b,c});map(diff,x+y*z,y);
>A:=array([[1,x],[x,x^2]]);map(diff,A,x);
>f:=x^2*sin(x)/exp(x):susb(x=Pi/2,f);subs(x=Pi/4,f);
>convert(9,binary);convert($(1..10),’+’);convert($(1..10),set);
可转换类型及使用方法用:convert查询
调用软件包:with(软件包名)
软件包:plots图形包plottools图形工具包simplex线性规划(单纯形法)包
linalg线性代数包stats概率统计包student大学生包
numaapprox数值逼近combinat组合数学Detools微分方程工具
geomatry欧氏几何geom3d三维欧氏几何group群论
numtheory数论powseries幂级数projgeom射影几何
使用不同运算系统,应调入相应软件包,此时,该软件包中所有命令将被调入。调用命令用分号结束,会显示该包调入的命令,冒号结束不显示。
恢复初始状态(包括退出软件包):restart
>with(simplex):#调入为单纯形法软件包,会显示:新的最大、最小
>maximize(2*x+3*y,{x<=2,y<=4},NONNEGATIVE);
>restart:minimize(2*x+3*y,{x,y},{x=-1..2,y=-1..4});先恢复初始状态,退出单纯形法,才能求函数在一个区域的普通最大、最小值。
>maximize(x^2,{x},2..7);
>x:=2:x;restart:x;
取整运算:
round四舍五入trunc向0取整ceil向-∝取整floor向∝取整frac小数部分
>x:=23.581;y:=23.321;
>round(x),round(y);trunc(x),trunc(y);frac(x);ceil(x),ceil(y);floor(x),floor(y);
>round(-x),round(-y);trunc(-x),trunc(-y);frac(-x);ceil(-x),ceil(-y);floor(-x),floor(-y);
最大公约数(式)与最小公倍数(式):
igcd最大公约数gcd最大公约式ilcm最小公倍数lcm最小公倍式
>gcd(x^2+2*x+1,x^2-2*x-3);
第三章作图:
作图有两个软件包。(1)图形软件包,用with(plots)调入。(2)图形工具包with(plottools)
图形包)中有下列作图命令:
animate,animate3d动画changecoords改变坐标系complexplot,complexplot3d复函数图conformalcontourplotcontourplot3dcoordplotcoordplot3dcylinderplot柱坐标函数图densityplot密度图displaydisplay3d图函数显示fieldplotfieldplot3d区域图
gradplotgradplot3d梯度图implicitplotimplicitplot3d隐函数图
inequallistcontplotlistcontplot3dlistdensityplotlistplotlistplot3dloglogplotlogplotmatrixplotodeplot微分方程数值解图paretopointplotpointplot3d点图polarplot极坐标图polygonplotpolygonplot3d多边形图
polyhedraplotreplotrootlocussemilogplotsetoptionssetoptions3d作图选项设置
spacecurve空间曲线图
sparsematrixplotsphereplot球坐标图surfdatatextplottextplot3dtubeplot
工具包中有下列图形工具:
arc弧arrow箭头circle圆cone圆锥cuboid长方体curve曲线cutincutoutcylinder柱disk圆盘dodecahedron十二面ellipse椭圆ellipticArc椭圆弧hemisphere半球hexahedron六面体hyperbola双曲线icosahedron二十面体line线段octahedron八面体pieslicepoint点polygon多边形rectangle矩形semitorussphere球tetrahedron四面体torus轮
第一节二维曲线图:
一.基本命令(不需调图形包)
plot({f1(x),f2(x),…},x=a..b,选项);一元函数曲线
plot(f,a..b,选项);作过程函数图
x=a..b(中间两点)表示变量x在[a,b]区间。
后面可有如下选项:
(1)scaling坐标尺度控制,两个值CONSTRAINED和UNCONSTRAINED(等长和不等长);
(2)axes(坐标架)有四个选项frame(边上),boxed(箱),normal(正常),none(没有)
(3)coords(选坐标系)常用有polar极坐标,cylindrical柱坐标,spherical球坐标;
(4)numpoints(节点数);
(5)resolution(水平密度);
(6)color(颜色)有:黑black白white红red黄yellow兰blue绿green金gold褐brown灰gray,grey茶maroon橙orange碧绿aquamarine海兰navy桃红coral兰绿cyan土黄khaki紫红magenta粉红pink深紫plum黄褐tan天兰turquoise兰紫violet麦黄wheat红绿兰RGB色彩HUE;
(7)x(y)tickmarks(坐标刻度数)
(8)style(风格):point点,line线,patch缺补
(9)discont(连续性控制)
(10)title(标题)
(11)thickness(线粗):0,1,2,3几个值
(12)linestyle(线型):后跟数字
(13)symbol(点形状):box框,cross叉,circle圈,point点,diamond菱型
(14)font(字体):[family,style,size]
(15)titlefont(标题字体)
(16)axexfont(坐标轴记号字体)
(17)labelfont(坐标轴标号字体)
(18)view(显示部分)
>plot(x^2,x=-3..3,linestyle=20);
>plot(y-5*x,x=-5..5,linestyle=30);#函数中有Y
>plot(2*x^3-6*x,x=-2.5..2.5,style=point,symbol=box);
>plot([4*x-x^2+2,x^2,3*x+1],x=-2..5,color=[red,blue,green],linestyle=[20,20])
>f:=10*sin(x)*exp(-x^2):#先定义函数
>plot(f,x=-2..5,color=green,linestyle=20);作上函数图
>f:=x->sin(x)*exp(x):
>plot(f(x),-2..5);#用箭头(或过程)定义的函数,函数要用f(x),区间的自变量可省略
>plot([4*x-x^2+2,x^2,3*x+1],x=-2..5,color=[red,blue,green],style=point,symbol=[circle,cross]);
根据曲线图,再找交点
>plot([4*x-x^2+2,x^2],x=-2..5,color=[red,blue,green]
>solve(4*x-x^2+2=x^2,x);
二.参数方程曲线:
plot([x(t),y(t),t=t1..t2],x=a..b,y=c..d,选项);
>plot({[sin(t),cos(t),t=0..2*Pi],2*x-1},x=-2..2,y=-2..2);
三.动画曲线:
动画曲线不是基本作图命令,必需先调入图形包,才能运行。
Aninate(f(x,t),x=a..b,t=t1..t2,选项);其中t为参数
当点击动画图后,会显示动画按钮,由按钮控制动画。
>with(plots):animate(sin(t*x),x=-2*Pi..2*Pi,t=.5..4,color=1,linestyle=30);
>animate(exp(-x)-t,x=-2..2,t=-2..2,linestyle=30);
>animate({2*x^2,2*x+t},x=-2..2,t=-2..1);
>animate({x-x^3/u,sin(u*x),u*cos(4*x)},x=0..Pi/2,u=1..6,color=red);
四.极坐标
>plot([sin(4*x),x,x=0..2*Pi],coords=polar,thickness=3);
>plot([cos(t),t,t=0..2*Pi],coords=polar);
>plot([1,t,t=0..2*Pi],coords=polar,color=green);
>with(plots):animate([sin(x*t),x,x=-4..4],t=1..4,coords=polar,numpoints=100,frames=100);
>with(plots):s:=t->100/(100+(t-Pi/2)^8):r:=t->s(t)*(2-sin(7*t)-cos(30*t)/2):
>animate([u*r(t)/2,t,t=-Pi/2..3/2*Pi],u=1..2,coords=polar,axes=frame,color=green);
注:如果函数由f:=proc(x)定义或由f:=x->定义,作图由plot(f)或plot(f,a..b)或plot(f(x),x=a..b)
五.多边形及填色:polygon([顶点坐标],颜色)要调用图形工具包
曲边梯形面积:y=sin(x),y=0,x=π/2所围图形面积。
>x:=seq([i*Pi/100,sin(i*Pi/100)],i=0..50):#将图形分成小曲边梯形,并计算顶点坐标
>with(plots):with(plottools):p:=polygon([x,[Pi/2,0]],color=red):#作多边形填红色
>display(p);
六.隐函数图:implicitplot(方程,范围,选项);
注:二元方程为平面曲线,没有等号默认为等于0
>with(plots):implicitplot(x^2/4+y^2=1,x=-2..2,y=-2..2);
>implicitplot(x^2/4+y^2=1,x=-2..2,y=-2..2,scaling=CONSTRAINED);
>implicitplot(
第二节三维图形:
一.曲面图:plot3d(二元函数,x范围,y范围,选项);后面为选项如前
>plot3d(x^2+y^2,x=-2..2,y=-2..2,color=0.1);
>plot3d((1.3)^x*sin(y),x=-1..2*Pi,y=0..Pi,coords=spherical,style=patch);
>plot3d([1,x,y],x=0..2*Pi,y=0..2*Pi,coords=toroidal(10),scaling=constrained);
>plot3d(sin(x*y),x=-Pi..Pi,y=-Pi..Pi,style=contour);
二.动画图animate3d(函数,自变量范围,参数范围,…);
用with(plots)先调入图形包。
>with(plots):
>animate3d(t*((x)^2+y^2),x=-3..3,y=-3..3,t=-1..1);
>animate(sin(t*x),x=-Pi..Pi,t=0..4);
三.三维曲线图:plot3d([x(t),y(t),z(t)],t=t1..t2],z=z1..z2,选项);
>plot3d([cos(t),sin(t),t],t=0..3*Pi,z=a..b);
四.参数方程曲面图:plot3d([f(x,y),g(x,y),h(x,y)],x=a..b,y=c..d,选项);
>plot3d([r*cos(t),r*sin(t),r],r=0..3,t=0..2*Pi);#圆锥
五.隐函数图:implicitplot3d(三元方程,x=a..b,y=c..d,z=z1..z2,选项);
>with(plots):implicitplot3d(x^2/4+y^2=z,x=-2..2,y=-2..2,z=0..3);#椭圆抛物面
第三节数据图
一.散点图:plot([[x1,y1],[x2,y2],……[xn,yn]],style=point)
>plot([[1,4],[3,7],[3,13],[4,5]],color=green,style=point):
二.数据连线图:plot([[x1,y1],[x2,y2],……[xn,yn]]);
或定义图函数:curves([[x1,y1],[x2,y2],……[xn,yn]]);用display显示
>plot([[1,4],[3,7],[3,13],[4,5]],color=green):
>with(plottools):l:=curve([[1,4],[3,7],[3,13],[4,5]],color=blue):with(plots):display(l);
三.多边形:plot([[x1,y1],[x2,y2],……[xn,yn],[x1.y1]]);
或定义图函数:ploygons([[x1,y1],[x2,y2],……[xn,yn]]);用display显示
>plot([[1,4],[3,7],[3,13],[1,4]],color=green):
>p:=polygon([[1,4],[3,7],[3,13]],color=green):
>with(plottools):display(p);
四.大写plot命令作数据图
图函数:点points,线curves,多边形polygons,文字text等,也必须大写
>PLOT(POLYGONS([[1,4],[3,7],[3,13]]),COLOUR(HUE,0.2));
>PLOT(CURVES([[0,0],[1,1],[2,1]]),COLOUR(HUE,0.5));
>PLOT(POINTS([1,1],[2,3],[3,2]),COLOUR(HUE,1.5));
第四章微积分
第一节函数:
一.基本初等函数:绝对值abs、开方sqrt、以e为底指数exp、log、ln、log10、sin、cos、tan、cot、sec、csc、反三角arc、双曲sh,ch,th,cth、反双曲arc等。
>sin(5);exp(1);
二.定义函数:
(1)赋值法f:=数或表达式;(后赋值将替换以前的赋值,加单引号表示符号变量)
(2)箭头算子法f:=x->表达式、f::=(x,y)->表达式;
(3)过程f:=proc(x)if条件then式1elif条件then式2……else式nfiend定义分段函数,这里x是过程带的参数。(这样定义的分段函数不能求极限、导数积分,但可以作为maple中命令)
(4)转换法unapply(表达式,自变量),将表达式转换为箭头算子函数
(5)定义分段函数f:=piecewise(条件1,表达试1,条件2,表达试2,……)
或f:=x->piecewise(条件1,表达试1,条件2,表达试2,……)
这样定义的分段函数可以求极限、导数、积分等运算。其中piesewise为分段函数命令。
(1)形式定义的函数需定义自变量值,才能计算函数值,或用subs(x=a,f)计算x=a点函数值;(2)(3)(4)形式定义函数可以用f(a)或f(a,b)计算x=a点函数值。
函数可以用assume(0 >y:=x^2-5*x+3;y(3);subs(x=3,y);diff(y,x);subs(x=8,”); >y:=x->x^2-5*x+3;y(3); >f:=unapply(sqrt(x^2+y^2),x,y);f(3,4); >p:=proc(x)ifx>1thenx^2-1else2*(1-x)fiend:p(2); 三.函数运算(加、减、乘、除、复合、展开、合并、化简) >f:=x->ln(x)+1:g:=y->y^2: >h:=g@f@g:h(exp(2));h:=f@@4:h(z);h:=f+g:h(z);h:=f-g:h(z);h:=f*g-f/g:h(z);#其中@号为复合运算号,@@则为连续复合 >expand(sin(x+y));#展开 >combine(”);#合并 >simplify(表达式);#化简 注:函数复合运算必须是箭头算子、过程、转换法定义的函数 第二节极限: limit(f(x),极限点,选项)Limit为极限号(可用value看值) 选项有:左left、右right,省略则为普通极限 注:不能对过程函数直接计算。 一.x=a点极限limit(f(x),x=a) >Limit((x-sin(x))/x^3,x=0)=limit((x-sin(x))/x^3,x=0); >Limit(exp(1/x),x=0)=limit(exp(1/x),x=0); >Limit(exp(1/x),x=0,left)=limit(exp(1/x),x=0,left); >Limit(exp(1/x),x=0,right)=limit(exp(1/x),x=0,right); >Limit(exp(x)-x)^(1/x):”=value(”); 二.x趋向无穷极限limit(f(x),x=infinity) >Limit((x^2-3*x+2)/(5*x^2-4),x=infinity)=limit((x^2-3*x+2)/(5*x^2-4),x=infinity); >Limit(x^sin(x),x=0)=limit(x^sin(x),x=0); >Limit((x^2-3*x+2)/(5*x-4),x=infinity)=limit((x^2-3*x+2)/(5*x-4),x=infinity);