所有提交的电磁系统将被重定向到在线手稿提交系统。作者请直接提交文章在线手稿提交系统各自的杂志。

数学:一个计算机程序系统

Santanu k Maiti*
物理和应用数学单元,印度统计研究所,203年Barrackpore干道,加尔各答- 700108
通讯作者:Santanu k . Maiti物理学和应用数学单元,印度统计研究所,203年Barrackpore干道,加尔各答- 700108
(电子邮件保护)
相关文章Pubmed,谷歌学者

访问更多的相关文章全球研究计算机科学杂志》上。

介绍

数学,计算机程序的系统,是一个高级计算环境包括计算机代数、图形和编程。数学是专门适用于数学,因为它包含了很多数学运算符号操作和自动化。数学的知识方面的关键是发明一种新的语言符号计算,可以操纵非常广泛的对象需要实现所需的一般性技术计算通过使用数量非常小的基本原语。有时只是一行mathematica-the语法,使一个有意义的项目文件和方法用于输入和输出剩余立即计算。它支持所有类型的操作的数据,功能,图形,程序,甚至完整的文件,表示在一个统一的方式作为一个象征性的表达。这有很多实际利益统一扩大每个函数的适用性的范围。原始算法的数学是放大和扩展其效用。Mathematica现在已经成为一个重要的工具在许多分支的计算,今天,它是世界上最好的系统,一般的计算。Mathematica已经广泛的应用在不同的领域和通常用于研究、加载和分析数据,技术讲座和研讨会等。数学是非常全面的。适用于数字和符号的工作,它有显著的文字处理能力。 Mathematicians can search for a working model, do intensive calculation, and write a dissertation on the project (including complex graphics) – all from within mathematica. It is mathematica’s complete consistency in design at every stage that gives it this multilevel capability and helps advanced usage evolve naturally.

从数学开始

我们通常使用mathematica通过文档称为笔记本电脑。我们开始一个mathematica notebook在Unix中写“mathematica &”从命令行,然后从键盘按“输入”键。一个典型的笔记本由细胞可能包含图形、文本、程序或计算。现在退出一个mathematica notebook我们第一次去命令“文件”,然后按“退出”菜单栏的笔记本。不使用一个笔记本也可以使用mathematica通过键入命令“数学”从命令行,所有的工作
也可以做的很好。退出mathematica对于这个特殊的情况,我们应该写“退出”或“退出”,然后按“输入”键。这样一个可以运行mathematica通过使用上述两种方法中的任何一个,但最一般的方法的交互式计算数学是通过笔记本使用mathematica文档。

使用Mathematica Notebook

执行一个笔记本,一份工作在一个特定的细胞和不同的工作我们使用不同的细胞。还可以使用一个单一细胞的所有操作,但很容易如果执行不同的操作在不同的细胞。自动创建一个细胞,当我们开始在笔记本上写任何东西。写正确操作/操作之后,需要运行工作。为此,我们按下键“转变”,拿着这把钥匙,我们然后按键盘的“输入”。输入评估结果,在一个单独的细胞,他们可以立即在所谓的输出单元。
在数学中,我们可以做各种各样的数学运算数值计算、algebric计算、矩阵操作,不同类型的图形等,和所有这些事情显然是被几个关键数学书中例子的沃尔夫勒姆研究[1]。所以在本文中,我们进一步不得给任何这样的例子。现在做大的数值计算,需要编写一个完整的程序。为此,在这里,我们描述的方法写一个完整的程序mathematica notebook。

的写作方式在Mathematica程序

