maple绘图汇总.docx

上传人:b****7 文档编号:23533129 上传时间:2023-05-18 格式:DOCX 页数:39 大小:600.08KB
下载 相关 举报
maple绘图汇总.docx_第1页
第1页 / 共39页
maple绘图汇总.docx_第2页
第2页 / 共39页
maple绘图汇总.docx_第3页
第3页 / 共39页
maple绘图汇总.docx_第4页
第4页 / 共39页
maple绘图汇总.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

maple绘图汇总.docx

《maple绘图汇总.docx》由会员分享,可在线阅读,更多相关《maple绘图汇总.docx(39页珍藏版)》请在冰豆网上搜索。

maple绘图汇总.docx

maple绘图汇总

和别的语言不同,当我们利用Maple进行二维或者三维绘图时,Maple可以自动地决定所需的点数、坐标轴的位置、标尺的数字、图形的颜色等等繁杂的设置,在默认状态下就可以绘制出令人满意的图形。

当然,你也可以自己设定各种不同的绘图设置,比如更改绘图的坐标系(以画出极坐标、球坐标、或柱坐标下的图形),或者绘图的点数。

下面,我们就由浅入深地介绍Maple中的绘图方法。

6.1二维基本图形绘制

在Maple中,单变量函数曲线的绘制可以使用函数plot。

例如,我们需要绘制函数

在区间[-2,2]上的图形,我们可以这样来实现。

首先用箭头操作符定义函数:

然后,调用plot函数。

键入命令后,所绘制的图形会立即出现在同一个可执行块中。

MapleVRelease5也支持把图形单独绘制在一个窗口中,如图6.1所示,只需要在菜单Option|PlotDisplay选择Window即可。

一般地,函数plot的调用格式为plot(f,a..b,options)。

其中,f是需要绘制的函数,a..b是自变量的变化范围,options是可选参数,用它可以控制图形的绘制,我们将在下一节中详细介绍。

除了可以绘制函数的图形外,plot也可以绘制表达式表示的函数图形,调用格式为plot(expr,x=a..b,options)。

其中,expr是表达式(相信读者一定知道表达式和函数间的区别了),x是表达式中的自变量,因为表达式中没有自变量的信息(甚至可以是多变量的表达式),所以必须指定自变量,并用等式形式给出自变量的变化范围。

图6.1在窗口中绘图

这些基本的绘图功能,Maple和其他的树脂绘图工具(比如Matlab、Origin等)并没有什么区别。

但是,作为符号代数系统,Maple具有其更为强大的功能,它甚至可以在无穷区间上绘图。

例如,我们希望在整个实数轴上绘制上面的函数f的图形:

显然,现在的x轴并不具有均匀的标尺(否则我们将什么也看不到)。

为了显示所有实数轴上的图形,Maple作了一个映射,它将整个实数轴映射到(-1,1)区间上。

这个映射可以近似地表示为

我们可以用Maple在整个实数域上绘制这个映射函数,得到的结果接近于一条直线,可见,Maple绘图中使用的从(–∞,∞)到(-1,1)的映射和这个表达式相近。

在Maple中,可以同时绘制几个图形,也就是把几个函数图形绘制在同一张图上。

对于每一个不同的函数或表达式,Maple会自动地选择一种不同的颜色来绘制图形,以加以区别。

绘制多个函数的plot的用法和前面的相近,只是第一个参数是一个函数或表达式的集合(用一对花括弧“{}”括起来)。

Maple的绘图不仅可以在屏幕上进行,还可以输出到不同的设备。

例如,可以输出到打印机文件——PostScript格式的描述文件。

它可以用来直接打印,也可以插入到其他支持PostScript格式的程序中去,例如TEX。

用以上的形式调用interface函数后,图形便会以PostScript格式输出到文件名为plotfile的文件中去了。

如果需要将图形输出重新定向为默认的格式,可以用plotfile=default或者plotfile=inline为参数调用interface。

6.2plot函数的可选参数

