Wolfram Mathematica (簡稱:Mathematica)是一款科學計算軟件,有時候也被稱為電腦代數系統,廣泛使用於科學、工程、數學、計算等領域。

Quick Facts 開發者, 首次發佈 ...
Wolfram Mathematica
Thumb
Thumb
開發者沃爾夫勒姆研究公司
首次發佈1988年6月23日,​36年前​(1988-06-23[1]
目前版本
  • 1.0 (1988年6月23日)
  • 1.1 (1988年10月31日)
  • 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日)
  • 7.0 (2008年11月18日)
  • 8.0 (2010年11月15日)
  • 9.0 (2012年11月28日)
  • 10.0 (2014年7月9日)
  • 10.1 (2015年3月30日)
  • 10.2 (2015年7月14日)
  • 10.3 (2015年10月15日)
  • 10.4 (2016年3月2日)
  • 10.4.1 (2016年4月18日)
  • 11.0.0 (2016年8月8日)[2]
  • 11.0.1
  • 11.1.0 (2016年3月16日)
  • 11.1.1 (2017年4月)[3]
  • 11.2.0 (2017年9月)
  • 11.3.0 (2018年3月8日)[3]
  • 12.0 (2019年4月16日)[4]
  • 12.1 (2020年3月18日)[5]
  • 12.2 (2020年12月16日)[6]
  • 12.3 (2021年5月20日)[7]
  • 13.0 (2021年12月13日)[8]
  • 13.0.1 (2022年2月17日)[9]
  • 13.1 (2022年6月29日)[3]
  • 13.2 (2022年12月14日;穩定版本)[10][11]
  • 13.3 (2023年6月28日;穩定版本)[12]
  • 14.1 (2024年7月31日;穩定版本)[13][14]
編輯維基數據連結
程式語言Wolfram語言,[15] C/C++, Java和Mathematica[16]
作業系統跨平台(平台列表)
語言英語、漢語和日語
類型電腦代數系統、數值分析軟件、資訊視覺化、統計程式包、圖形化使用者介面
許可協定專有
網站www.wolfram.com/mathematica/
Close

它是由英國科學家斯蒂芬·沃爾夫勒姆提出構想,並且由他所領導的沃爾夫勒姆研究公司(位於美國伊利諾伊州香檳市)開發的一款廣泛使用的科學計算軟件[17][18]。它擁有強大的數值計算和符號運算能力,是目前為止使用最廣泛的數學軟件之一。

Wolfram語言是用於Mathematica的程式語言[19]

沃爾夫勒姆和他的工作團隊於1986年開始 Mathematica 的研發。Mathematica 1.0於1988年1月23日正式發行。2008年12月發行的Mathematica 7.0版及之後的版本有中文版。

產品功能

Mathematica的功能包括:[20]

  • 各種基本數學函式庫
  • 各種特殊屬性函式庫
  • 矩陣和數據操縱工具,包括對稀疏矩陣的處理
  • 支援複數、任意精度數、區間算術和符號運算
  • 2維和3維數據以及函數的視覺化和動畫工具
  • 求解方程組、常微分方程式偏微分方程式、微分代數方程式、時滯微分方程式遞歸關係式等等
  • 離散和連續微積分的數值和符號工具
  • 多變數統計程式庫,包括支援100多種數據分佈的數據擬合、假設檢定、概率和期望值的運算
  • 支援刪失數據、暫態數據、時間序列和有單位的數據
  • 隨機過程和佇列的計算及仿真
  • 為包括神經網絡在內的數據、圖像和聲音的有監督和無監督機器學習提供工具
  • 對運算和應用程式添加用戶介面的各種工具包
  • 約束和無約束局部及全域最佳化
  • 程式語言支援:程序式程式語言、函數式程式設計語言和物件導向的程式語言
  • 圖像處理工具[21],包括圖像辨識
  • 提供用於圖論中圖的分析和視覺化的工具
  • 分析組合問題的工具
  • 用於文字挖掘的工具
  • 數據探勘的工具,比如聚類分析字串對齊和模式匹配
  • 數論函式庫
  • 金融運算的工具,包括期權債券、年金、衍生工具等的計算
  • 群論函數
  • 技術文字處理,包括公式編輯器和自動報告生成
  • 用於聲音、圖像和數據的小波分析程式庫
  • 控制系統程式庫
  • 連續和離散的積分轉換
  • 匯入和匯出數據、圖像、影片、GISCAD[22]等各種檔案格式,並支援對生物醫學類數據的輸入和輸出
  • 連結Wolfram Alpha的大量數學、科學、社會經濟學類的數據集合
  • 檢視並且重新使用前面的輸入和輸出(包括圖像和文字記號)的筆記本介面
  • 和基於DLL、SQLJava.NETC++FORTRANCUDAOpenCL以及http的系統相連結的工具
  • 編寫並列程式的工具
  • 當與互聯網連接時,在筆記本中可同時使用「自由格式語言輸入」(一個自然語言型的用戶介面)[23]和Wolfram語言

