Wolfram Mathematica

Wolfram Mathematica (简称:Mathematica)是一款科学计算软件,有时候也被称为计算机代数系统,广泛使用于科学、工程、数学、计算等领域。

Wolfram Mathematica
Mathematica Logo.svg
Mathematica logistic bifurcation.png
开发者沃尔夫勒姆研究公司
首次发布1988年6月23日,​34年前​(1988-06-23[1]
当前版本
  • 13.2 (2022年12月14日;稳定版本)[2][3]
编辑维基数据链接
编程语言Wolfram语言,[4] C/C++, Java和Mathematica[5]
操作系统跨平台(平台列表)
语言英语、汉语和日语
类型计算机代数系统、数值分析软件、信息可视化、统计程序包、图形用户界面
许可协议专有
网站www.wolfram.com/mathematica/

它是由英国科学家斯蒂芬·沃尔夫勒姆提出构想,并且由他所领导的沃尔夫勒姆研究公司(位于美国伊利诺伊州香槟市)开发的一款广泛使用的科学计算软件[6][7]。它拥有强大的数值计算和符号运算能力,是目前为止使用最广泛的数学软件之一。

Wolfram语言是用于Mathematica的编程语言[8]

沃尔夫勒姆和他的工作团队于1986年开始Mathematica的研发。Mathematica 1.0于1988年1月23日正式发行。2008年12月发行的Mathematica 7.0版及之后的版本有中文版。

产品功能

Mathematica的功能包括:[9]

  • 各种基本数学函数库
  • 各种特殊属性函数库
  • 矩阵和数据操纵工具,包括对稀疏矩阵的处理
  • 支持复数、任意精度数、区间算术和符号运算
  • 2维和3维数据以及函数的可视化和动画工具
  • 求解方程组、常微分方程偏微分方程、微分代数方程、时滞微分方程递推关系式等等
  • 离散和连续微积分的数值和符号工具
  • 多变量统计程序库,包括支持100多种数据分布的数据拟合、假设检验、概率和期望的运算
  • 支持删失数据、暂态数据、时间序列和有单位的数据
  • 随机过程和队列的计算及仿真
  • 为包括神经网络在内的数据、图像和声音的有监督和无监督机器学习提供工具
  • 对运算和应用程序添加用户界面的各种工具包
  • 约束和无约束局部及全局最优化
  • 程序语言支持:过程式编程语言、函数式编程语言和面向对象的编程语言
  • 图像处理工具[10],包括图像识别
  • 提供用于图论中图的分析和可视化的工具
  • 分析组合问题的工具
  • 用于文本挖掘的工具
  • 数据挖掘的工具,比如聚类分析字符串对齐和模式匹配
  • 数论函数库
  • 金融运算的工具,包括期权债券、年金、派生工具等的计算
  • 群论函数
  • 技术文本处理,包括公式编辑器和自动报告生成
  • 用于声音、图像和数据的小波分析程序库
  • 控制系统程序库
  • 连续和离散的积分变换
  • 导入和导出数据、图像、视频、GISCAD[11]等各种文件格式,并支持对生物医学类数据的输入和输出
  • 链接Wolfram Alpha的大量数学、科学、社会经济学类的数据集合
  • 查看并且重新使用前面的输入和输出(包括图像和文本记号)的笔记本界面
  • 和基于DLL、SQLJava.NETC++FORTRANCUDAOpenCL以及http的系统相链接的工具
  • 编写并行程序的工具
  • 当与互联网连接时,在笔记本中可同时使用“自由格式语言输入”(一个自然语言型的用户界面)[12]和Wolfram语言

界面

Mathematica分为两部分:内核和前端。内核对表达式(即Wolfram语言代码)进行解释,并且返回结果表达式。

前端由西奥多·格雷于1988年设计[13],它提供了一个允许用户创建并且编辑一个“笔记本文档”的GUI,该笔记本文档可以包含程序代码、格式化文本以及包括公式、图像、GUI组件、表格、声音在内的各种输出结果。所有的内容和格式都可以通过算法生成或者通过交互式方法进行编辑。其支持大多数标准文字处理功能,还含有一个多语种的实时拼写检查器。

文档可以使用层次式单元进行结构化处理,这样便于对文档划分章节。文档也可以表示为幻灯片形式,便于进行演讲。笔记本与其内容均以Mathematica表达式的形式存储,并且可用使用Mathematica程序进行创建、编辑和修改,而且还可以转化为其它格式,比如TeX或者XML

前端包括开发工具,比如调试器、输入自动补全、以及自动语法着色。

默认情况下,Mathematica使用一个标准前端,不过也有其它前端可供选择,包括Wolfram Workbench、2006年引入的基于EclipseIDE。它们为Mathematica提供了面向项目的开发工具,包括版本管理、调试、归档和测试。[14]此外,Mathematica还包括一个命令行前端(Mathematica Kernel)。[15]

沃尔夫勒姆研究公司已经推出一系列初学者入门视频,介绍用户界面和引擎。[16]

高性能计算

近年来,Mathematica系统已经开始支持高性能计算。在Mathmatica 5.2版本中,它已经支持自动多线程计算[17]。2002年,gridMathematica页面存档备份,存于互联网档案馆)的引入使得用户级的并行编程可以在不同的集群和多处理器系统中进行[18]在2008年,在所有的Mathematcia许可证中囊括了并行计算技术,包括支持网格技术如Windows HPC Server 2008、Microsoft Compute Cluster Server和Sun Grid。2010年,Mathematica增加了对CUDAOpenCL GPU硬件的支持。另外,第8版还可以生成C代码,它可以自动由系统C编译器进行编译,比如Intel C++编译器或者Visual Studio 2010编译器。

