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

