Wolfram Mathematica

Wolfram Mathematica （簡稱：Mathematica）是一款科學計算軟件，有時候也被稱為計算機代數系統，廣泛使用於科學、工程、數學、計算等領域。
它是由英國科學家斯蒂芬·沃爾夫勒姆提出構想，並且由他所領導的沃爾夫勒姆研究公司（位於美國伊利諾伊州香檳市）開發的一款廣泛使用的科學計算軟件。它擁有強大的數值計算和符號運算能力，是目前為止使用最廣泛的數學軟件之一。
Wolfram語言是用於Mathematica的編程語言。
沃爾夫勒姆和他的工作團隊於1986年開始 Mathematica 的研發。Mathematica 1.0於1988年1月23日正式發行。2008年12月發行的Mathematica 7.0版及之後的版本有中文版。

**產品功能**
Mathematica的功能包括：- 各種基本數學函數庫- 各種特殊屬性函數庫- 矩陣和數據操縱工具，包括對稀疏矩陣的處理- 支持複數、任意精度數、區間算術和符號運算- 2維和3維數據以及函數的可視化和動畫工具- 求解方程組、常微分方程、偏微分方程、微分代數方程、時滯微分方程、遞推關係式等等- 離散和連續微積分的數值和符號工具- 多變量統計程序庫，包括支持100多種數據分佈的數據擬合、假設檢驗、概率和期望的運算- 支持刪失數據、暫態數據、時間序列和有單位的數據- 隨機過程和隊列的計算及仿真- 為包括神經網絡在內的數據、圖像和聲音的有監督和無監督機器學習提供工具- 對運算和應用程序添加用戶界面的各種工具包- 約束和無約束局部及全局最優化- 程序語言支持：過程式編程語言、函數式編程語言和麵向對象的編程語言- 圖像處理工具，包括圖像識別- 提供用於圖論中圖的分析和可視化的工具- 分析組合問題的工具- 用於文本挖掘的工具- 數據挖掘的工具，比如聚類分析、字符串對齊和模式匹配- 數論函數庫- 金融運算的工具，包括期權、債券、年金、衍生工具等的計算- 群論函數- 技術文本處理，包括公式編輯器和自動報告生成- 用於聲音、圖像和數據的小波分析程序庫- 控制系統程序庫- 連續和離散的積分變換- 導入和導出數據、圖像、視頻、GIS、CAD等各種文件格式，並支持對生物醫學類數據的輸入和輸出- 鏈接Wolfram Alpha的大量數學、科學、社會經濟學類的數據集合- 查看並且重新使用前面的輸入和輸出（包括圖像和文本記號）的筆記本界面- 和基於DLL、SQL、Java、.NET、C++、Fortran、CUDA、OpenCL以及http的系統相鏈接的工具- 編寫並行程序的工具- 當與互聯網連接時，在筆記本中可同時使用“自由格式語言輸入”（一個自然語言型的用戶界面）和Wolfram語言

**筆記本界面**
Mathematica分為兩部分：內核和前端。內核對錶達式（即Wolfram語言代碼）進行解釋，並且返回結果表達式。
前端由西奧多·格雷於1988年設計，它提供了一個允許用戶創建並且編輯一個“筆記本文檔”的GUI，該筆記本文檔可以包含程序代碼、格式化文本以及包括公式、圖像、GUI組件、表格、聲音在內的各種輸出結果。所有的內容和格式都可以通過算法生成或者通過交互式方法進行編輯。其支持大多數標準文字處理功能，還含有一個多語種的即時拼寫檢查器。
文檔可以使用層次式單元進行結構化處理，這樣便於對文檔劃分章節。文檔也可以表示為幻燈片形式，便於進行演講。筆記本與其內容均以Mathematica表達式的形式存儲，並且可用使用Mathematica程序進行創建、編輯和修改，而且還可以轉化為其它格式，比如TeX或者XML。
前端包括開發工具，比如調試器、輸入自動補全、以及自動語法著色。
默認情況下，Mathematica使用一個標準前端，不過也有其它前端可供選擇，包括Wolfram Workbench、2006年引入的基於Eclipse的IDE。它們為Mathematica提供了面向項目的開發工具，包括版本管理、調試、歸檔和測試。此外，Mathematica還包括一個命令行前端（Mathematica Kernel）。
沃爾夫勒姆研究公司已經推出一系列初學者入門視頻，介紹用戶界面和引擎。

**高性能計算**
近年來，Mathematica系統已經開始支持高性能計算。在Mathmatica 5.2版本中，它已經支持自動多線程計算。2002年， gridMathematica date=20110612185503 的引入使得用戶級的並行編程可以在不同的集群和多處理器系統中進行在2008年，在所有的Mathematcia許可證中囊括了並行計算技術，包括支持網格技術如Windows HPC Server 2008、Microsoft Compute Cluster Server和Sun Grid。2010年，Mathematica增加了對CUDA和OpenCL GPU硬件的支持。另外，第8版還可以生成C代碼，它可以自動由系統C編譯器進行編譯，比如Intel C++編譯器或者Visual Studio 2010編譯器。

