数学软件四大家族—MATLAB、MathCAD、Maple 和 Mathematica 优缺点比较
目錄
- 數學軟件四大家族—MATLAB、MathCAD、Maple 和 Mathematica 優缺點比較
- MATLAB 系統
- MathCAD 系統
- Maple V 系統
- Mathematica 系統
- 四種軟件的比較
數學軟件四大家族—MATLAB、MathCAD、Maple 和 Mathematica 優缺點比較
在科技和工程界上著名也比較流行的數學軟件主要有四個, 它們分別為 MATLAB、MathCAD、Maple 和 Mathematica。
在不同的領域或者目標方向, 可謂各有特色。
MATLAB 系統
MATLAB 原是矩陣實驗室 (Matrix Laboratory), 在 70 年代用來提供 Linpack 和 Eispack 軟件包的接口程序, 采用 C 語言編寫。從 80 年代出現 3.0 的 DOS 版本, 逐漸成為科技計算、視圖交互系統和程序語言。MATLAB 可以運行在十幾個操作平臺上, 比較常見的有基于 Windows 9X/NT、OS/2、Macintosh、Sun、Unix、Linux 等平臺的系統。
MATLAB 程序主要由主程序和各種工具包組成, 其中主程序包含數百個內部核心函數, 工具包則包括復雜系統仿真、信號處理工具包、系統識別工具包、優化工具包、神經網絡工具包、控制系統工具包、μ分析和綜合工具包、樣條工具包、符號數學工具包、圖像處理工具包、統計工具包等。而且 5.x 版本還包含一套幾十個的 PDF 文件, 從 MATLAB 的使用入門到其他專題應用均有詳細的介紹。
MATLAB 是數值計算的先鋒, 它以矩陣作為基本數據單位, 在應用線性代數、數理統計、自動控制、數字信號處理、動態系統仿真方面已經成為首選工具, 同時也是科研工作人員和大學生、研究生進行科學研究的得力工具。MATLAB 在輸入方面也很方便, 可以使用內部的 Editor 或者其他任何字符處理器, 同時它還可以與 Word6.0/7.0 結合在一起, 在 Word 的頁面里直接調用 MATLAB 的大部分功能, 使 Word 具有特殊的計算能力。
優勢:
- 線性代數和數值計算方面優勢顯著,
- 向量化運算往往比同類軟件更快,
- 擁有超多工具箱, 仿真, 圖像處理, 信號處理, 金融, 統計, 優化?!?/li>
- 程序語言比較易學, 編輯和調試環境不錯
- 方便構建 GUI
缺點:
- 不是原生支持符號計算(符號計算遠不止是推導公式), 新版的 mupad 內核還不錯, 但是和 Mathematica、Maple 比有明顯差距, 不論是深度、廣度和速度
- 遞歸特別慢, 比 Mathematica 和 Maple 以及常見的腳本語言都慢
- 在一些數學領域相對薄弱, 如數論, 圖論, 離散數學等
- 高精度和大數計算比較慢(如精確計算 100 萬的階乘或π的前 500 萬位)
- 工具箱之間的協作能力不是很好
- 界面不太好看(新版 R2013a 的 Ribbon 界面不錯)
- 缺省畫圖不美觀, 鋸齒, 系統函數命名不夠規范
MathCAD 系統
MathCAD 是美國 Mathsoft 公司推出的一個交互式的數學系統軟件。從早期的 DOS 下的 1.0 和 Windows 下的 4.0 版本, 到今日的 8.0 版本, 功能也從簡單的數值計算, 直至引用 Maple 強大的符號計算能力, 使得它發生了一個質的飛躍。
MathCAD 是集文本編輯、數學計算、程序編輯和仿真于一體的軟件。MathCAD7.0 Professional(專業版)運行在 Win9X/NT 下, 它的主要特點是輸入格式與人們習慣的數學書寫格式很近似, 采用 WYSWYG(所見所得)界面, 特別適合一般無須進行復雜編程或要求比較特殊的計算。MathCAD 7.0 Professional 還帶有一個程序編輯器, 對于一般比較短小, 或者要求計算速度比較低時, 采用它也是可以的。這個程序編輯器的優點是語法特別簡單。
MathCAD 可以看作是一個功能強大的計算器, 沒有很復雜的規則; 同時它也可以和 Word、Lotus、WPS2000 等字處理軟件很好地配合使用, 可以把它當作一個出色的全屏幕數學公式編輯器。
MathCAD 是美國 Mathsoft 公司推出的一個交互式的數學系統軟件。從早期的 DOS 下的 1.0 和 Windows 下的 4.0 版本, 到今日的 8.0 版本, 功能也從簡單的數值計算, 直至引用 Maple 強大的符號計算能力, 使得它發生了一個質的飛躍。
Maple V 系統
Maple V 是由 Waterloo 大學開發的數學系統軟件, 它不但具有精確的數值處理功能, 而且具有無以倫比的符號計算功能。Maple V 的符號計算能力還是 MathCAD 和 MATLAB 等軟件的符號處理的核心。Maple 提供了 2000 余種數學函數, 涉及范圍包括: 普通數學、高等數學、線性代數、數論、離散數學、圖形學。它還提供了一套內置的編程語言, 用戶可以開發自己的應用程序, 而且 Maple 自身的 2000 多種函數, 基本上是用此語言開發的。
Maple 采用字符行輸入方式, 輸入時需要按照規定的格式輸入, 雖然與一般常見的數學格式不同, 但靈活方便, 也很容易理解。輸出則可以選擇字符方式和圖形方式, 產生的圖形結果可以很方便地剪貼到 Windows 應用程序內。
5 個星的數學軟件, 純粹數學的巨人, 如果想做數學和應用數學的能力(數值的除外)其是最好的選擇。但是此軟件二次開發能力不好, 僅把軟件的發展目標放在數學上, 不想向其它領域發展。Maple 自帶的語言較容易理解, 就像用英語說話一樣。
優勢:
- 符號計算非常強大, 和 Mathematica 相比各有千秋
- 許多多項式操作比 Mathematica 更快
- 一些符號積分 Maple 也有速度優勢(特別是不定積分), 不過有時返回的結果沒有 Mathematica 給出的更嚴謹、魯棒性好, 能算的積分類型沒有 Mathematica 多
- Maple 的"適應性"更好, 有的問題 Mathematica 需要一定的預處理才能算的更快, 得出滿意的結果
- Maple 更擅長(偏)微分方程, (其實 Maple 和 Mathematica 都能解一些對方解不了的一些特殊微分方程)
- 可以帶步驟求解一些問題, Mathematica 需要第三方的 Package 或借助 WolframAlpha
- 上手較快, 一些常見的操作無需命令, 通過右鍵菜單就能完成
缺點:
- 界面有點卡(基于 Java swing), 經典界面流暢但是很土
- 自帶的代數方面的 package 比較豐富
- 化簡能力, 不等式求解, 邏輯系統較 Mathematica 遜色一些
- 數值計算總體上比 Matlab 和 Mathematica 差一些
- 高精度和大數計算方面強于 Matlab 弱于 Mathematica
- 統計方面有些薄弱
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 是最好的技術科學數值求解的工具。
4 個星的"數學"軟件, 在數學二字上加引號是因為他已經超越了純粹數學的范疇, 這主要表現在他不斷開發的面向于不同學科的工具包。就做數學和應用數學的能力來說 Mathematica 不如 Maple(并不是說其做不了, 不怕麻煩編程序也能做, 但是話說回來基本的東西都編程序的話, 那么和 Fortran 之類的語言沒什么區別了)。另一個問題是 Mathematica 的內核不如 Maple 穩定(計算速度較 Maple 慢, 我是說純粹的計算時間, 不是輸入命令的時間, 目前的 Maple 的 Java 界面比較失敗, 讓人感覺算 Maple 算得慢, 其實不是這樣的)。Mathematica 的誘人之處是與其它數值軟件相比可以做符號運算, 與 Maple 相比二次開發性好, 工具包比 Maple 做的好。此外, 其自帶的語言是面向對象的, 很厲害, 很靈活。
優勢:
- 符號計算非常強大, 可解的方程類型最廣泛
- 非常強大和靈活的語言, 完成相同的工作, 和同類語言相比代碼量往往最少
- 語言高度統一, 支持相當多的編程范式, 過程式、函數式、元編程, 邏輯編程、基于規則?!?/li>
- 循環比較慢, 可以用 Compile 加速, 或使用 Map、Table、Nest 等代替循環
- 許多內置函數具備 AAS 機制 (AutomaticAlgorithmSelection)
- 擅長高精度和大數計算, 圖形方面的函數很豐富, 默認畫圖比 Matlab 和 Maple 更好看
- 界面美觀, 輸入公式很方便
- 幫助文檔很友好
缺點:
- 價格較高, 比 matlab 更貴 (Matlab 的價格取決于你要哪些工具箱)
- 向量化的操作比 Matlab 稍慢, 有時比 Matlab 更耗內存
- 代碼調試不是很方便, 但可以用 Wolfram Workbench(基于 Eclipse 的 IDE) 改善
- 程序語言學習曲線陡峭, 排除熟悉 Scheme、Haskell 等函數式語言或者作為高級計算器使用的人
- (Mathematica 的語法和常見的過程式程序語言有較大不同, 雖然也可以作為過程式語言來用, 但代碼的和速度和優雅程度就大打折扣了)
四種軟件的比較
選用何種數學軟件? 如果僅僅是要求一般的計算或者是普通用戶日常使用, 首選的是 MathCAD, 它在高等數學方面所具有的能力, 足夠一般客戶的要求, 而且它的輸入界面也特別友好。
如果要求計算精度、符號計算和編程方面的話, 最好同時使用 Maple 和 Mathematica, 它們在符號處理方面各具特色, 有些 Maple 不能處理的, Mathematica 卻能處理, 諸如某些積分、求極限等方面, 這些都是比較特殊的。如果要求進行矩陣方面或圖形方面的處理, 則選擇 MATLAB, 它的矩陣計算和圖形處理方面則是它的強項, 同時利用 MATLAB 的 NoteBook 功能, 結合 Word6.0/7.0 的編輯功能, 可以很方便地處理科技文章。
如果僅僅是要求一般的計算或者是普通用戶日常使用, 首選的是 MathCAD, 它在高等數學方面所具有的能力, 足夠一般客戶的要求, 而且它的輸入界面也特別友好。如果要求計算精度、符號計算和編程方面的話, 最好同時使用 Maple 和 Mathematica, 它們在符號處理方面各具特色, 有些 Maple 不能處理的, Mathematica 卻能處理, 諸如某些積分、求極限等方面, 這些都是比較特殊的。如果要求進行矩陣方面或圖形方面的處理, 則選擇 MATLAB, 它的矩陣計算和圖形處理方面則是它的強項, 同時利用 MATLAB 的 NoteBook 功能, 結合 Word 的編輯功能, 可以很方便地編輯科技文章。
總結
以上是生活随笔為你收集整理的数学软件四大家族—MATLAB、MathCAD、Maple 和 Mathematica 优缺点比较的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 软件可靠性及其验证
- 下一篇: 常用CMOS数字集成电路