在数学中,我们可以编写一个程序有效地比其他现有的语言。作为说明性的例子,这里我们提到一个非常简单的程序:一个列表的生成两个随机数和创建2 d图从这些数字。程序是:
图像
这是完整的程序列表的生成两个随机数和创建2 d图从这些数字。这个程序是用一个细胞。这个项目结束后我们通过使用命令运行它“转变”+“输入”,然后mathematica做适当的操作和执行的结果输出细胞(图1)。
现在要理解这个项目,需要描述的意义在这个程序中使用的不同的命令。开始一个项目有必要指定一个特定的程序的名称。在本例中,我们指定的样本程序名,为了简单起见。还可以使用其他名字的“样本”,因为这是一个假名字。如果有任何正在运行的变量,如“*”(一个虚拟变量)在这种特殊情况下,那么它必须给出括号内“[]”。后,使用“_”的象征,这表明变量作为函数变量。这类似于定义一个函数变量,比如f (x) mathematica f(间)。现在所有的数学命令用于计算工作中插入块[…]。这是程序的核心部分。这部分。, ‘Block[. . .]’ is connected with ‘sample[times_]’ by the symbols ‘:=’. The symbol ‘:’ has an important role, and therefore it has to be taken into account properly. Inside the ‘Block’ the ‘local variables’ for the program are declared within the bracket ‘{ }’. There may also exist another type of variables called ‘global variables’. Later in this article, we will focus about these two different types of variables in detail. Now the rest part of the program differs from program to program depending on the nature of the particular operations. In this program, first we construct a list of two random numbers. In mathematica, a random number is generated simply by using the command ‘Random[]’. Therefore, a list of two such random numbers can be done very easily if we construct a table, which is performed by the command ‘Table’ as given in the program. The integer i runs from 1 to ‘times’, where the value of ‘times’ can be put anything. So if we write ‘sample[10]’, here ‘times = 10’, then i runs from 1 to 10 and if we take ‘sample[30]’, where ‘times = 30’, then i goes from 1 to 30. Now it becomes quite user friendly if we mention different variable names for the different mathematical operations which are not exactly identical with any built in function available in mathematica like ‘Random’, ‘Table’, ‘Plot’, etc. In this program we use the variable names ‘numbers’ and ‘figure’ for the two different operations. At the end of each mathematical operation, except the last operation which gives the final output of a program, we put the symbol ‘;’. This is also very crucial. Here we use the symbol ‘;’ at the end of the second line only, but not in the last operation since this is the final output of this program. The command ‘ListPlot’ plots the list of data points where the command ‘PlotJoined ->True’ connects the lines between the data points. Finally, the command ‘AxesLabel’ in this line is an option for the graphics functions to specify the labels in the axes.
这个项目的输出是图1所示,在一个单独的细胞下方输入程序的细胞。现在我们可以很容易地编写和编译一个程序在数学。

局部和全局变量的特征

本地和全局变量的数学起着重要的作用,因此应采取关心这两种变量数学当我们编写一个程序。我们已经提到过的局部变量在前一节中介绍了这些变量只在括号“{}”的“块[]”。在这种情况下,这些参数的值只定义在细胞内,我们编写一个特定的程序。这个细胞外,他们是未定义的,因此,我们也可以使用这些相同的参数写其他程序没有任何麻烦。
另一方面,全局变量是那些不使用中括号“{}”的计划。在这种情况下,这些变量被分配在所有细胞的笔记本。因此如果我们为这样一个参数声明任何值,那么它会读取这个特定值每当我们在任何程序中使用它。因此,这可能会导致一个困难如果我们使用相同的变量在另一个程序错误。所以我们应该关心这些两种类型的变量。要明确,我们说明这两种不同的变量的行为给予适当的例子。
图像
让我们考虑上述程序是写在一个特定的细胞mathematica notebook。在这个程序中,我们引入了两个局部变量t = 2.3, p =−1.5。这两个变量都在括号“{}”。现在如果我们检查在细胞外的值,那么输出将为这两个变量t和p。这是局部变量,另一个可以安全地使用这些参数在其他程序中。
图像
现在我们把这个项目,我们为另一个变量引入一个额外的线q = 3.5比前一程序的部分。一旦我们运行这个程序,q的值将被分配任何细胞的笔记本。因此,在这种情况下,q成为全局变量,如果一个人使用它在其他程序进一步q,那么该参数的值将被指派为3.5。因此会出现不匹配,因此我们应该非常小心这两个不同类型的参数。

在数学方法链接外部程序适当MATH-LINK命令

