一个较强的符号计算系统均有很好的绘图功能,Mathematica也不例外,Mathematica 拥有非常强大的绘图功能。并且提供了一大批基本数学函数的图形,利用这些提供的函数,用户可以方便地组合成所需要的、复杂的函数图形,所有这些都使得 Mathematica系统在处理和解决数学问题和一般的计算问题中表现得非常突出。 2.1 基本图形与图形处理的原理 首先画出一个周期正弦函数sin(x)的图象: In[1]:=Plot[Sin[x], {x, 0, 2Pi}] Out[1]=-Graphics- 其次画一个含有奇异点的函数曲线,Mathematica会选取适当的比例: In[2]:=Plot[Tan[x], {x, -3, 3}] Out[2]=-Graphics- Mathematica可以将一组函数的曲线画在一张图上: In[3]:=Plot[{Sin[x], Sin[2x], Sin[3x]}, {x, 0, 2Pi}] Out[3]=-Graphics- 当Mathematica去画函数f的图象时,为了得到光滑的曲线,系统需要计算许多点的函数值。 Mathematica中存在两种可能的方法解决这个问题。第一种方法是先设法求出函数f关于x的大致的表达式,然后按顺序计算出相应的x处的函数表达式 的值。另一方法就是,先写出各点的x值,然后顺序算出相应点x的函数值f。 如果输入Plot[Sin[x], {x, 0, 2Pi}],Mathematica使用了上面所述的第二种方法。使用这种方法的好处在于,Mathematica只需要去计算对应的x的函数值,这样它就不需要去关注当x为符号的时候所对应的函数表达式。 在有些情况下,在画出该函数的曲线之前,计算出函数f的表达式还是非常有用的,一个典型的实例是,当f 是生成一个函数表的命令,此时系统先要生成一个表,然后计算函数值。可用绘图格式Plot[Evaluate[f],{x,xmin,xmax}]来实 现。下面的例子就使用了这样的方法来绘制Bessel函数Jn(x)在n从1~4的函数图形。 In[4]:=Plot[Evaluate[Table[BesselJ[n, x], {n, 4}]], {x, 0, 11}] Out[4]=-Graphics- 对Mathematica系统的图形输出原理,各种不同的计算机和不同接口具有不同的形式。使用Mathematica系统来进行图形的输出大致可以分为三步进行: ① 执行绘图命令比如Plot得到Mathematica系统的原始图形,这些原始图形中包括图形的基本结构如Point、Line、Polygon和基本图形提示比如RGBColor,Thickness等。 ② 将图形变换成与设备无关的标准图形,使用PostScript页描述形成这种图形。 ③ 采用PostScript表示图形,并在读者所在的装置上画出。 2.2函数作图 2.2.1一元显函数(二维)作图 (1) Plot函数的介绍 若函数以显函数形式给出,即y=f(x)形式,可用Plot函数来进行作图。其格式为: 格式一:Plot[函数f, {x, xmin, xmax}, 选项] 功能:在区间{xmin,xmax}上,按选项的要求画出函数f的图形。 格式二:Plot[{函数f1, 函数f2,…}, {x, xmin, xmax}, 选项] 功能:在区间{xmin,xmax}上,按选项的要求画出函数f1、函数f2…等图形。即同时画出几个函数的图形. Mathematica绘图时允许用户设置选项值对绘制图形的细节提出各种要求。例如,要求取消坐标 轴,给图形加框线等,每个选项都有一个确定的名子,以“选项名->选项值”的形式放在Plot中最右边位置,一次可设置多个选项,选项依次排列,以 逗号相隔,若不设置选项,系统取各选项的默认值。下例是带有多个选项的绘图命令: (2) 用选项对图形进行修饰 ① 修饰曲线的样式(第一类选择项) Mathematica所提供的第一类选项用来控制图形的生成过程、控制图形元素的构造,这是比较重要的一类选项,其选项名只有一个PlotStyle,它的用法见表2-1。 表2-1 选项PlotStyle选项的取值
注意表2-1中PlotStyle选项的取值可以有若干项,这若干项构成一个表,表中的内容分别用来控制线条的粗细、虚实和色彩,若Plot同时绘出几个函数的图形,则PlotStyle取值的表中应是若干个子表,每一个控制相应的图形。 其中正弦函数Sin(2x)以灰度0.05和虚实结合的线绘出,而余弦函数的图形以红色加粗的方式绘出,在PlotStyle取值的表中,第一个子表的内容控制第一个函数的图形,第二个子表的内容控制第二个函数的图形。 PlotStyle取值是由四项内容所组成的表,但仅有前两项起作用分别控制第一个和第二个函数的图形。 ② 修饰整幅图的外观(第二类选择项) Mathematica可以通过选项改变图形的显示比例、为图形加背景、加网格、控制作图的区域及图形是否显示。有关的选项及其取值见表2-2: 表2-2 修饰图形外观的选项
③ 对坐标轴外观进行修饰(第二类选择项) 下面介绍的选项是针对坐标轴而言的,它可以确定是否显示坐标轴,坐标原点的位置,坐标轴上的刻度等。 表2-3 修饰坐标轴外观的选项
(3) 重画和组合图形 Mathematica系统对于图形的处理也是把它当成一个对象来处理的,其实这个对象也是表示生成图 形的一个表达式,所以对于画出的图形,我们可以实行再显示和组合等操作。从一般的输出图形结果中,我们看到的表达 式"Out[n]=-Graphics-",其实它是一个极为复杂的图形表达式的缩写,系统认为我们不必关心这样的表达式,所以以一个缩写来表示。虽然如 此,但系统内部还是记录了这一表达式。对于图形的重画和组合的操作,主要用到Show和GraphicsArray函数,具体用法见表2-4。 表2-4 Show和GraphicsArray函数的使用
2.2.2二维参数作图 在很多数学问题中,人们往往无法显示地表达一个函数。对于二元或三元函数,可以引入另外一个变量,其他 变量都可以表示成该变量的表达式,这样无论对数学计算、分析和作图都有不可比拟的优点。在Mathematica中,提供了绘制这样的参数方程的函数。对 于含参数的函数绘图大致也可以分为两大类,就是二维参数作图和三维参数作图。 下面是二维参数作图常用的格式,它们的区别一个作一条曲线,一个作一组曲线: 格式一:ParametricPlot[{x[t],y[t]}, {t,t0,t1}, 选项] 功能:画一个x轴,y轴为{x(t),y(t)},参变量t在[t0,t1]中的参数曲线。 格式二:ParametricPlot[{{x1[t],y1[t]}, {x2[t],y2[t]},…}, {t,t0,t1}, 选项] 功能:画一组参数曲线。 2.2.3平面数据点作图 有时需要绘出给定数据的图形,Mathematica也有直接绘出数据的图形命令,还可以使用Fortran或C等其他高级语言生成数据点作图。表2-5是数据点作图的函数及使用: 2-5 平面数据点作图
注意:二维数据点的表示形式,平面上每一个点用表{xi,yi}表示,数据点再次构成表的集合。 2.2.4平面图形元素作图 我们在前面曾经提及图形的基本元素的概念,在Mathematica的二维图形中,基本元素有点、线、矩阵以及多边形和圆等等,所有的二维图形都可以由这些基本的图形元素构成。表2-6列出基本的二维图形元素: 表2-6 二维图形元素
使用图形元素可做出复杂的图形。先用Graphics[图形元素]做出平面图形表达式,再用Show[图形表达式]显示完整的图形。注意若图形元素有多个,需用{}构成表。 2.3二元(三维)函数作图 2.3.1 二元(三维)显函数作图 前面我们讲述了一元(二维)函数作图,同样对于二元(三维)也有相应的作图方式,也分显函数作图、参数方程作图和数据点作图。下面是二元显函数的作图格式: 格式:Plot3D[f[x,y], {x,x0,x1},{y,y0,y1}, 选项] 作用:在区域 和 上,画出空间曲面f(x,y) 。 在上述例子中,并未使用该函数的可选项设置,此时系统仍然使用它默认选项进行绘图,其实在Mathematica的三维绘图中,完全可以像二维绘图时一样,控制绘图的多种选项,与二维相比三维绘图还可设置图形的色彩光照等效果,产生出栩栩如生的图形。 (1) 修饰曲面的外观 表2-7例出了常用的修饰曲面外观的选项: 表2-7 修饰曲面外观的选项
增加函数的采样点数,可使函数显示更为精确,但同时也降低了绘图的速度。Mathematica在绘图的过程中,会自动对奇异点附近作取舍,可用PlotRange不断调整作图的区域,以达到所需的目的。 Mesh和Shading及Light均用来对三维图形的表面进行处理。Mathematica系统已经对三维图的表面效果进行了自动处理,而且处理得不错,一般情况下不用作处理,你也可以对参数进行设置,达到自已理想的效果。 (2) 修饰整幅图的外观 除了修饰曲面的外观,还可修饰整幅图的外观,表2-8列出了常用的选项: 表2-8 修饰图形外观的选项
这里所介绍的选项与二维作图有关的选项用法基本上一样,读者可自行加以自己动手。 (3) 修改视点 在三维问题中,坐标系统与二维坐标系统有相似的地方,那就是关于其原点坐标与刻度坐标的区别。在二维问 题中用一个矩形来规定图形的范围,在三维问题中则使用一个长方体的盒子来限定绘图的空间。三维图形从不同的视点来观看会有“横看成岭侧成峰”的效果,所以 对于三维图形有一个视点的选择问题。可通过选项ViewPoint来设置。 表2-9 常用视点
同样的图形,从不同的角度,可以得到不同的效果,下面的例子是将本节第一个图形换了一个角度得到的效果: 2.3.2三维参数方程作图 与二维作图一样,三维参数作图函数的使用方法与二维函数参数作图非常类似。根据三维参数方程参量是一个还是二个,可以作出空间曲线或曲面。 格式一:ParametricPlot3D[{x,y,z}, {u,u0,u1},{v,v0,v1},选项] 功能:画三维参数空间曲面 。 格式二:ParametricPlot3D[{x,y,z}, {t,t0,t1},选项] 功能:画三维参数空间曲线, 。 2.3.3等值线图和密度图 在Mathematica系统中,用于绘制等值线和密度图的函数分别为ContourPlot和DensityPlot。等值线图形的一个最易理解的例子是地理上等高线的例子,等值线实际上是把物体表面上位于相同高度上的点连在一起。下面是两个函数使用的格式: 格式:ContourPlot[f[x,y],{x,xmin,xmax},{y,ymin,ymax},选项] 功能:作二元函数f(x,y) 在区域上的等值线图。 格式:DensityPlot[f[x,y],{x,xmin,xmax},{y,ymin,ymax},选项] 功能:作二元函数f(x,y)在区域上的密度图。 它们使用时还可利用选项进行设置,表2-10列出了常用的选项: 表2-10 等值线图与密度图的选项
2.3.4三维图形元素画图 同二维图形一样,三维图形在Mathematica系统中仍然由基本的图形元素构成,我们可以利用这些基本图形元素构建自已的图形。 使用三维图形元素作图步骤:先用Graphics3D[图形元素]做出图形表达式,再用Show[图形表达式]的形式显示完整的图形。 表2-11列出了常用的三维图形元素: 表2-11 三维图形元素
2.4其他特殊图形 在进行图形的处理中有很多的作图要求,比如绘制条形图、对数图、极坐标图以及一系列的动态图形。在 Mathematica中,对于各种图形都由相应的函数来进行绘制。在Mathematica中,一些具有共同特征的图形被集成在Mathematica 的标准软件包中。可打开"Help"菜单的Add-Ones选项卡的Standard Packages中的Graphics,可以看到更详细的作图函数说明和更多的实例。 Mathematica带有一个附加的图形函数软件包"Graphics"。 该软件包中所包含的主要作图函数如表2-13: 表2-143 特殊图形作图函数
|