筆記本介面

Mathematica分為兩部分:內核和前端。內核對表達式(即Wolfram語言代碼)進行解釋,並且返回結果表達式。

前端由西奧多·格雷於1988年設計[24],它提供了一個允許用戶建立並且編輯一個「筆記本文件」的GUI,該筆記本文件可以包含程式碼、格式化文字以及包括公式、圖像、GUI組件、表格、聲音在內的各種輸出結果。所有的內容和格式都可以通過演算法生成或者通過互動式方法進行編輯。其支援大多數標準文書處理功能,還含有一個多語種的即時拼寫檢查器。

文件可以使用層次式單元進行結構化處理,這樣便於對文件劃分章節。文件也可以表示為幻燈片形式,便於進行演講。筆記本與其內容均以Mathematica表達式的形式儲存,並且可用使用Mathematica程式進行建立、編輯和修改,而且還可以轉化為其它格式,比如TeX或者XML

前端包括開發工具,比如除錯器、輸入自動補全、以及自動語法着色。

預設情況下,Mathematica使用一個標準前端,不過也有其它前端可供選擇,包括Wolfram Workbench、2006年引入的基於EclipseIDE。它們為Mathematica提供了面向專案的開發工具,包括版本管理、除錯、歸檔和測試。[25]此外,Mathematica還包括一個命令列前端(Mathematica Kernel)。[26]

沃爾夫勒姆研究公司已經推出一系列初學者入門影片,介紹用戶介面和引擎。[27]

高效能計算

近年來,Mathematica系統已經開始支援高效能計算。在Mathmatica 5.2版本中,它已經支援自動多線程計算[28]。2002年,gridMathematica頁面存檔備份,存於互聯網檔案館)的引入使得用戶級的並列編程可以在不同的叢集和多處理器系統中進行[29]在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代碼。[30]此外,還有一個免費版本的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內核[31]

使用.NET/Link[32],任何一個.NET程式都可以呼叫Mathematica執行計算操作;相應地,Mathematica程式也可以載入.NET classes、操縱.NET物件並且執行方法呼叫。這樣我們就可以從Mathematica內部構建.NET 圖形化使用者介面。類似地,Mathematica也有J/Link[33]。顧名思義,它可以用於Mathematica與Java程式之間的互動。

SQL資料庫之間的通訊是通過內建的JDBC支援實現的。[34] Mathematica也可以從一個WSDL描述中安裝網頁服務[35][36]

Mathematica支援生成和執行 Modelica系統建模的模型,並連線到Wolfram System Modeler.

連結也可用於許多第三方軟件包和API.[37]

Mathematica還可以從各種來源捕獲實時資料[38] 並可以讀取和寫入公共區塊鏈 (Bitcoin, Ethereum, and ARK).[39]

它支援匯入和匯出220多個資料、影象、影片、聲音, 電腦輔助設計 (CAD), 地理資訊系統 (GIS),[40] 檔案和生物醫學格式。


其它與Mathematica相連結的語言套件括Haskell[41]AppleScript[42]、PLT Scheme[43]Visual Basic[44]Python[45]Clojure[46]

在Mathematica和OpenOffice.org Calc[47]以及Microsoft Excel[48]之間有雙向的連結。

Mathematica也提供了與許多專門的數學軟件套件之間的連結,包括MATLAB[49]R [50][51]Sage[52][53]、SINGULAR[54]、MathModelica和Origin [55]

Mathematica中的數學公式也可以與其它計算或者排版軟件(比如MathML)的公式進行相互轉換。

Mathematica可以通過多種方式擷取即時數據,比如與LabVIEW的連結[56],金融數據feeds [57],或者直接通過GPIB從硬件裝置(IEEE 488)[58]USB[59]以及串行介面[60]取得。

其他可用介面有JMath,[61]它基於GNU readline和MASH[62],並利用UNIX命令列執行內建的Mathematica程式(內含參數)。

可計算數據

Mathematica囊括了大量可立即計算的數據。用戶可以通過編程訪問這些數據,並且也可以通過Wolfram Research數據伺服器自動更新數據[63]。某些數據如股票價格和天氣數據都是即時遞送的。目前數據集包括:

  • 天文數據: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的億萬兆數據

版本歷史

Thumb
Mathematica版本

Mathematica的產生是基於Cole和Wolfram早期的符號操作程式(SMP)的創意。[64][65]

Wolfram Research已經發佈了如下Mathematica版本[66]

參見

參考文獻

外部連結

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.