在默认情况下,Maple的plot函数会自动地选择各种绘图参数。

例如,它可以自动选择绘图的区间,采样点数,标尺的刻度等等。

Maple选择这些参数的依据是,使最常用的图形绘制尽可能简单易行,而且具有可以认可的质量。

当然,为了绘制某些特殊要求的图形,我们也可以人为地确定这些绘图参数。

我们已经知道,对于单变量函数曲线的绘制,plot的第二个参数是横坐标(自变量)的取值范围;如果要限制纵坐标的取值范围,就需要在调用plot时将它作为第三个参数。

在上面这个例子中,我们在自变量取值区间(-6,6)上绘制表达式

的图像,而且设定了纵坐标的范围[0,1],这样,图像在[0,1]以外的部分就被切除了。

通常情况下这一参数好像并没有必要,但有的时候,函数在我们关心的区域内有奇点,或者有远大于其他地方函数值的极值点。

这时在使用默认的参数绘图,就会得到一些具有“尖峰”的函数图形,而其他地方的函数特征都被掩盖掉了。

比如我们要绘制正切函数的图像,在默认情况下得到的曲线是这样的:

为了得到可以恰当地反映函数特征的曲线,这时就必须限制纵坐标的显示区间。

比如对于正切函数的图像,我们在[-10,10]的纵坐标范围中对其进行绘制,得到的曲线就比较令人满意:

关于绘图的比例问题,默认情况下,Maple自动调整横纵坐标的比例,使横纵坐标上的最值都可以被正常显示(如果函数在给定区间里有最值的话)。

这样,横纵坐标的显示比例往往是不相同的,如果要使横纵坐标以相同的比例显示,可以加入控制参数scaling=constrained。

如果所要绘制的函数具有单变量的子程序形式,那么第二个参数可以略写为自变量的取值范围,而无须指定自变量名称,如前例中正切函数的曲线绘制所示。

这样,横纵坐标上都只有刻度,而没有名称。

如果在限制取值范围的同时,还指定了自变量和函数名称,那么坐标轴上也将分别标上它们的名称。

而且,在plot中,我们还可以指定图像的标题,只需要在plot中加入可选参数title=标题,当然标题当中一般都含有特殊字符,例如空格、括弧等等,所以需要用反向撇号“``”将它括起来(也可以用一对双引号括起来,作为字符串)。

在上面的例子中,我们还使用了两个附加参数,xtickmarks=8和ytickmarks=4,它们分别指定了横、纵坐标上刻度值的个数。

上面这种绘图方法,一气呵成,把所有要加的东西都一次加上,这样当然方便;但有时我们需要逐步的在图像中加入各种元素,然后一同显示。

这时,我们可以把图形对象赋值给一个变量(这个变量的类型是函数型的)。

把我们需要的图形元素依次赋给不同的变量,然后调用plots工具包中的函数display就可以将它们显示在一张图上了。

我们还可以用textplot在图形的任意位置进行标注。

plots[textplot]函数的第一个参数是一个有序表的集合,其中每个有序表表示一个标注。

有序表由三个元素组成,前两个表示标注点的坐标,第三个是需要标注的数值、变量或者字符串(不管什么类型,输出时都会转换成为字符串输出)。

plots[textplot]的第二个参数align=t是可选参数,它确定标注的字符串相对于给定坐标的对齐方式,其中t可以是BELOW,RIGHT,ABOVE,LEFT中的一个或几个的集合,在默认情况下,plots[textplot]将字符串的中心位置和给定坐标对齐。

plots[display]函数可以用来显示图形对象,它可以显示一个图形或者几个图形的集合。

在绘图时,Maple首先计算曲线上的一些点的坐标(点的个数可以用参数“numpoints=点数”人为地设定),然后,在默认情况下,Maple用直线段把这些离散的点连成一条曲线。

但有时需要绘制离散的点构成的图形,可以设置参数style=point(默认情况下为style=line)。

