第2讲 在Mathematica中作图

   一个较强的符号计算系统均有很好的绘图功能,Mathematica也不例外,Mathematica 拥有非常强大的绘图功能。并且提供了一大批基本数学函数的图形,利用这些提供的函数,用户可以方便地组合成所需要的、复杂的函数图形,所有这些都使得 Mathematica系统在处理和解决数学问题和一般的计算问题中表现得非常突出。

2.1 基本图形与图形处理的原理
    首先画出一个周期正弦函数sin(x)的图象:

In[1]:=Plot[Sin[x],
{x, 0, 2Pi}]
     Mathematica作图-LMLPHP
    Out[1]=-Graphics-

其次画一个含有奇异点的函数曲线,Mathematica会选取适当的比例:

In[2]:=Plot[Tan[x],
{x, -3, 3}]
     Mathematica作图-LMLPHP
    Out[2]=-Graphics-

Mathematica可以将一组函数的曲线画在一张图上:

In[3]:=Plot[{Sin[x],
Sin[2x], Sin[3x]}, {x, 0, 2Pi}]
    Mathematica作图-LMLPHP
    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}]
    Mathematica作图-LMLPHP
    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选项的取值
Mathematica作图-LMLPHP
    注意表2-1中PlotStyle选项的取值可以有若干项,这若干项构成一个表,表中的内容分别用来控制线条的粗细、虚实和色彩,若Plot同时绘出几个函数的图形,则PlotStyle取值的表中应是若干个子表,每一个控制相应的图形。

其中正弦函数Sin(2x)以灰度0.05和虚实结合的线绘出,而余弦函数的图形以红色加粗的方式绘出,在PlotStyle取值的表中,第一个子表的内容控制第一个函数的图形,第二个子表的内容控制第二个函数的图形。

PlotStyle取值是由四项内容所组成的表,但仅有前两项起作用分别控制第一个和第二个函数的图形。


修饰整幅图的外观(第二类选择项)
    Mathematica可以通过选项改变图形的显示比例、为图形加背景、加网格、控制作图的区域及图形是否显示。有关的选项及其取值见表2-2:

表2-2
修饰图形外观的选项
Mathematica作图-LMLPHP
    ③
对坐标轴外观进行修饰(第二类选择项)
    下面介绍的选项是针对坐标轴而言的,它可以确定是否显示坐标轴,坐标原点的位置,坐标轴上的刻度等。

表2-3 修饰坐标轴外观的选项
Mathematica作图-LMLPHP
    (3)
重画和组合图形
    Mathematica系统对于图形的处理也是把它当成一个对象来处理的,其实这个对象也是表示生成图
形的一个表达式,所以对于画出的图形,我们可以实行再显示和组合等操作。从一般的输出图形结果中,我们看到的表达
式"Out[n]=-Graphics-",其实它是一个极为复杂的图形表达式的缩写,系统认为我们不必关心这样的表达式,所以以一个缩写来表示。虽然如
此,但系统内部还是记录了这一表达式。对于图形的重画和组合的操作,主要用到Show和GraphicsArray函数,具体用法见表2-4。

表2-4
Show和GraphicsArray函数的使用
Mathematica作图-LMLPHP
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
平面数据点作图
Mathematica作图-LMLPHP
    注意:二维数据点的表示形式,平面上每一个点用表{xi,yi}表示,数据点再次构成表的集合。

2.2.4平面图形元素作图
    我们在前面曾经提及图形的基本元素的概念,在Mathematica的二维图形中,基本元素有点、线、矩阵以及多边形和圆等等,所有的二维图形都可以由这些基本的图形元素构成。表2-6列出基本的二维图形元素:

表2-6
二维图形元素
Mathematica作图-LMLPHP
    使用图形元素可做出复杂的图形。先用Graphics[图形元素]做出平面图形表达式,再用Show[图形表达式]显示完整的图形。注意若图形元素有多个,需用{}构成表。

2.3二元(三维)函数作图
    2.3.1