部署

用户可以通过多种解决方案部署使用Mathematica编写的应用程序:

Mathematica Player Pro是Mathematica的“只读”版本,它可以运行任何Mathematica应用程序,但是不允许编辑或者创建Mathematica代码。[19]此外,还有一个免费版本的Mathematica Player可以用来运行CDF格式的Mathematica程序;它也可以用来查看标准Mathematica文件,但是不能运行它们。

webMathematica的网页浏览器可以作为远程Mathematica服务器的一个“前端”。它允许用户在任何平台上远程访问编写好的应用程序。但是,它不允许用户完全访问Mathematica。

另外,第8版可以自动将Mathematica代码转换成可执行的C代码,这些自动生成的C代码可以在标准C编译器中进行编译,比如Intel C++ Compiler或者Visual Studio 2010的编译器。因此,从某种角度上,Mathematica代码的执行速度可以与C语言代码相媲美。

与其他应用的链接

Mathematica通过名为MathLink的协议与其它应用程序链接。通过该协议,Mathematica实现内核与前端的通讯,并且也提供了内核和其它应用程序之间的一个通用接口。

Mathematica不但本身具有丰富的功能,而且它也提供了大量接口用以访问其它软件,从而可以方便地调用那些其它软件具有但Mathematica暂时不具备的功能。这样做可以进一步增强Mathematica的适用性。

Wolfram Research发布了一个免费的开发工具包,该工具包允许C programming language编写的应用程序通过MathLink链接到 Mathematica内核[20]

使用.NET/Link[21],任何一个.NET程序都可以调用Mathematica执行计算操作;相应地,Mathematica程序也可以加载.NET classes、操纵.NET对象并且执行方法调用。这样我们就可以从Mathematica内部构建.NET 图形用户界面。类似地,Mathematica也有J/Link[22]。顾名思义,它可以用于Mathematica与Java程序之间的交互。

SQL数据库之间的通讯是通过内置的JDBC支持实现的。[23] Mathematica也可以从一个WSDL描述中安装网页服务[24][25]

其它与Mathematica相链接的语言包括Haskell[26]AppleScript[27]、PLT Scheme[28]Visual Basic[29]Python[30]Clojure[31]

在Mathematica和OpenOffice.org Calc[32]以及Microsoft Excel[33]之间有双向的链接。

Mathematica也提供了与许多专门的数学软件包之间的链接,包括MATLAB[34]R [35][36]Sage[37][38]、SINGULAR[39]、MathModelica和Origin [40]

Mathematica中的数学公式也可以与其它计算或者排版软件(比如MathML)的公式进行相互转换。

Mathematica可以通过多种方式捕获实时数据,比如与LabVIEW的链接[41],金融数据feeds [42],或者直接通过GPIB从硬件设备(IEEE 488)[43]USB[44]以及串行接口[45]获取。