对于多边形,还可以将绘图方式style设成为patch,这时绘制的是经过填充的多边形。

在用point方式绘制曲线时,Maple会用一些以函数点为圆心的小圆圈来绘图,例如:

除了绘制函数或者表达式的曲线外,plot还可以用于对给定的离散数据绘图,这时同样也可以选择point的绘图方式。

例如,我们要在图上绘制前9个素数,可以把这9个素数及其序号组成的有序表作为第一个参数传给plot:

用已知数据绘图往往用在图形不能够显式地写成解析表达式的情况,比如在下面这个例子中,我们需要绘制以1.0为初值对余弦函数进行迭代的图形。

首先,需要生成一个点的有序表:

[[1.0,cos(1.0)],[cos(1.0),cos(1.0)],[cos(1.0),cos(cos(1.0))],[cos(cos(1.0)),cos(cos(1.0))],[cos(cos(1.0)),cos(cos(cos(1.0)))],…]。

这样的有序表,最简便的生成方法是利用函数符合操作符@:

这里,trunc函数是向下取整函数,它是用来获得cos的复合次数的;而cos@@(num)则表示cos函数复合运算num次。

得到了这些数据对之后,就可以绘制图形了,为了使整个迭代过程更加清楚,我们同时还要绘制两个函数的图形——y=x和y=cos(x)。

我们将它们分别保存在不同的变量中。

由于图形是分别绘制的,所以Maple不对它们取不同的颜色;为了加以区别,我们用colour参数设置绘图的颜色。

Maple中对于常用的颜色都有相应的名称,请参考再线帮助plot,colour。

最后,我们用plots工具包中的函数display绘制这些图形,并且加上标题。

6.3二维图形对象的结构

为了能清楚地知道Maple绘图的可靠性,我们必须了解它的绘图机制。

Maple中的绘图是分两步走的:

其一,计算出所有的绘图点,再将它存入到图形对象——PLOT中;其二,在屏幕或者其他输出设备中进行图形的绘制。

在这一小节中,我们把介绍的重点放在第一步中。

Maple的图形对象实际上是一个函数调用,plot函数实际上就是生成了一个这样的函数——PLOT。

PLOT函数有多个参数,分别确定了绘图所需的点的坐标,绘图的方式,坐标轴的模式等等。

我们也可以直接调用PLOT函数生成图形对象,例如,可以画一个一致三个顶点的三角形:

我们提供了该函数的部分参数——CURVES(…)和AXESSTYLE(…),分别表示曲线的点,坐标轴的模式。

其余的参数,例如COLOUR(绘图的颜色)、VIEW(绘图范围)、AXESTICKS(标尺刻度)等,Maple都自动选择了默认的情况。

那用plot函数所生成的图形对象是不是和它有所不同呢?

作为例子,我们来看一看函数

的图像在Maple中的结构。

(由于点的数据过多,在这里予以省略)

不难发现,除了特殊的绘图要求需要有较多参数外,这个数据结构和前面的是相同的。

在Maple中只要再次输入它,就可以得到它所表示的图形:

调用绘图函数plot时,Maple首先对表达式或函数求值,然后在采样点上求它的数值结果。

为了提高运算速度,Maple在这里使用的是硬件浮点(详见第一章)。

为了提高图形的质量,Maple在选择采样点的时候采用的是逐步求精的方法。

首先,计算绘图区间中几乎等距的49个采样点上的函数值;然后,Maple会检验这些点之间的连续程度,检验时用的算法很好理解,想象这些点依次用直线段相连,相邻的两条直线段之间会形成一定的夹角,如果夹角过大,也就是在这里的连续性不好,Maple会适当增加附近的采样点数,以提高图形的质量。

但作为一个成熟的计算机软件,Maple决不会无限制地把采样点数增加下去。

图形的最高分辨率由选项resolution确定,resolution的默认值是200。

也就是说,默认情况下,采样点数总是介于49~200之间。