这部分说明了本文的一个重要组成部分,处理的方式连接的外部程序通过适当的数学mathlink命令。连接外部的机制与mathematica程序用C语言编写已经建立(2]。但这不会工作如果试图联系其他语言编写的一个外部程序像F77,法郎,F95,与数学等。这促使我们找到一种方式连接外部的要么在其中任何一个语言编写的程序与数学(F77,法郎,F95)。我们说明了fortran - 90源文件(3,4),但这种机制也将工作明显其他Fortran源文件。

Mathlink XL fortran - 90源文件

为了理解连接一个外部程序和数学的基本机制,让我们通过一个简单的例子开始。在这里我们设置程序如下:
1。构造两个方阵在数学。
2。把这两个矩阵的乘积通过使用一个外部程序写在法郎。
3所示。计算产品的特征值矩阵在数学。
整个操作可以表示为绘画的,
mathematica 1和3的操作执行,同时操作2是由外部评估的程序。数据的转换从mathematica notebook到外部程序是通过使用一些适当的命令,所谓mathlink操作。完成这份工作(业务1 - 3),我们需要两个项目。一个是写在数学操作1和3,而其他程序写在法郎为操作2。现在,我们一个接一个地描述所有这些步骤。让我们首先专注于外部程序,下面,两平方矩阵的乘法操作(2)执行。程序的第一行对应的命令行标志”!”是用来做一个声明一个命令语句。下一行的项目提供了一个具体的名字所描述的命令程序乘法。这实际上开始这个项目,因此,该项目是由命令“乘法程序终结”结束。在法郎,我们可以进行分配和释放数组变量的程序帮助我们大量节省内存和同时运行很多工作是非常必要的。 Here we use three array variables ‘a, b and c’ for the three different matrices whose dimensions are allocated by the order of the matrix ‘n’. Finally, the product of the two matrices ‘a’ and ‘b’ is determined by the command ‘matmul (a,b)’ and the datas are stored in the matrix ‘c’. This is the full program for the matrix multiplication of any two square matrices of order ‘n’.
图像

编译和优化XL fortran - 90源文件

编写一个程序后,首先我们需要编译它检查是否有任何语法错误或不进行进一步的操作。几个命令访问程序的编译和优化。通常用来编译源文件法郎的命令是:xlf90, xlf90_r, xlf90_r7,等等。因此我们可以使用任何这些编译这个程序,但是不同的命令优化程序以不同的方式完全取决于特定程序的性质。编译程序的最简单的方法是,
图像
这个操作,一个名为“一个可执行文件。创建出来的,默认情况下,在当前工作目录(pwd)。但是如果一个人同时使用多个程序那么这将是更好的指定不同的名称不同的单独的程序的可执行文件。为此我们使用处方,
图像
在这个过程中,执行文件的命名为“文件名”创建。因此我们可以创建正确的执行文件可以同时执行不同的工作,所有的工作没有任何困难。
为便于说明,下面我们提到Fortran源文件的一些其他的优化技术。
•- o:优化编译器生成的代码。
•o0:执行没有优化。(-qnoopt一样。)
•- 02:优化代码(这是一样的- o)。
•o3:执行- o优化和执行额外的优化水平
内存或密集的编译时间。
•- o4:积极优化源程序,交易关闭额外的编译时间
潜在的改善所生成的代码。这个选项意味着以下选项:
- qarch = auto - qtune =汽车汽车—qhot -qipa -qcache =。
•o5: - o4一样,但也意味着-qipa = = 2水平的选择
从这些操作,我们可以做一些口味Fortran源文件的编译和优化技术。对于每个操作的详细描述,我们指的是XL Fortran用户指南(5]。

链接和Mathematica XL fortran - 90计划

