- MATLAB程序設計及應用
- 郭斯羽等編著
- 1883字
- 2022-05-06 19:27:44
1.4 與MATLAB類似的軟件
除了在1.2.2節中介紹的缺點,MATLAB還存在一個潛在風險,即它并非自主可控的軟件。因此,在某些特定的情況下,即使是合法的正版用戶,也可能不得不面臨沒有MATLAB可用的情形。本節將介紹幾種較為流行的、與MATLAB類似的科學計算免費軟件,由于它們與MATLAB的相似性,因此在極端情況下,用戶也能夠較快地切換到這些新的軟件中,完成一些較為常規和基礎的科學計算任務。
1. Scilab
Scilab(https://www.scilab.org/)最早可追溯到20世紀80年代,其前身是由法國國家信息與自動化研究所(INRIA)開發的計算機輔助控制系統設計軟件Blaise。Blaise的目的是為自動控制領域的研究者提供一個工具,它的開發也受到了MATLAB的啟發。在1984年,Blaise更名為Basile,然后由INRIA(法國計算機科學與控制國家研究院)的首個初創公司Simulog進行發行。
20世紀90年代初,Simulog停止了Basile的發行,該軟件更名為Scilab,由INRIA的Scilab工作組6位成員負責開發。INRIA決定以免費開源軟件的方式發行Scilab,其首個正式版本于1994年上傳至可匿名訪問的FTP服務器供使用者下載。Scilab工作組的開發工作一直進行到2002年。
從2003年開始,為了適應越來越多的使用人數需求,INRIA組建了Scilab Consortium以負責Scilab的開發、維護和技術支持。2008年,Scilab Consortium與Digiteo研究者網絡結合,Scilab的開發與維護即由Scilab Consortium在Digiteo內部開展進行。
到了2010年,在INRIA的支持下,Scilab Enterprises公司成立,以保證Scilab軟件的未來發展。從2012年開始,Scilab有關的開發工作等就完全由Scilab Enterprises公司負責了。
Scilab提供了數以百計的數學函數,能夠完成數值分析、數據可視化、算法開發和應用開發等任務,主要面向的領域包括數學、優化、統計、信號處理和控制系統等。此外,Scilab Enterprises還推出了Xcos軟件,用于類似Simulink的系統建模與仿真。
2. GNU Octave
GNU Octave(https://www.gnu.org/software/octave/index)是GNU項目中的一個免費軟件,可以運行于GNU/Linux、macOS、Windows等操作系統之上。Octave最早的目的是為化工專業的本科生提供一個化學反應器設計方面的輔助軟件,實際上Octave的命名就來自開發者的一位老師兼化學反應工程方面的專家Octave Levenspiel。但是這一目標的局限性很快就變得顯而易見,因此該軟件也開始向更為靈活、更為一般的計算軟件轉變。
現在,GNU Octave已經成為主要面向數值計算的一種高級編程語言,以及使用這種編程語言的軟件工具。Octave編程語言在很大程度上與MATLAB編程語言是兼容的,這就使得MATLAB用戶向Octave的遷移顯得尤為方便,甚至在沒有使用過于專業的工具箱函數時,MATLAB程序可以直接移植到Octave中。Octave的免費與開放性,使得用戶可以通過編寫和發布自己的程序,來不斷完善和強化Octave軟件的功能。
3. 基于Python編程語言的科學計算與可視化
Python編程語言作為一種免費開源的語言,由于其易用性與強大靈活的功能,在眾多領域獲得了應用。在科學計算方面,Python社區的開發者提供了NumPy、SciPy、Matplotlib和SymPy等多個軟件包,能夠高效地完成數組計算、數值和符號計算以及數據可視化的任務。
NumPy(https://www.numpy.org.cn/)是利用Python進行科學計算的基礎包,其中提供了類似MATLAB數組的N維數組對象ndarray,并重載了Python的運算符以支持矩陣運算;提供了類似MATLAB數組下標的N維數組的索引和切片,還提供了強大的線性代數、傅里葉變換和隨機數功能。
SciPy(https://www.scipy.org/)中包含了一系列數值算法,以及包括信號處理、最優化、統計等很多專門應用領域的工具箱。
Matplotlib(https://matplotlib.org/)提供了功能全面的可視化函數集,能夠繪制多種靜態圖形、動畫以及可交互圖形,包括各種常見的二維圖形和三維圖形。
SymPy(https://www.sympy.org/en/index.html)顧名思義是為了提供符號計算功能而開發的Python工具包,能夠進行表達式的變形、化簡、求解方程和方程組、微積分、組合學、幾何、統計、離散數學、矩陣運算乃至物理學和密碼學方面的符號計算。這些Python工具包共同完成了MATLAB中相當多的常見功能。當然,由于Python編程語言所支持的運算符和MATLAB并不相同,因此,在一些具體運算上,以及編程語言的表現形式上,兩者存在較為明顯的不同,但是在理解和掌握了MATLAB中對數組進行處理的方式和思路之后,對于具備Python編程語言基礎的開發者和研究者而言,兩者之間的轉換也并不困難。
除了上述免費開源軟件,還有其他一些國內外開發者負責的免費科學計算軟件,只不過從所實現的功能和使用人數而言,目前還與上述軟件存在一定的差距。
當然,我們在此介紹這些功能類似的免費軟件,目的并非是希望讀者就此放棄MATLAB而轉移到其他軟件的使用之上。我們的目的仍然是希望通過本書,使讀者特別是尚不具備編程能力的讀者,能夠較為迅速、容易地掌握一門具有實用性的編程語言,從而初步建立編程的思維能力,以及利用編程來解決學習、工作和生活中的實際問題的意識,特別是對于理工科專業的本科生,能夠利用這門編程語言,仿真和驗證基礎與專業課程中的結論,并能夠在學科競賽和科研實踐中解決具有實際應用背景的問題。從這個目的而言,MATLAB是一個良好的選擇。而在具備了MATLAB編程基礎并領會了數組計算的方式之后,如果有必要遷移到其他軟件或語言平臺,這種遷移將變得更為迅速和簡單。
- Getting Started with ResearchKit
- Kotlin Standard Library Cookbook
- Java Web開發技術教程
- OpenShift在企業中的實踐:PaaS DevOps微服務(第2版)
- FLL+WRO樂高機器人競賽教程:機械、巡線與PID
- Building Minecraft Server Modifications
- Yii Project Blueprints
- Rust游戲開發實戰
- Spring 5 Design Patterns
- Java EE 7 with GlassFish 4 Application Server
- Drupal Search Engine Optimization
- Mastering XenApp?
- 數據結構與算法詳解
- Learning Puppet
- Mastering VMware vSphere Storage