跳转到内容

Wolfram Mathematica

本页使用了标题或全文手工转换
维基百科,自由的百科全书

这是本页的一个历史版本,由DSisyphBot留言 | 贡献2012年11月2日 (五) 12:58 (r2.7.2) (机器人修改:nl:Mathematica (software)编辑。这可能和当前版本存在着巨大的差异。

Mathematica
File:MathematicaSpikeyVersion8.png
開發者Wolfram Research
首次发布1988年6月23日[1]
当前版本8.0.4(2011年10月24日,​13年前​(2011-10-24
操作系统跨平台
语言英文、中文和日语
类型数学软件
许可协议专有
网站Mathematica官网

Mathematica是由美国科学家斯蒂芬·沃尔夫勒姆领导的沃尔夫勒姆研究公司(位于美国伊利诺伊州香槟市)开发的一款广泛使用的计算软件。[2][3] 它拥有强大的数值计算和符号运算能力。它是目前为止使用最广泛的数学软件之一。同時,Mathematica也是沃尔夫勒姆公司的註冊商標。

软件名字“Mathematica”是由蘋果創辦人乔布斯向沃尔夫勒姆公司创立者斯蒂芬·沃尔夫勒姆提议的,並且沿用至今。[4]

概况

Mathematica是一款應用领域相当广泛的优秀数学软件。沃尔夫勒姆和他的工作团队在1986年开始Mathematica的研发。Mathematica1.0于1988年的1月23日正式发行。在2008年12月发行的Mathematica7.0已经有相应的中文版本。Mathematica8.0也已经于2010年11月和2010年12月分别推出了相应的英文版和日文版。

Mathematica 程序设计语言以“条目重写”为基础,并支持函数式和过程式程序设计(尽管一般来说函数式程序设计更为高效)。Mathematica的一项特色是,新的代码是以程序包(Package)的形式添加的,比如Mathematica语言中的文本文件

2008年,O'Reilly技术学校联合沃尔夫勒姆公司共同开发了AJAX版本的Mathematica,并用于在线数学课程[5]

沃尔夫勒姆公司于2011年3月23日发布了Mathematica 8.0.1简体中文版。该版本增加了500多个新函数,功能涵盖更多应用领域,并拥有更友好更高质量的中文用户界面、中文参考资料中心及数以万计的中文互动实例,使中国用户学习和使用Mathematica更加方便快捷。

产品功能

Mathematica的功能包括:[6]

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

界面

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

前端由 Theodore Gray 设计,提供了一个 GUI,它使得用户可以创建并且编辑一个“笔记本文档”,该笔记本文档可以包含程序代码和其它格式化的文本(比如公式、图像、GUI组件、表格、声音等),并且支持标准文字处理功能。所有的内容和格式都可以通过算法生成或者通过交互式方法进行编辑。

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

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

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

Mathematica代码例子

  • 下面舉出5個代码例子,Mathematica支援『自然的』表示法(第2、3例)
 In[1]:= Det@ReplaceAll[Table[i j, {i,0,5}, {j,0,5}], {0->1}]
 Out[1]:= 0
 


In[2]:= Out[2]:= 1240


In[3]:=

Out[3]:=


In[4]:= Plot[x*Sin[x],{x,-10,10},PlotStyle->{RGBColor[1,0,0]}] Out[4]:=


In[5]:= Solve[x2 + 7 x + 5 == 0, x]

Out[5]:=x → -7-,x → -7+

高性能计算

近年来,Mathematica 系统已经开始支持高性能计算。在Mathmatica 5.2版本中,它已经支持自动多线程计算。[12] 在 2002 年,gridMathematica 的引入使得用户级的 并行编程可以在不同的集群和多处理器系统中进行 [13] 在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 代码。[14] 此外,还有一个免费版本的 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 内核。[15]

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

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

其它与 Mathematica 相链接的语言包括 Haskell[21]AppleScript[22]、PLT Scheme[23]Visual Basic[24]Python[25]Clojure[26]

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

Mathematica 也提供了与许多专门的数学软件包之间的链接,包括 MATLAB[29]R [30][31]Sage[32][33]、 SINGULAR[34]、MathModelica 和 Origin [35]

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

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

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

支持的语言及软件

语言:C.NETJavaSQL

软件:OpenOfficeMicrosoft ExcelMATLABR

可计算数据

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

  • 天文数据: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 是受商业机密版权法限制的专有软件。[44]

一个用于商业环境中的单用户版 Mathematica 许可证价格为 2495 美元。它包括用于并行计算的四个额外内核,以及包含更新、技术支持、家用许可、一个 webMathematica Amateur 许可证[45]、一个 Wolfram Workbench 许可证和三个 Mathematica Player Pro 许可证的一年服务。对于政府、慈善机构、教育部门、大学预科、学校、学生和家用[46] 以及退休人员有专门的折扣,并且折扣价格取决于地理区域。学生许可证价格为140美元。教育站点许可证允许学生在家里使用。另外,类似 FLEXnet 的许可证管理器可以为群体用户提供许可证共享功能。

平台可用性

Mathematica 8 可以在许多不同的平台上运行,包括:Linux、Apple 的 Mac OS X 以及基于 NT 的 Microsoft Windows。所有平台都支持 64 位元实现。[47] 在 6.0.3 之前的版本还支持其它操作系统,包括:SolarisAIX、Convex、HP-UXIRIXMS-DOSNeXTSTEPOS/2、Ultrix 和 Windows Me[48].

Mathematica 家用版是 Microsoft WindowsLinuxMac OS X (Intel)上的一个32位应用程序。

版本历史

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

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

参见

  • Wolfram|Alpha——可计算知识引擎
  • Wolfram SystemModeler——一个与 Mathematica 集成的物理建模和仿真工具
  • IMTEK Mathematica Supplement——有限元仿真的开源 Mathematica 附加软件
  • 数学软件

参考文献

  1. ^ http://blog.wolfram.com/2008/06/23/mathematica-turns-20-today/
  2. ^ Stephen Wolfram: Simple Solutions; The iconoclastic physicist's Mathematica software nails complex puzzles, BusinessWeek, October 3, 2005.
  3. ^ Wolfram Research Contact Info
  4. ^ Wolfram, Stephen, STEVE JOBS: A FEW MEMORIES, Wolfram Alpha, 6 Oct 2011 [16 May 2012] 
  5. ^ Mathematica and the O'Reilly School of Technology: An Interview with Scott Gray. O'Reilly Media. [2008-02-21]. 
  6. ^ Mathematica documentation
  7. ^ Review: Mathematica 7. Technical computing powerhouse gets more oomph Macworld, Jan 2009
  8. ^ Mathematica 6 Labs Review Cadalyst Feb 1, 2008
  9. ^ The Free-Form Linguistics Revolution in Mathematica
  10. ^ MacWorld review of Wolfram Workbench
  11. ^ Using a Text-Based Interface documentation at wolfram.com
  12. ^ The 21st annual Editors' Choice Awards, Macworld, February 1, 2006.
  13. ^ gridMathematica offers parallel computing solution by Dennis Sellers, MacWorld, November 20, 2002.
  14. ^ Mathematica Player Pro - new Application Delivery System for Mathematica www.gizmag.com
  15. ^ 15.0 15.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.
  16. ^ .NET/Link: .NET/Link is a toolkit that integrates Mathematica and the Microsoft .NET Framework.
  17. ^ Mathematica 4.2: [[Feature-rich Feature-Rich Math Program Integrates with the Web, Adds Full Java Support] by Charles Seiter, Macworld, November 1, 2002.
  18. ^ Mathematica 5.1 Available , Database Journal, Jan 3, 2005.
  19. ^ Mathematical Web Services: W3C Note 1 August 2003
  20. ^ Introduction to Web Services, Mathematica Web Services Tutorial
  21. ^ Haskell pakages
  22. ^ Unisoftware plus
  23. ^ MrMathematica website
  24. ^ Mathematica for ActivX
  25. ^ Pythonika MathLink module for Python
  26. ^ [1]
  27. ^ CalcLink Lauschke Consulting
  28. ^ [2] Mathematica Link for Excel
  29. ^ Mathsource item #618 for calling MATLAB from Mathematica Roger Germundsson from Wolfram Research
  30. ^ R-Link Calling R from within Mathematica
  31. ^ Using R's functionality with Mathematica Wolfram Technology Conference in 2006
  32. ^ http://facstaff.unca.edu/mcmcclur/Mathematica/Sage/ Calling Sage from Mathematica
  33. ^ http://facstaff.unca.edu/mcmcclur/Mathematica/Sage/UsingSage.nb A Mathematica notebook to call Sage from Mathematica.
  34. ^ [3] Manuel Kauers and Viktor Levandovskyy of the Johannes Kepler University in Austria
  35. ^ * Interface Links Origin And Mathematica Software Electronic Design
  36. ^ Mathematica Link to Labview BetterView Consulting
  37. ^ DDFLink Lauschke Consulting
  38. ^ GITM SourceForge
  39. ^ BTopTools A commercial interface to USB devices
  40. ^ Interfacing Hardware with Mathematica
  41. ^ JMath website
  42. ^ MASH website
  43. ^ http://reference.wolfram.com/mathematica/guide/ScientificAndTechnicalData.html
  44. ^ /MathematicaLicenseAgreement.pdf Wolfram Mathematica License Agreement
  45. ^ /amateurorder.html webMathematica terms
  46. ^ /article/138664/2009/02/mathematica.html Mathematica Home Edition Released Macworld, Feb 2009
  47. ^ Supported platforms list
  48. ^ Mathematica 6 Platform Availability
  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
  52. ^ [4]
  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 [5], 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. ^ [6], Wolfram news archive, 1996.
  61. ^ Mathematica 4.0 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. ^ [7] 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. ^ [8], Wolfram Blog, 2007.
  68. ^ 68.0 68.1 [9], Mathematica Quick Revision History.
  69. ^ [10], Mathematica 7.0 Released Today! - Blog by Stephen Wolfram
  70. ^ [11], Announcing Mathematica 7.0.1.

外部连結