这是本文的核心。下面我们组1和3的mathematica程序操作,将操作2通过使用适当的mathlink命令,并举例说明正确的所有步骤(图2)。
让我们假设外部程序,操作2,写在目录“/ allibmusers / santanu /文件/测试”。通常我们习惯于看到工作目录“/ user / santanu /……”或“/ home / santanu /…”或“/权限/ santanu /…”等等。这可以是任何东西。因此了解外部程序写入的目录,我们进入特定的目录,编译的外部程序正确地创建一个“执行文件”进行进一步的操作。对于这个特殊的案例中,我们创建一个执行文件的命名为“垫”用于13日线以下的mathematica程序。现在外部程序准备好操作,我们进入的目录我们将运行作业的mathematica notebook操作1和3。
坐在mathematica notebook的目录是开放的,我们需要连接到适当的目录的执行文件的外部程序存在。pwd的名称可以直接从mathematica notebook检查使用命令“目录[]”。假设pwd是“/ allibmusers / santanu /数学”。现在如果这个pwd是不同的目录文件“垫”存在,然后我们做一个链接到特定的目录通过命令“SetDirectory”。下面我们举个例子来连接目录“/ allibmusers / santanu /文件/测试”,文件“垫”存在的地方。
图像
这个操作的总路径必须在使用双引号“”。使用命令“ResetDirectory[]”,我们可以回到最初的目录。因此我们可以连接和断开任何目录pwd mathematica notebook,并且能够连接外部程序与数学很容易。
图像
在上面的程序中,“t”和“s”的变量是局部变量,我们已经讨论了这些变量在前一节中。“vacuum1 ={}”和“vacuum2 ={} '是两个空链表的数据存储为每个操作中给出的两个“做”循环程序列表的a2和a4的分别。“分区”命令使分区的一个列表。参数“ns”给了两个方阵的顺序。通过使用命令“出口”我们发送文件“mat3。dat”被视为外部程序的输入文件保存在目录的/ allibmusers / santanu /文件/测试”。使用外部程序执行矩阵乘法和mathematica notebook回到产品矩阵我们使用操作:ReadList [”! < mat3垫。dat”,数量,RecordLists - >真实)。这里的命令“ReadLeast”是用于从文件读取对象和命令“数量”和“RecordLists !真正的”命令的选项是“ReadList”。最后,矩阵的特征值由mathematica notebook中使用命令“特征值”。

链接的其他与Mathematica XL Fortran程序

现在我们还可以使用mathlink操作其他程序写在F77或F95通过上述机制。对于这些项目,我们应该使用适当的命令编译和优化。作为代表性的例子,这里提到的一些命令编译这些XL Fortran源文件有:xlf, f77, fort77, xlf_r, xlf_r7, xlf95, xlf95_r xlf95_r7。
现在我们可以使用mathlink命令任何类型的Fortran程序

数学方法创建一个批处理文件,在后台运行它

在上面的部分中,我们详细研究了如何开始mathematica,编写程序的mathematica和连接的外部程序mathematica notebook通过使用适当的mathlink命令。现在它可能是非常理想的工作背景,花很多时间来完成,并做其他工作在不同的窗口,保持工作运行。这激励我们去探索mathematica程序在后台运行的基本机制。它可以通过创建适当的mathematica批处理文件,我们将描述这里精心。
为了理解完整的过程,让我们先给mathematica程序的一个非常简单的例子。我们设置了程序如下:
两个列表的生成随机数,2 d图从这些组随机数,然后创建一个“每股收益”文件2 d图。
对于这个项目,首先我们需要列出两个随机数,然后构造一个二维图使用这组随机数。最后,我们做一个“每股收益”申请这个阴谋。在这里,我们主要是想运行这个完整的工作背景。在做这个工作之前在后台,现在让我们描述了不同的数学运算与适当的命令要做在一个mathematica notebook特定操作。
程序生成一组两个随机数和一个2 d图从这些数字如下:
图像
该程序的输出,我们运行它通过输入一些值的变量“倍”,像“样本[100]”或“样本[200]”等等。然后mathematica做适当的操作和执行的结果输出单元(图3)。2 d图的输出如图1所示。
现在创建一个“每股收益”文件2 d图我们使用以下操作:
图像
在这个上面的表达式,名“无花果”用于调用图形文件,保存和“每股收益”文件名称的文件名。每股收益”在当前工作目录。
因此我们现在清楚所有的数学操作这些都是要做在一个mathematica notebook上述程序。现在我们让我们注意这个程序在后台运行。
为了运行这个程序的背景,首先,我们需要创建一个批处理文件是文本文件从这些mathematica输入命令这些都写在不同细胞的数学笔记本。为此,我们通过这些步骤:
(a)选择mathematica notebook的细胞,然后遵循方向通过点击细胞→属性→初始化细胞从菜单栏初始化细胞。
(b)生成批处理文件,遵循方向通过点击文件→另存为特殊的菜单栏→包格式。
然后出现一个对话框指定文件名和mathematica输入文件的位置。在这里我们使用输入文件操作的数学工作。
这些步骤之后,我们假设,我们生成一个批处理文件命名为“santanu。对上述mathematica程序。一般的批处理文件指定使用扩展的目的。米即。,like the name as ‘filename.m’. To run this batch-file ‘santanu.m’ in background, we use the following prescription:
图像
文件名的santanu。“输出文件,所有的输出不同的操作。得到的输入和输出线数学笔记本,需要使用以下命令在第一行的笔记本。
图像
结束时,所有这些步骤,我们得到输出文件的santanu。和图形文件的文件名。每股收益的“每股收益”在当前工作目录中,批处理文件的格式santanu。m”是在后台运行。