二元(三维)显函数作图
    前面我们讲述了一元(二维)函数作图,同样对于二元(三维)也有相应的作图方式,也分显函数作图、参数方程作图和数据点作图。下面是二元显函数的作图格式:

格式:Plot3D[f[x,y],
{x,x0,x1},{y,y0,y1}, 选项]
    作用:在区域Mathematica作图-LMLPHPMathematica作图-LMLPHP上,画出空间曲面f(x,y) 。
    在上述例子中,并未使用该函数的可选项设置,此时系统仍然使用它默认选项进行绘图,其实在Mathematica的三维绘图中,完全可以像二维绘图时一样,控制绘图的多种选项,与二维相比三维绘图还可设置图形的色彩光照等效果,产生出栩栩如生的图形。

(1)
修饰曲面的外观
    表2-7例出了常用的修饰曲面外观的选项:

表2-7
修饰曲面外观的选项
Mathematica作图-LMLPHP
    增加函数的采样点数,可使函数显示更为精确,但同时也降低了绘图的速度。Mathematica在绘图的过程中,会自动对奇异点附近作取舍,可用PlotRange不断调整作图的区域,以达到所需的目的。

Mesh和Shading及Light均用来对三维图形的表面进行处理。Mathematica系统已经对三维图的表面效果进行了自动处理,而且处理得不错,一般情况下不用作处理,你也可以对参数进行设置,达到自已理想的效果。

(2)
修饰整幅图的外观
    除了修饰曲面的外观,还可修饰整幅图的外观,表2-8列出了常用的选项:

表2-8
修饰图形外观的选项
Mathematica作图-LMLPHP
    这里所介绍的选项与二维作图有关的选项用法基本上一样,读者可自行加以自己动手。

(3)
修改视点
    在三维问题中,坐标系统与二维坐标系统有相似的地方,那就是关于其原点坐标与刻度坐标的区别。在二维问
题中用一个矩形来规定图形的范围,在三维问题中则使用一个长方体的盒子来限定绘图的空间。三维图形从不同的视点来观看会有“横看成岭侧成峰”的效果,所以
对于三维图形有一个视点的选择问题。可通过选项ViewPoint来设置。

表2-9
常用视点
Mathematica作图-LMLPHP
    同样的图形,从不同的角度,可以得到不同的效果,下面的例子是将本节第一个图形换了一个角度得到的效果:

2.3.2三维参数方程作图
    与二维作图一样,三维参数作图函数的使用方法与二维函数参数作图非常类似。根据三维参数方程参量是一个还是二个,可以作出空间曲线或曲面。

格式一:ParametricPlot3D[{x,y,z},
{u,u0,u1},{v,v0,v1},选项]
    功能:画三维参数空间曲面Mathematica作图-LMLPHP
    格式二:ParametricPlot3D[{x,y,z},
{t,t0,t1},选项]
    功能:画三维参数空间曲线,Mathematica作图-LMLPHP
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
等值线图与密度图的选项
Mathematica作图-LMLPHP
2.3.4三维图形元素画图
    同二维图形一样,三维图形在Mathematica系统中仍然由基本的图形元素构成,我们可以利用这些基本图形元素构建自已的图形。

使用三维图形元素作图步骤:先用Graphics3D[图形元素]做出图形表达式,再用Show[图形表达式]的形式显示完整的图形。

表2-11列出了常用的三维图形元素:

表2-11
三维图形元素
Mathematica作图-LMLPHP
2.4其他特殊图形
    在进行图形的处理中有很多的作图要求,比如绘制条形图、对数图、极坐标图以及一系列的动态图形。在
Mathematica中,对于各种图形都由相应的函数来进行绘制。在Mathematica中,一些具有共同特征的图形被集成在Mathematica
的标准软件包中。可打开"Help"菜单的Add-Ones选项卡的Standard
Packages中的Graphics,可以看到更详细的作图函数说明和更多的实例。

Mathematica带有一个附加的图形函数软件包"Graphics"。
该软件包中所包含的主要作图函数如表2-13:
    表2-143
特殊图形作图函数
Mathematica作图-LMLPHP

05-16 05:16