实际上,在上一个例子的图形中,Maple已经在局部增加了采样点数。

这在完整的图形上几乎看不出来。

但是可以利用plots工具包中的函数replot将图形在局部放大,就可以清楚地看到这一点——图形的许多个采样点之间间距不同(如下图所示),这就是利用了上面的逐步求精算法的结果。

但有时,对于一些局部连续性不是太好的函数,Maple自动取的采样点仍不能使我们满意。

例如,表达式

在区间(-5,5)上的图像:

这时,人为地增加采样点数,可以提高图形的质量。

采样点数可以在plot函数中用参数“numpoints=预定的采样点数”给出。

前面我们所作的绘图参数的改变,都是对于单个图形对象而言的,如果需要改变默认的绘图参数,可以调用函数setoptions。

6.4特殊二维图形的绘制

6.4.1参数曲线的绘制

在Maple中,对于笛卡尔系下的参数曲线

调用plot函数的标准格式是plot([f(t),g(t),t=a..b],options),其中a..b是绘图的范围,options是可选参数,它的可选参数和绘制一般平面图形式相同的。

作为例子,我们来画一条平面螺线:

当所需绘制的图形是用函数而非表达式给定时,就不能再给定它的自变量了,例如:

6.4.2极坐标下的绘图

Maple的极坐标绘图和二维参数曲线的绘制极其相似,函数调用格式相同,所不同的是需要增加一个控制参数coords=polar,极坐标绘图的一般格式为:

plot([r(t),φ(t),t=t0..t1],coords=polar,options)。

其中r(t)和φ(t)分别是向径和辐角的函数。

例如,我们用它在极坐标下绘制蜗线(cochleoid):

绘制极坐标图形,不仅可以通过在plot中加参数的方法实现,还可以直接调用plots工具包中的函数polarplot,它的调用格式和输出结果都是和上面的调用相同的。

作为例子,我们来看一个有趣的图形,它看起来有点像Maple的商标图案——一片枫叶。

6.4.3平面代数曲线的绘制

在Maple的plots工具包中,还有一个函数implicitplot,利用它可以绘制用一个二元方程隐式定义的二维平面曲线。

例如:

在Maple内部,这样的隐函数f(x,y)=0的图形被视为一个空间曲面(由方程所定义的二维函数f(x,y))和z平面的交线,函数implicitplot的算法就是基于这一点的。

由于求交算法会用到二维曲面的梯度,所以这一算法在函数的奇点附近,也就是

的点附近,会遇到无法逾越的障碍。

最典型的一个例子是由方程:

所定义的曲线,它有两个奇点,(0,0)和(0,1)。

即使试用很高的分辨率(用grid参数设置),implicitplot仍然不能正确地画出它的图形,而且计算所需的时间和资源是令人无法忍受的。

这个算例是在Pentium200上进行的,它运行了将近两分钟,还占据了20M的内存(可以在窗口的状态条上看出)。

然而,得到的图形还是不理想,尤其在原点附近。

所以,我们不能过分依赖于Maple的implicitplot;如果可以将表达式写成显式的或者参数形式的,就不要直接用隐式表达式画图。

例如,上面这个例子就可以在极坐标中写成为显式的表达式。

有了显式表达式,就可以用polarplot在极坐标中绘制图形了:

相比之下,这个图形比前面的要好得多,而且绘图速度也有极大的提高。

6.4.4对数坐标下的绘图

在Maple的plots工具包中,还有对数坐标下的绘图函数logplot和双对数坐标下的绘图函数loglogplot。

它们的用法都和plot类似,也都可以用于绘制表达式,函数和离散数据。

在这里,就不一一详细介绍了,以一个简单的例子来说明它们的使用。

对数坐标绘图往往用在数据处理上,因为在对数坐标上可以看出函数的指数关系。

作为例子,我们用统计工具包中的随机函数random生成一组具有正态扰动的数据。

然后,用logplot来绘制图形:

双对数坐标绘图函数loglogplot的使用也与此类似,这里不再赘述。