其他可用界面有JMath,[46]它基于GNU readline和MASH[47],并利用UNIX命令行运行内置的Mathematica程序(内含参数)。

可计算数据

Mathematica囊括了大量可立即计算的数据。用户可以通过编程访问这些数据,并且也可以通过Wolfram Research数据服务器自动更新数据[48]。某些数据如股票价格和天气数据都是实时递送的。目前数据集包括:

  • 天文数据:155,000个天体的99个属性
  • 化学数据:34,000个化合物的111个属性,118个化学元素的86个属性以及1000个亚原子粒子的35个属性
  • 地缘政治数据:237个国家的225个属性,以及全世界160,000个城市的14个属性
  • 金融数据:186,000个股票和金融工具的历史和实时属性
  • 数学数据:187种多面体的89个属性,3000种图的258个属性,6种 knots的63个属性,21种晶格结构的37个属性,52个测地学方案的32个属性
  • 语言数据:149,000个英语单词的37个属性。26个其他语言的词典
  • 生物医学数据:所有40,000个人类基因的41个数据,27,000类蛋白质的30个属性
  • 天气数据:全球17,000个气象站的43个实时和历史的测量数据
  • Wolfram|Alpha数据:来自Wolfram Alpha的亿万兆数据

版本历史

 
Mathematica版本

Mathematica的产生是基于Cole和Wolfram早期的符号操作程序(SMP)的创意。[49][50]

Wolfram Research已经发布了如下Mathematica版本[51]


参见

  • 计算机代数系统比较
  • 多重编程范式
  • 动态语言
  • 第四代编程语言
  • 函数编程语言
  • 文学编程
  • Wolfram语言
  • Wolfram Alpha——可计算知识引擎
  • Wolfram SystemModeler——一个与Mathematica集成的物理建模和仿真工具
  • IMTEK Mathematica Supplement——有限元仿真的开源Mathematica附加软件
  • 数学软件

