maple图形制作.docx
《maple图形制作.docx》由会员分享,可在线阅读,更多相关《maple图形制作.docx(15页珍藏版)》请在冰豆网上搜索。
maple图形制作
第五章
Maple图形绘
制
图形无疑是数学中最令人着迷的部分,一些枯燥的公式可以从图形看出其美•历史
上有许多学者利用函数图形解决了学科中的许多难题
客观地说,Maple不是一种可视化的语言一它不会产生出版品质的图形.然而,它
的图形功能非常强大,足以提供更多的关于函数的信息.当然,如果需要,它的图形作适当改进即可满足出版要求.
限于篇幅,本章所有图形未作打印,读者只需在计算机上按照书中语句操作即可观其效果,更多图形功能可通过Maple帮助获得.
1二维图形制作
Maple所提供的二维绘图指令plot可以绘制二维的函数图、参数图、极坐标图、
等高线图、不等式图,等等.这些绘图指令有些已经内嵌在其核心程序里,Maple启动
with(plots)调用plots函数库
时即被装入,直接调用函数命令即可,有些则需要使用才能完成.
1.1基本二维绘图指令
plot(f(x),x=xmin..xmax);
plot(f(x),x=xmin..xmax,y=ymin..ymax);
plot([f1(x),f2(x),…],x=xmin..xmax);
plot(f(x),x=xmin..xmax,option);
其中,xmin..xmax为x的变化范围,ymin..ymax为y(即f(x))的变化范围.option选项参数主要有:
axes:
设定坐标轴的显示方式,一般有FRAME(坐标轴在图形的左边与下面)、
BOXED(坐标轴围绕图形)、NORMAL(—般方式显示)或NONE(无)
color:
设定图形所要涂的颜色(可选用也可自设)
coords:
指定绘图时所用的坐标系(笛卡尔坐标系(cartesian,默认)、极坐标系
(polar)、双极坐标系(bipolar)、logarthmic(对数坐标系)等
discont:
设定函数在不是否用线段连接起来(discont=true则不连接,默认是
discont=false)
labels:
设定坐标轴的名称(labels=[x,y],x与y分别为x与y坐标轴的名称)
linestyle:
设定所绘线条的线型(linestyle=n,n为1是实线,2为点,3为虚线,4
为虚线与点交错)
numpoints:
设定产生一个函数图形所需的最少样点
scaling:
设置x与y轴的比例(uneonstrained非约束,constrained约束,比例为1:
1)
style:
设定图形的显示样式(LINE(线形卜POINT(点)、PATCH(显示多边形与边线卜PATCHNOGRID(只显示色彩而无边界)
symbol:
设定点的格式(主要有BOX(方块)、CROSS(十字)、CIRCLE(圆形)、
POINT(点卜DIAMOND(菱形)等几项)
thickness:
设定线条的粗细(0、1、2、3几种参数,数值越大线条越粗)
tickmarks:
设定坐标轴刻度的数目(设定tickmarks=[m,n],则x轴刻度为m,y
轴为n)
title:
定义图形的标题(要用""把标题引起来)
view:
设定屏幕上图形显示的最大坐标和最小坐标,缺省是整个曲线
下面通过一些实例学习:
>plot(sin(1/x),x=-0.1..0.1,title="y=sin(1/x)",axes=normal);
>plot(1/(2*sin(x)),x=-10..10,y=-30..30);
试比较下述三图的效果:
>plot(tan(x),x=-2*Pi..2*Pi);
>plot(tan(x),x=-2*Pi..2*Pi,y=-5..5);
>plot(tan(x),x=-2*Pi..2*Pi,y=-5..5,discont=true);
(此处命令discont=true的作用是去除垂直渐近线)
>plot(sin(cos(6*x))/x,x=0..15*Pi,y=-0.6..0.5,axes=NONE);
>plot(Zeta(x),x=-3..3,y=-3..3,discont=true);
除了绘制基本的函数图之外,plot还可绘制自定义函数的图形,也可以同时绘制多个函数图.
>f:
=x->sin(x)+cos(x)A2;
plot(f(x),x=0..16);
>plot([sin(x),sin(xA2),sin(xA3/10)],x=-2*Pi..2*Pi);
利用seq指令产生一个由函数所组成的序列,并将此函数的序列赋给变量,然后将
函数序列绘于同一张图上•
>f:
=x->sin(x)+cos(x);
fs:
=seq(f(x)A(n-1)+f(x)An,n=1..4):
plot([fs],x=0..20);
>f:
=x->x*ln(xA2):
g:
=x->ln(x):
plot({f,g},0..2,-1.5..1.5);
也可以直接把seq指令放在plot里来绘出一系列的函数图.
>plot([seq(f(xF(2/n),n=1..3)],x=0..10);
1.2二维参数绘图
更多情况下,我们无法把隐函数化成显函数的形式,因而plot指令无法在二维的平
面里直接绘图•但是,在某些情况下,我们可以把平面上的曲线f(x,y)化成x=x(t),
y=y(t)的形式,其中t为参数(parameter).据此即可绘图,其命令格式如下:
plot([x(t),y(t),t=tmin..tmax]);
plot([x(t),y(t),t=tmin..tmax],xmin..xmax,y=ymin..ymax);
plot([x(t),y(t),t=tmin..tmax],scaling=CONSTRAINED);
plot([[x1(t),y1(t),t1=t1min..tlmax],[x2(t),y2(t),t2=t2min
t2max],•••]);
>plot([t*exp(t),t,t=-4..1],x=-0.5..1.5,y=-4..1);
>plot([sin(t),cos(t),t=0..2*Pi]);
>plot([sin(t),cos(t),t=0..2*Pi],scaling=CONSTRAINED);
上述两上语句都是绘制圆的命令,但由于后者指定的x、y坐标的比例为1:
1,所以
才得到了一个真正的圆,而前者由于比例不同,则像个椭圆•下面则是内摆线的图形:
>x:
=(a,b)->(a-b)*cos(t)+b*cos((a-b)*t/b);
>y:
=(a,b)->(a-b)*sin(t)-b*sin((a-b)*t/b);
当a=1,b=0.58时,(x(a,b),y(a,b))图形绘制命令为:
>plot([x(1,0.58),y(1,0.58),t=0..60*Pi],scaling=CONSTRAINED);
再作a,b取其它值时的情形:
>plot([x(2,1.2),y(2,1.2),t=0..6*Pi],scaling=CONSTRAINED);
>plot([x(2,8),y(2,8),t=0..16*Pi],scaling=CONSTRAINED);
>plot([x(2,12),y(2,12),t=0..16*Pi],scaling=CONSTRAINED);
下面再看同时绘制多个图形的情形
>plot([[cos(3*t),sin(2*t),t=0..2*Pi],[sin(t),cos(3*t),t=0..2*Pi]]);
1.3数据点绘图
如果所绘的图形是间断性的数据,而不是一个连续的函数,那么我们可以把数据点
绘在x-y坐标系中,这就是所谓的数据点绘图.其命令格式如下:
plot([[x1,y1],[x2,y2],…],style=point);
plot([[x1,y1],[x2,y2],…]);
>data1:
=seq([2*n,nA3+1],n=1..10):
plot([data1],style=point);
>data2:
=seq([n,1+(-1)An/n],n=1..15):
plot([data2],style=point,view=[0..20,0..2]);
>data3:
=seq([t*cos(t/3),t*sin(t/3)],t=1..30):
plot([data3],style=point);
1.4其它坐标系作图
由于所研究的问题的特殊性,常常需要选用不同的坐标系,在Maple中除笛卡尔坐标系(cartesian,也称平面直角坐标系,默认)外,还提供了polar(极坐标系)、
elliptic(椭圆坐标系)、bipolar(双极坐标系)、maxwell(麦克斯韦坐标系)、logarithmic(双数坐标系)等14种二维坐标系,其中最常用的是极坐标系。
设定坐标系的命令是coords.
>plot(ln(x+1F2,x=0..8*Pi,coords=polar,
scaling=CONSTRAINED,thickness=2);
>plot(sin(6*x),x=0..68*Pi,coords=polar,scaling=CONSTRAINED,
tickmarks=[3,3]);
>plot([sin(20*x),cos(sin(2*x))],x=0..2*Pi,coords=elliptic
scaling=CONSTRAINED,
color=[red,blue]);
scaling=CONSTRAINED);
scaling=CONSTRAINED);
试比较y=sin(x)在不同坐标系中的图形显示:
>plot(sin(x),x=0..2*Pi,coords=polar,scaling=CONSTRAINED);
>plot(sin(x),x=0..2*Pi,coords=bipolar,scaling=CONSTRAINED);
>plot(sin(x),x=0..2*Pi,coords=elliptic,scaling=CONSTRAINED);
>plot(sin(x),x=0..2*Pi,coords=maxwell,scaling=CONSTRAINED);
>restart:
>with(plots,polarplot):
>r:
=(n,theta)->cos(5*theta)+n*cos(theta);
r:
=(n,)cos(5)ncos()
>plot({seq([r(n,t)*cos(t),r(n,t)*sin(t),t=O..Pi],n=-5..5)});
>polarplot((exp(cos(theta))-2*cos(4*theta)+sin(theta/12)A5),theta=0..24*Pi
);
2三维绘图
2.1基本三维绘图指令
三维空间的绘图比二维空间更有变化性和趣味性,其命令函数为plot3d,可直接调
用.命令格式如下:
plot3d(f(x,y),x=xmin..xmax,y=ymin..ymax);
plot3d({f(x,y),g(x,y),…},x=xmin..xmax,y=ymin..ymax);
plot3d(f(x,y),x=xmin..xm