6.4.5共形映射的图形绘制

Maple的绘图工具包plots中还有一个共形映射(保角变换,conformalmapping)的绘图函数conformal。

它可以绘制复平面上的一个矩形区域经过给定变换后的图形,还可以在中间绘制网格。

作为例子,我们来看一个常用的变换ez,它把复平面上一个矩形区域映射成一个半环形的区域。

可以用conformal获得变换后的网格图形:

6.5二维绘图的注意事项

6.5.1图形走样

前面曾经说过,Maple在绘图是采用的是逐步求精的算法,逐渐增加采样点数。

但它仅仅在采样点明显不足时——也就是图形不连续时才增加采样点数。

这样,有时难免会损失绘图的局部精度。

因为根据采样定理,采样率必须高于最高频率的两倍,否则会发生频率混淆。

而如果Maple第一次采样就低于最高频率,而且因为频率混淆是图形呈现出虚假的“连续”,这时走样就难于避免了。

例如,我们用默认采样点数绘制x+sin(2πx)在区间(0,50)上的图形,就会损失大部分的局部细节:

当然,这里我们知道图形的本来面目,所以发生了走样可以察觉;但有时并也不清楚所绘制图形的特征,这时就需要格外小心,必要时可以适当增加采样点数(用numpoints作为附加参数)。

6.5.2常见的错误

对于用plot(f(x),x=xmin..xmax)形式调用的函数f的图形绘制,Maple首先把f(x)化成为x的表达式,然后才对其进行数值计算。

在一般情况下,这样的调用是不会有问题的,但如果f是一个分段函数,或者数值函数,这样的调用就会发生问题。

例如下面这个分段函数:

因为函数中有分支结构存在,Maple不能把它化成为符号表达式,所以无法继续进行下去。

解决这个问题的方法之一是在它外面加上单引号——延迟它的求值:

不过,对于单变量函数,最方便的方法还是用函数名的直接调用:

plot(f,xmin..xmax)。

6.6基本三维图形的绘制

在Maple中,绘制由二元函数确定的三维空间中的曲面,和绘制一元函数的图形同样方便,只需要调用plot3d,并且确定变量的范围就可以了。

例如,绘制曲面cos(x,y)在-3

上面的命令是以下的标准调用格式的一个例子。

一般地,对于二元函数或者表达式f(x,y),绘制它所确定的曲面,plot3d的调用格式如下:

plot3d(f(x,y),x=a..b,y=c..d,options);

其中,a..b和c..d分别是自变量x和y的绘图取值范围,而options是可选参数,它指定绘图的选项,对它的详细介绍将在下一节中进行。

和plot一样,plot3d也有函数的调用形式。

对于函数f确定的曲面,标准调用形式为:

plot3d(f,a..b,c..d,options);

下面,我们再用函数形式的调用绘制前面的图形,而且在调用时提供了一些绘图参数:

6.7三维绘图的选项

如同二维绘图一样,三维绘图也有许多的选项,使用户能够自定输出图形的形式。

所有这些选项,都可以通过在plot3d中附加绘图参数实现。

在MapleVRelease5forWindows中,也可以用鼠标选中绘制好的图形,然后在窗口的菜单中相应的选项中进行改动;在图形上单击鼠标右键弹出的菜单中也可作相同的改动。

在这一节中,我们将对于常用的绘图选项分别加以介绍。

6.7.1style选项

style选项决定着图形的样式,可以在函数调用中用“style=样式名称”指定,也可以在菜单Style中选择相应的样式。

对于三维绘图,默认的样式是PATCH,也就是经过填充后的曲面图形。

对于三维曲面,它表现为有一些四边形的小面片组成的近似曲面。

对于其他的绘图样式,我们列表加以说明:

表6.1三维图形的样式

样式名称

对应的菜单项

对应的样式

PATCH

Patch

填充后的面片

PATCHNOGRID

Patchw/ogird

无线框的填充面图