并行评估MATHEMATICA程序

并行计算是一种一个可以同时执行许多操作。并行计算同时使用多个处理元素完成特定的工作。这是通过将工作分解成独立的部分,每一个处理元素可以同时执行的部分算法与他人。处理元素可以多样化,包括资源,比如一台计算机有多个处理器,几个网络电脑,专门的硬件,或以上的任意组合。
在本节中,我们叙述的基本机制并行mathematica程序运行在几个独立的部分电脑网络中可用。因为所有的基本数学运算很好地执行在任何版本的数学,它并不重要,即使不同版本的mathematica安装在不同的计算机所需的并行计算。

如何打开Mathematica奴隶在本地计算机吗?

在并行计算,同时计算不同领域的工作。这些操作可以在本地计算机或远程计算机网络中可用。单独的操作都是在单独的mathematica奴隶展出。为了强调基本机制,现在让我们描述的方式开始一个mathematica奴隶在本地计算机。要做到这一点,首先我们加载下面的包在一个mathematica notebook。
图像
要启用可选特性,然后加载方案,
图像
现在我们可以打开一个mathematica奴隶在本地计算机通过使用命令,
图像
使用这个命令,几个mathematica奴隶可以从主人的奴隶。现在变得更加重要,如果我们指定的名称不同的奴隶,这样独立的部分适当地工作可以共享到不同的奴隶。对于我们的插图,下面我们举些例子如何开始与特定名称不同的奴隶。
图像
link1, link2 link3对应三种不同的奴隶。这些奴隶的细节可以通过使用下面的命令,可
图像
上面的命令的输出成为(举个例子),
图像
这个表中所示的结果是上述三个奴隶命名为link1 link2和link3分别,这些奴隶都从本地计算机打开命名为“tcmpibm”(说)。获得信息的总数奴隶被打开,我们使用命令,
图像
对于这种情况,奴隶变成3的总数。

如何打开Mathematica奴隶在远程计算机中可用的网络?

开始一个奴隶在远程计算机,使用命令“ssh”提供安全的密码认证和加密的本地和远程计算机之间的通信。开始前一个奴隶在远程计算机,需要检查是否“ssh”是否正确配置,这可以通过使用处方,
图像
例如,如果我们想要连接远程计算机命名为‘tcmpxeon’,我们应该遵循命令,
图像
因为ssh连接远程计算机的密码保护,需要插入正确的密码,如果ssh是正确配置,上述操作显示了命令[1]:=。一旦“ssh”工作正常,mathematica奴隶可以打开在一个远程计算机通过这个命令,
图像
为我们演示的目的,下面我们描述不同的奴隶与适当的名称可以在不同的远程计算机。
图像
link1 link2, link3和link4是四个不同的奴隶,link1和link3打开在一个远程计算机命名为“tcmpxeon”(说),而另两个奴隶开始在另一个远程计算机命名为“tcmp441d”(说)。使用这个处方,几个mathematica奴隶可以开始在网络中不同的远程计算机。以上四个奴隶的细节可以在表格形式表示,
图像
因此我们现在能够开始mathematica奴隶在本地计算机和远程计算机中可用网络,和上面的背景,我们可以描述并行mathematica程序的机制。

并行Mathematica程序通过使用远程计算机中可用网络