**部署**
用戶可以通過多種解決方案部署使用Mathematica編寫的應用程序：
Mathematica Player Pro是Mathematica的“只讀”版本，它可以運行任何Mathematica應用程序，但是不允許編輯或者創建Mathematica代碼。此外，還有一個免費版本的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內核。
使用.NET/Link，任何一個.NET程序都可以調用Mathematica執行計算操作；相應地，Mathematica程序也可以加載.NET classes、操縱.NET對象並且執行方法調用。這樣我們就可以從Mathematica內部構建.NET 圖形用戶界面。類似地，Mathematica也有J/Link。顧名思義，它可以用於Mathematica與Java程序之間的交互。
與SQL數據庫之間的通訊是通過內置的JDBC支持實現的。Mathematica也可以從一個WSDL描述中安裝網頁服務。
Mathematica支援生成和執行 Modelica系統建模的模型，並連線到Wolfram System Modeler.
連結也可用於許多第三方軟體包和API.
Mathematica還可以從各種來源捕獲實時資料並可以讀取和寫入公共區塊鏈 (Bitcoin, Ethereum, and ARK).
它支援匯入和匯出220多個資料、影象、影片、聲音, 電腦輔助設計 (CAD), 地理信息系統 (GIS)，檔案和生物醫學格式。
其它與Mathematica相鏈接的語言包括Haskell、AppleScript、PLT Scheme、Visual Basic、Python  和Clojure。
在Mathematica和OpenOffice.org Calc以及Microsoft Excel之間有雙向的鏈接。
Mathematica也提供了與許多專門的數學軟件包之間的鏈接，包括MATLAB、R語言、SageMath、SINGULAR、MathModelica和Origin。
Mathematica中的數學公式也可以與其它計算或者排版軟件（比如MathML）的公式進行相互轉換。
Mathematica可以通過多種方式捕獲即時數據，比如與LabVIEW的鏈接，金融數據feeds ，或者直接通過GPIB從硬件設備（IEEE 488）、USB以及串行接口獲取。
其他可用界面有JMath,它基於GNU readline和MASH，並利用UNIX命令行運行內置的Mathematica程序（內含參數）。

**可計算數據**
Mathematica囊括了大量可立即計算的數據。用戶可以通過編程訪問這些數據，並且也可以通過Wolfram Research數據服務器自動更新數據。某些數據如股票價格和天氣數據都是即時遞送的。目前數據集包括：- 天文數據：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）的創意。
Wolfram Research已經發布瞭如下Mathematica版本：- 1.0（1988年6月23日）- 1.1（1989年）- 1.2（1989年8月1日）- 2.0（1991年1月15日）- 2.1（1992年6月15日）- 2.2（1993年6月1日）- 3.0（1996年9月3日）- 4.0（1999年5月19日）- 4.1（2000年11月2日）- 4.2（2002年11月1日）- 5.0（2003年6月12日）- 5.1（2004年10月25日）- 5.2（2005年6月20日）- 6.0（2007年5日1日）- 6.0.1（2007年6月5日）（此版本以及之後版本具有中文版）- 6.0.2（2008年2月）- 6.0.3（2008年6月）- 7.0（2008年11月18日）- 7.0.1（2009年3月5日）- 8.0（2010年11月15日）- 8.0.1（2011年3月7日）- 8.0.4（2011年10月24日）- 9.0.0（2012年11月28日）- 9.0.1（2013年1月31日）- 10.0.0（2014年7月9日）- 10.0.1（2014年9月17日）- 10.0.2（2014年12月10日，僅有英文界面）- 10.1（2015年3月30日）- 10.2（2015年7月14日）- 10.3（2015年10月15日）- 10.3.1（2015年12月16日）- 10.4（2016年3月2日）- 10.4.1（2016年4月18日）- 11.0.0（2016年8月8日）- 11.0.1（2016年9月28日）- 11.1（2017年3月16日）- 11.1.1（2017年5月）- 11.2（2017年9月14日）- 11.3（2018年3月8日）- 12.0（2019年4月16日）- 12.1 (2020年3月)- 12.1.1 （2020年6月）- 12.2（2020年12月）- 12.3（2021年5月）- 12.3.1（2021年7月）- 13（2021年12月）- 13.0.1（2022年2月）- 13.1（2022年6月）- 13.2（2022年12月）- 13.2.1（2023年2月）- 13.3 （2023年6月）-  13.3.1（2023年8月）-  14.0（2024年1月）-  14.1（2024年7月）

**參見**
 計算機代數系統比較- 多重編程範式- 動態語言- 第四代程式語言- 函數式編程- 文學編程- Wolfram語言- Wolfram Alpha——可計算知識引擎- Wolfram SystemModeler——一個與Mathematica集成的物理建模和仿真工具- IMTEK Mathematica Supplement——有限元仿真的開源Mathematica附加軟件- 數學軟件

**參考文獻**

**外部鏈接**
  Wolfram Mathematica官方網站 date=20180715072440 -  Mathematica參考資料中心 date=20180714230050 -  Wolfram Research中文官方網站 date=20211009212413 -  Mathematica中文討論 date=20111116195802 -  MathWorld date=2000-02-29 -  Wolfram官方微博 date=20210811224645 - 斯蒂芬·沃爾夫勒姆 著，赫孝良、周義倉 譯：《Mathematica全書》，西安交通大學出版社，2002年- 吳飛 著：《Mathematica演示項目筆記》，清華大學出版社，2010年