参考文献

  1. ^ Wolfram, Stephen, Mathematica Turns 20 Today, Wolfram, 2008-06-23 [2012-05-16], (原始内容存档于2011-10-02) 
  2. ^ 2.0 2.1 Mathematica Quick Revision History. [2022年12月20日]. 
  3. ^ 3.0 3.1 The Latest from Our R&D Pipeline: Version 13.2 of Wolfram Language & Mathematica. 2022年12月14日 [2022年12月20日]. 
  4. ^ Celebrating Mathematica's First Quarter Century. [2015-08-11]. (原始内容存档于2015-12-22). 
  5. ^ The Software Engineering of Mathematica—Wolfram Mathematica 9 Documentation页面存档备份,存于互联网档案馆). Reference.wolfram.com. Retrieved on 2015-03-23.
  6. ^ Stephen Wolfram: Simple Solutions; The iconoclastic physicist's Mathematica software nails complex puzzles页面存档备份,存于互联网档案馆), BusinessWeek, October 3, 2005.
  7. ^ Contact Wolfram Research. [2015-08-11]. (原始内容存档于2012-09-04). 
  8. ^ Slate's article Stephen Wolfram's New Programming Language: He Can Make The World Computable, March 6, 2014. Retrieved on 2014-05-14.. [2015-02-09]. (原始内容存档于2016-04-01). 
  9. ^ Mathematica documentation. [2010-12-21]. (原始内容存档于2008-09-07). 
  10. ^ Review: Mathematica 7. Technical computing powerhouse gets more oomph页面存档备份,存于互联网档案馆) Macworld, Jan 2009
  11. ^ Mathematica 6 Labs Review页面存档备份,存于互联网档案馆) Cadalyst Feb 1, 2008
  12. ^ The Free-Form Linguistics Revolution in Mathematica. [2010-12-21]. (原始内容存档于2011-07-26). 
  13. ^ Patent US8407580页面存档备份,存于互联网档案馆) Google Patent Search
  14. ^ MacWorld review of Wolfram Workbench. [2010-12-21]. (原始内容存档于2006-07-02). 
  15. ^ Using a Text-Based Interface页面存档备份,存于互联网档案馆) documentation at wolfram.com
  16. ^ Cliff Hastings. Wolfram Screencast & Video Gallery: Hands-on Start to Mathematica. wolfram.com. [2014-12-31]. (原始内容存档于2022-04-10). 
  17. ^ The 21st annual Editors' Choice Awards页面存档备份,存于互联网档案馆),Macworld, February 1, 2006.
  18. ^ gridMathematica offers parallel computing solution页面存档备份,存于互联网档案馆) by Dennis Sellers, MacWorld, November 20, 2002.
  19. ^ Mathematica Player Pro - new Application Delivery System for Mathematica页面存档备份,存于互联网档案馆) www.gizmag.com
  20. ^ 20.0 20.1 New Mathematica: faster, leaner, linkable and QuickTime-compatible: MathLink kit allows ties to other apps. (Wolfram Research Inc. ships Mathematica 2.1, new QuickTime-compatible version of Mathematica software)页面存档备份,存于互联网档案馆) by Daniel Todd, MacWeek, June 15, 1992.
  21. ^ .NET/Link页面存档备份,存于互联网档案馆): .NET/Link is a toolkit that integrates Mathematica and the Microsoft .NET Framework.
  22. ^ Charles Seiter. Mathematica 4.2: Feature-Rich Math Program Integrates with the Web, Adds Full Java Support. Macworld. 2002-11-01. (原始内容存档于2007-11-21). [失效链接]
  23. ^ Mathematica 5.1 Available 页面存档备份,存于互联网档案馆),Database Journal, Jan 3, 2005.
  24. ^ Mathematical Web Services: W3C Note 1 August 2003. [2010-12-21]. (原始内容存档于2022-01-20). 
  25. ^ Introduction to Web Services页面存档备份,存于互联网档案馆),Mathematica Web Services Tutorial
  26. ^ Haskell pakages. [2010-12-21]. (原始内容存档于2011-07-16). 
  27. ^ Unisoftware plus. [2017-08-21]. (原始内容存档于2011-07-17). 
  28. ^ MrMathematica website. [2010-12-21]. (原始内容存档于2011-06-05). 
  29. ^ Mathematica for ActivX. [2010-12-21]. (原始内容存档于2011-07-17). 
  30. ^ Pythonika MathLink module for Python. [2010-12-21]. (原始内容存档于2010-07-29). 
  31. ^ 存档副本. [2010-12-21]. (原始内容存档于2011-07-18). 
  32. ^ CalcLink页面存档备份,存于互联网档案馆) Lauschke Consulting
  33. ^ [1]页面存档备份,存于互联网档案馆) Mathematica Link for Excel
  34. ^ Mathsource item #618 for calling MATLAB from Mathematica页面存档备份,存于互联网档案馆) Roger Germundsson from Wolfram Research
  35. ^ R-Link页面存档备份,存于互联网档案馆) Calling R from within Mathematica
  36. ^ Using R's functionality with Mathematica (页面存档备份,存于互联网档案馆) Wolfram Technology Conference in 2006
  37. ^ 存档副本. [2010-12-21]. (原始内容存档于2012-07-08).  Calling Sage from Mathematica
  38. ^ http://facstaff.unca.edu/mcmcclur/Mathematica/Sage/UsingSage.nb页面存档备份,存于互联网档案馆) A Mathematica notebook to call Sage from Mathematica.
  39. ^ [2] Manuel Kauers and Viktor Levandovskyy of the Johannes Kepler University in Austria
  40. ^ * Interface Links Origin And Mathematica Software页面存档备份,存于互联网档案馆) Electronic Design
  41. ^ Mathematica Link to Labview页面存档备份,存于互联网档案馆) BetterView Consulting
  42. ^ DDFLink页面存档备份,存于互联网档案馆) Lauschke Consulting
  43. ^ GITM SourceForge
  44. ^ BTopTools页面存档备份,存于互联网档案馆) A commercial interface to USB devices
  45. ^ Interfacing Hardware with Mathematica. [2010-12-21]. (原始内容存档于2021-02-24). 
  46. ^ JMath website. [2011-06-07]. (原始内容存档于2022-04-07). 
  47. ^ MASH website. [2011-06-07]. (原始内容存档于2011-07-09). 
  48. ^ 存档副本. [2012-05-16]. (原始内容存档于2012-05-10). 
  49. ^ Math, the universe, and Stephen: the author of Mathematica created a whirlwind of scientific controversy this year when, after more than 10 years of research, he published his treatise on the ability of simple structures to create unpredictable complex patterns. (2002 Scientist Of The Year).(Stephen Wolfram)页面存档备份,存于互联网档案馆) by Tim Studt, R&D, November 1 , 2002.
  50. ^ A Top Scientist's Latest: Math Software by Andrew Pollack, The New York Times,June 24, 19988.
  51. ^ Quick Revision History of Mathematica. [2010-12-22]. (原始内容存档于2010-09-05). 
  52. ^ 存档副本. [2012-05-16]. (原始内容存档于2012-05-18). 
  53. ^ http://www.mathematica-journal.com/issue/v9i1/news.html页面存档备份,存于互联网档案馆) Mathematica Journal, Volume 9, Issue 1
  54. ^ Supercomputer Pictures Solve the Once Insoluble页面存档备份,存于互联网档案馆),John Markoff, October 30, 1988.
  55. ^ 55.00 55.01 55.02 55.03 55.04 55.05 55.06 55.07 55.08 55.09 55.10 [3]页面存档备份,存于互联网档案馆),Nasser M. Abbasi.
  56. ^ Mathematica 1.1. Biotechnology Software. Vogel, W. K.(1989)
  57. ^ Mathematica 1.2 adds new graphics options: upgrade also promises concurrent operations页面存档备份,存于互联网档案馆) by Elinor Craig, MacWeek,July 25, 1989.
  58. ^ Mathematica + 283 functions = Mathematica 2.0页面存档备份,存于互联网档案馆) by Raines Cohen, MacWeek,January 15, 1991.
  59. ^ New version of Mathematica页面存档备份,存于互联网档案馆),Mechanical Engineering,June 1, 1993.
  60. ^ [4]页面存档备份,存于互联网档案馆),Wolfram news archive, 1996.
  61. ^ Mathematica 4.0 Archive.is存档,存档日期2012-06-04 by Charles Seiters, Macworld,October 1, 1999.
  62. ^ Mathematica 5.0 Adds Up: Exactly 15 years after Mathematica's initial release, Wolfram Research has released Mathematica 页面存档备份,存于互联网档案馆),PC Magazine,September 3, 2003.
  63. ^ Mathematica 5.1's Web Services Add Up; Mathematica 5.1 delivers improvements over Version 5.0 that are vastly out of proportion for a .1 upgrade.页面存档备份,存于互联网档案馆) by Peter Coffee, eWeek,December 6, 2004.
  64. ^ Mathematica hits 64-bit页面存档备份,存于互联网档案馆),MacWorld UK, July 13, 2005.
  65. ^ [5]页面存档备份,存于互联网档案馆) Today, Mathematica is reinvented - Blog by Stephen Wolfram
  66. ^ Mathematica 6: Felix Grant finds that version 6 of Wolfram Research's symbolic mathematical software really does live up to its expectations.页面存档备份,存于互联网档案馆) Scientific Computing, 2007.
  67. ^ [6]页面存档备份,存于互联网档案馆),Wolfram Blog, 2007.
  68. ^ 68.0 68.1 [7]页面存档备份,存于互联网档案馆),Mathematica Quick Revision History.
  69. ^ [8]页面存档备份,存于互联网档案馆),Mathematica 7.0 Released Today! - Blog by Stephen Wolfram
  70. ^ [9]页面存档备份,存于互联网档案馆),Announcing Mathematica 7.0.1.
  71. ^ 存档副本. [2015-04-10]. (原始内容存档于2015-08-22). 
  72. ^ 存档副本. [2015-07-17]. (原始内容存档于2022-04-16). 
  73. ^ 存档副本. [2017-10-29]. (原始内容存档于2021-10-28). 
  74. ^ 存档副本. [2017-10-29]. (原始内容存档于2019-07-23). 
  75. ^ 存档副本. [2017-10-29]. (原始内容存档于2021-11-20). 
  76. ^ 存档副本. [2018-03-12]. (原始内容存档于2018-10-06). 
  77. ^ 存档副本. [2019-04-17]. (原始内容存档于2019-05-28). 
  78. ^ 存档副本. [2018-07-09]. (原始内容存档于2018-07-14). 
  79. ^ 存档副本. [2021-11-18]. (原始内容存档于2021-11-18). 
  80. ^ Mathematica Latest Version and Quick Revision History. [2022-10-09]. (原始内容存档于2022-10-09). 

外部链接