为了理解并行mathematica程序的基本机制,让我们从一个非常简单的问题开始。我们的问题如下:
问题:构造一个方阵的任何顺序本地计算机和其他两个方阵与前一个相同的订单在两个不同的远程计算机。从本地电脑,读这两个矩阵的构造两个远程计算机。最后,把这三个矩阵的乘积计算产品的特征值矩阵在本地计算机
为了解决这个问题我们通过这些步骤进行mathematica notebook。
步骤1:为了简单起见,我们首先定义三种不同的计算机的名称需要解决这个问题。本地计算机命名为“tcmpibm”,而其他两个远程计算机的名称分别为“tcmpxeon”和“tcmp441d”。在本地计算机上打开一个mathematica notebook,让我们先加载方案并行化,得到可选特性,我们如前所述加载另一个包。然后我们开始两个mathematica奴隶命名为“link1”和“link2”这两个远程计算机“tcmpxeon”和“tcmp441d”分别通过使用适当的命令如前所述。
步骤2:接下来我们准备好三个项目顺序相同的三个独立的方阵在本地计算机。其中一个程序将运行在本地计算机,而其余两个将运行在两个远程计算机。这三个项目如下。
图像
图像
因为我们非常熟悉的方式编写mathematica程序[1],我们不会在这里描述不同的符号的意义进一步用于上述三个项目。因此利用这些项目,我们可以构造三个方阵的“ns”。
步骤3:我们非常年底完成操作。为了简单起见,我们假设,节目中的评估本地计算机,而program-II和program-III分别评估两个远程计算机。所有这三个项目同时运行在三个不同的电脑。了解基本的机制,让我们按照计划。
图像
这是最后的计划。当它运行在本地计算机,一个矩阵称为“mat1”是评估在本地计算机(程序)的第三行,和其他两个矩阵确定在远程计算机使用操作给出了分别的第四和第五行项目。第二行程序给出了命令的所有符号和定义的转换到远程计算机。在远程计算机完成操作后,我们称这两个矩阵在本地计算机通过使用命令“ReadList”,并将它们存储在“mat2”和“mat3”。最后,我们把这三个矩阵的乘积计算产品的特征值矩阵在本地计算机通过使用rest操作上面的程序。
整个操作可以生动地反映在图4。
结束时的所有操作,我们使用以下命令关闭所有的mathematica奴隶。
图像

结束语

总之,在这种通信可能给出的基本操作对初学者很有帮助。从基本的层面上,我们探索如何开始mathematica, mathematica notebook, mathematica编写一个程序,等。之后,我们还描述了当地的公用事业和全局变量用于编写程序的数学。
之后,我们有了联系的基本机制mathematica notebook的外部程序。这mathlink操作是本文的一个重要组成部分,它是极其重要的做大的数值计算。这里我们有集中mathlink操作主要用于90 XL Fortran源文件。但这个操作也可以用于任何其他Fortran源文件。在本节中,我们也说明了简单的优化技术的Fortran源文件可以帮助我们运行非常复杂的工作非常有效。
接下来我们详细解决如何建立一个从mathematica notebook mathematica批处理文件,电脑在后台运行它。有几个项目可以花大量的时间来运行。有些人可能需要几天甚至几周完成他们的分析。出于这个原因,它可能是可取的,这样的工作在后台。这是运行一个程序的一种方式,允许继续在其他工作任务之一(甚至注销),同时仍然保持这个程序运行。此外,末尾加工作不依赖于我们的会话保持开放,因此,即使我们的电脑崩溃,将持续不间断的工作。
最后,我们探索的基本机制并行mathematica程序运行在远程计算机可用其独立的部分网络。通过使用这种并行化技术,可以提高数值计算的效率,它帮助我们执行所有的数学操作在很短的时间内。
在本文中,我们集中所有基于Unix的操作系统的基本操作。但所有这些操作在任何其他受支持的操作系统也很好就像窗户,Macintosh等。

承认

承认,我深深的感激的照明的评论和建议我收到教授Sachindra Nath Karmakar在本文的准备。

数据乍一看

图1 图2 图3 图4
图1 图2 图3 图4

引用






全球技术峰会