PATCHCONTOUR

Patchandcontour

带等高线的填充面图

POINT

Point

离散点图

WIREFRAME

或LINE

Wireframe

线框图

HIDDEN

Hiddenline

消隐后的线框图

CONTOUR

Contour

等高线图

在菜单Style下,还可以设置点、线的样式,线宽,和网格形状,分别对应着菜单项Symbol,LineStyle,LineWidth,GridStyle。

其中,点的样式和线的样式分别在绘制点图和线图时才会起作用。

6.7.2着色选项

在Maple的曲面图形中,着色方式可以用“shading=着色方式”在调用plot3d时加入;对于已经绘制好的图形,也可以在菜单Color中选择。

着色方式的含义,及对应的菜单项请见下表:

表6.2三维图形的着色方式

着色方式

对应的菜单项

方式的具体含义

XYZ

XYZ

对X+Y+Z相等的点采用相同的色彩

XY

XY

对X+Y相等的点采用相同的色彩

Z

Z

根据高度(Z)不同着色(红蓝色)

ZGREYSCALE

Z(Grayscale)

根据高度(Z)用灰度着色

ZHUE

Z(Hue)

根据高度(Z)用全彩色着色

NONE

NoColoring

不着色

注:

shading=NONE和style=PATCH联合使用可以生成单色的线框图。

6.7.3坐标轴选项

使用axes选项或者菜单Axes可以确定绘图时坐标轴的绘制方式。

Maple中有四种坐标轴绘制方式:

BOXED,NORMAL,FRAME,NONE。

对于三维图形,默认的选项是NONE,也就是不绘制坐标轴。

BOXED是绘制框式的坐标轴,将图形绘制在一个立方体框中;NORMAL是通常我们在数学中使用的坐标轴,它绘制于图形的中部,接近原点的地方,但对于三维图形,这样的坐标轴会影响图形的显示。

一般而言,FRAME是比较好的选择,它只在图形边缘绘制坐标轴,完全不影响图形本身。

视线

0y

x

θ

图6.1空间朝向的确定

6.7.4

空间朝向和投影

在Maple中,三维图形的空间朝向是用视线和空间笛卡尔坐标系的两个夹角θ和φ确定的,如图6.2所示。

可以在调用plot3d时用选项orientation=[θ,φ]设置。

角θ控制着图形在水平方向的转动,而角φ控制着图形的俯仰角度,φ越大,视线相对于图形就越低。

φ=90(度)时,就意味着从水平方向观察图形。

图形的朝向控制没有菜单选项,但是可以利用鼠标直接进行调整。

只需在图形上按住鼠标左键,朝所需转动的方向拖动,图形的朝向就会相应地改变,操作十分方便。

6.7.5透视投影

三维空间的图形,要显示在平面上,必须采用一定的投影方式。

在Maple中,我们可以用绘图选项projection确定图形的投影方式。

Projection必须设定成一个介于0和1之间的数值,数值的大小表示视点距离物体的远近,0表示非常贴近被观察物体,绘图的效果类似于鱼眼镜头的摄影效果,透视效果非常明显;1表示距离被观察物体无穷远,也就是平行投影,没有透视效果。

Maple中有三个预设的投影效果FISHEYE,NORMAL,ORTHOGONAL,分别对应着取0,0.5,1的情况。

在菜单Projection中也有相应的选项NoPerspective(无透视),NearPerspective(近距透视),MediumPerspective(中距透视),FarPerspective(远透视)对应着不同的投影方式。

为了体会不同投影方式的效果,我们来看同一个曲面在不同透视距离时的图形(注意图形朝向也就是视角并未发生改变):

(a)无透视(NoPerspective)(b)近距透视(NearPerspective)

(c)中距透视(MediumPerspective)(d)远透视(FarPerspective)

图6.2曲面的不同透视效果

6.7.6网格大小

和二维绘图不同,在三维绘图中Maple没有相应的逐步求精采样算

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 育儿知识

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1