计算强档Mathmatica 刘知海 1998年 第44期 15版   Mathmatica是由美国Wolfram公司研究开发的一个数学软件,它提供了与Mathcad和Mathlab这两个著名数学软件同样强大的功能,能够完成符号运算、数学图形绘制甚至动画制作等多种操作。但与它们相比,Mathmatica显得小巧得多。以Mathmatica 2.2.1版(Alpha版)为例,安装盘只有四张1.44M的软盘,完全安装之后仅占不到14M的硬盘空间。它是由美国物理学家Stephen Wolfram领导的一个小组开发的,后来他们成立了Wolfram公司。1987年1.0版诞生之后,Mathmatica又于1989年和1991年相继推出1.2、2.0版。1993年推出的2.2版,已在世界上广为流传,得到一致好评。据统计报告显示,现在仅在美国就有十几万人经常性地使用该软件,用它解决研究和工程计算领域中的问题。   Mathmatica的基本系统主要是用C语言开发的,因而可以比较容易地移植到各种平台上。Wolfram公司已把这个系统移植到了许多工作站和某些大型机上,例如SUN工作站、DEC工作站及SGI的工作站等等。在PC机上有MS-DOS386版本(无需387数学协处理器)和MS-DOS386/387版本(可在486和带387数学协处理器的386上运行)。另外还有FOR Windows的版本和用于苹果公司Macintosh PC机的版本。   Mathmatica是一个交互式的计算系统(见^441501a^),计算是在用户和Mathmatica互相交换、传递信息数据的过程中完成的。Mathmatica系统所接受的命令都被称作表达式,系统在接受了一个表达式之后就对它进行处理(这个处理的过程叫做对表达式求值),然后再把计算结果返回。   下面以2.2.1 Alpha版为例,对其主要功能作一个简单介绍: #1  一、文件功能(File)   (1)New——新建文件,缺省类型为Mathmatica系统的Notebook文件(*.MA)。   (2)Open/Import——打开或输入文件,其类型除了系统内部的Notebook文件(*.MA)和软件包文件Packages(*.M)以外,还支持Text(*.TXT),Metafiles(*.WMF),Placeable Metafiles(*.WMF),Bitmaps(*.BMP),Device Independent Bitmaps(*.BMP),Macpaints (*.MAC)等。   (3)Save As/Export——与open操作支持的文件相同,   (4)Print——打印设置。 #1  二、细胞功能(Cell)   用户在主界面内输入数据或表达式时,窗口右侧会出现一个蓝色的右方括号,它与其左边的内容被统称为细胞(Cell),用户对细胞的操作就是对细胞所包含的全部表达式的操作。用户在对表达式进行计算之前,必须将细胞激活,其方法是把鼠标放在表达式右边的蓝色方括号上,当鼠标指针变成“(〈—”这样的符号时,单击鼠标左键,蓝色方括号被填充为黑色,此时细胞处于被激活状态。   (1)Formatted——对细胞进行格式化(标准化)操作。如果细胞已经被标准化了,那么该菜单项前会显示一个复选钩。用户输入的文本和表达式往往是非标准化的,而Mathmatica系统输出的内容则是标准化的。非标准化细胞的内容属于一般的文本内容,可以进行编辑,而一个标准化细胞的内容则不能进行编辑。对于数学公式和PostScript图形来说,将细胞格式化将是有用的。   (2)Inactive——使细胞处于非激活状态。用户也可以用单击窗口内细胞外的任何一个位置以使细胞处于非激活状态。   (3)Locked——锁定符号。一旦符号(或表达式)被锁定,那么在此之前被指定的一切属性(如写保护、读保护等等)将不能再改变。锁定本身也是符号的属性之一。   (4)Initialization——初始化细胞。初始化是细胞的属性。用户可以通过这个命令指定或者取消细胞的这一属性。当一个包含有已经初始化了的细胞的Notebook文件被打开时,系统会询问是否计算所有已初始化过的细胞。用户可以在“选项(Options)”菜单中的“操作(Action)”选项中作设置,使系统在打开文件时自动计算或者不计算初始化细胞。   (5)Group Cells——创建细胞组。该命令在选择的所有细胞括号之外再加上一个大括号,使之成为一个细胞组。对细胞组的操作就是对其包含的所有细胞的操作。双击组细胞括号可以展开或收起细胞组。   (6)Ungroup Cells——取消细胞组。选择组细胞括号,然后执行该命令即可取消细胞组。   (7)Divide Cell——分割细胞。该命令可以将所选取的细胞的部分内容分离出来,另外生成一个细胞。   (8)Merge Cells——合并细胞。该命令可以将所选细胞合并成一个细胞。   (9)Open All Subgroups——Mathmatica允许生成多重细胞组。该命令可以展开所有的子细胞组。   (10)Close All Subgroups——收起所有的子细胞组。   (11)Open/Close Group——展开或收起细胞组。   (12)Evaluation Group——对选定细胞组中的所有细胞进行计算。 #1  三、编辑功能(Edit)   Mathmatica提供了Windows的标准编辑功能,另外还有几个特殊的编辑工具:   (1)Clear——清除细胞中的内容。   (2)Paste and Discard——粘贴并清除剪贴板的内容。   (3)Auto Paste——自动粘贴。如果用户选择了这一命令,而且在使用其他应用程序的时候,同时又运行了Mathmatica,则在该应用程序中所拷贝和剪贴的内容将被传送到剪贴板中并自动粘贴到Mathmatica文件的光标所在处。 #1  四、图形功能(Graph)   (1)Render PostScript——对PostScript图形进行着色处理。   (2)Play sound——播放声音。Mathmatica提供对以时间为变量的声音函数的支持。   (3)Make Standard Size——使图形尺寸标准化。这一命令在制作动画时非常有用。   (4)Image convertions——图形格式转换。可以将图形转化成位图格式或系统可接受的格式。   (5)Animate Selected Graphics——显示动画。用户可以选择一组包含图形的细胞,或者选择一个包含多个图形细胞的细胞组,然后使用该命令即可连续显示这些图形。用这种方式可以实现连续的动画。系统支持PostScript格式、图元格式和位图格式的动画,甚至可以将三者混合显示。 #1  五、操作功能(Action)   (1)Prepare Input——输入选择。用户可以选择拷贝上一次的输入或输出内容,还可以选择系统的所有函数、3D图形的视角和颜色。   (2)Evaluate Selection——计算所有激活的细胞。   (3)Evaluate Next Input——计算下一个细胞。   (4)Evaluate Notebook——激活并计算当前文件内的所有细胞。   (5)Evaluate Initialization——计算所有已经初始化的细胞。   (6)Interrupt——中断当前操作。 #1  六、风格编辑(Style)   Mathmatica提供了多种细胞格式,包括标题、次标题、三级标题、文本、帮助、名字、题头、脚注、图形和系统提供的特殊格式等等,共计二十八种。 #1  七、选项设置(Options)   (1)Clipboard——Mathmatica提供了自己的剪贴板,该选项可以在Mathmatica向Windows的剪贴板拷贝信息时,对其格式进行设置,它支持位图格式、图元格式和独立设备的位图格式。   (2)Graphics——对图形着色时的有关设置。   (3)Animation——用户可以在这里设置动画每秒显示的帧数、显示顺序、循环延迟时间等。   (4)Action——操作设置。如用新的输出内容取代旧的内容;将输出内容与对应的输入内容放置在同一个组细胞中;显示每次计算的时间等等。   (5)Kernel——有关Mathmatica系统内核的设置。用户可以选择在开始运行Mathmatica时就预先装载内核,否则内核只有在进行运算之前才被装载;这里还可以对内核所占的内存容量进行设置,缺省值是7168K,最大值是12288K。当系统进行比较大的运算的时候,内核将会需要较大的内存,这时如果没有给内核分配足够的内存,系统将无法完成计算。   (6)Bracket Color——对细胞括号颜色的设置。   (7)Style——对新建文件设置缺省文件名以及从其他平台上读入文件时对字体识别的设置。 #1  八、下面举例说明Mathmatica的用法:   (1)首先在打开的文件内输入:   ParametricPlot3D[   {Sin[u] Cos[v],Sin[u] Sin[v],Cos[u]},   {u,0,Pi},{v,0,2Pi},   Lighting—>True,   LightSources—>{{{2,2,2},RGBColor[1,0.25,0.5]},   {{3,0,4},RGBColor[0.2,0.5,1]}},   ViewPoint->{1.4,2.6,1.7}]   (2)激活该细胞,执行Action菜单中的Evaluate Selection命令,系统将显示一个球形(见^441501b^)。其中ParametricPlot3D是三维参数作图函数,这里给出的是球体的函数的参数形式;u、v即为参数;Pi代表圆周率;{u,0,Pi}的意思是u的变化范围是从0到Pi;Lighting->True是指打开已经设置的光源;LightSources用于设置光源,默认值是设置了三个点光源,分别是红、绿、蓝色的,它们被放在曲面右边45度角的地方;用户也可以自己设置任意的光源,说明一个光源要描述它的光色和位置,其形式为:{光源位置,光源光色},其中光源位置用它的坐标来表示(如{2,2,2});RGBColor[r,g,b]用于设置光色,其中的r、g、b是三个取值为[0,1]之间的数,分别说明光源中红色、绿色、蓝色的强度;ViewPoint用于说明视角的位置,也用坐标来表示。   Mathmatica现在已经出到3.0版,有兴趣的读者可以到Wolfram公司的站点http:∥www.wolfram.com去了解最新的信息,也可以与我联系:topsaxphone@163.net。