- A+
Mathematica
Mathematica 是由美國物理學家 Stephen Wolfram 領導的 Wolfram Research 開發的數學系統軟件。它擁有強大的數值計算和符號計算能力, 在這一方面與 Maple 類似, 但它的符號計算不是基于 Maple 上的, 而是自己開發的。
Mathematica 的基本系統主要是用 C 語言開發的, 因而可以比較容易地移植到各種平臺上, Mathematica 是一個交互式的計算系統, 計算是在用戶和 Mathematica 互相交換、傳遞信息數據的過程中完成的。Mathematica 系統所接受的命令都被稱作表達式, 系統在接受了一個表達式之后就對它進行處理, 然后再把計算結果返回。Mathematica 對于輸入形式有比較嚴格的規定, 用戶必須按照系統規定的數學格式輸入, 系統才能正確地處理, 不過由于 3.0 版本引入輸入面板, 并且可以修改、重組輸入面板, 因此以前版本輸入指令時需要不斷切換大小寫字符的繁瑣方式得到很好的改善。3.0 版本可以用各種格式保存文件和剪貼內容, 包括 RTF、HTML、BMP 等格式。
Mathematica 的符號功能是最強的, 其運行構架也是最優的。它的構架由核心系統與前端系統構成。兩個系統既合作又獨立, 這比 Matlab 的構架要合理。Mathematica 是專為研究人員開發的。橫向比較的話, Mathematica 的符號能力比 Maple 強很多, Maple 基本上是為中學生與大學生之學習研發的, 不適合進行物理學與技術科學的運演; 而 Mathematica 是最好的物理學科研的工具, Matlab 是最好的技術科學數值求解的工具。
就做數學和應用數學的能力來說 Mathematica 不如 Maple; Mathematica 的內核不如 Maple 穩定(計算速度較 Maple 慢, 我是說純粹的計算時間, 不是輸入命令的時間, 目前的 Maple 的 Java 界面比較失敗, 讓人感覺算 Maple 算得慢, 其實不是這樣的)。Mathematica 的誘人之處是與其它數值軟件相比可以做符號運算, 與 Maple 相比二次開發性好, 工具包比 Maple 做的好。此外, 其自帶的語言是面向對象的, 很厲害, 很靈活。
優勢:
符號計算非常強大, 可解的方程類型最廣泛
非常強大和靈活的語言, 完成相同的工作, 和同類語言相比代碼量往往最少
語言高度統一, 支持相當多的編程范式, 過程式、函數式、元編程, 邏輯編程、基于規則。…
循環比較慢, 可以用 Compile 加速, 或使用 Map、Table、Nest 等代替循環
許多內置函數具備 AAS 機制 (AutomaticAlgorithmSelection)
擅長高精度和大數計算, 圖形方面的函數很豐富, 默認畫圖比 Matlab 和 Maple 更好看
界面美觀, 輸入公式很方便
幫助文檔很友好
缺點:
價格較高, 比 matlab 更貴 (Matlab 的價格取決于你要哪些工具箱)
向量化的操作比 Matlab 稍慢, 有時比 Matlab 更耗內存
代碼調試不是很方便, 但可以用 Wolfram Workbench(基于 Eclipse 的 IDE) 改善
程序語言學習曲線陡峭, 排除熟悉 Scheme、Haskell 等函數式語言或者作為高級計算器使用的人
(Mathematica 的語法和常見的過程式程序語言有較大不同, 雖然也可以作為過程式語言來用, 但代碼的和速度和優雅程度就大打折扣了)