什麼是 Octave ?
GNU Octave 是一個免費的開放原始碼軟體系統,主要用於數值計算與繪圖,尤其是在矩陣運算上,例如聯立方程式、eigenvectors 與 eigenvalues 等,透過其互動式的指令環境,使用者可以快速的解決各種數值上的問題,而其強大的繪圖功能可以將資料以各種方式呈現。
GNU Octave 也是一種語言,其語法與 Matlab 幾乎相同,是最接近 Matlab 的開放原始碼軟體,可使視為免費的 Matlab,由於 Octave 與 Matlab 的相容性高,加上開放原始碼的貢獻者的努力,目前 Octave 已經被廣泛的使用在學術界與業界。
Octave 允許使用者自行撰寫 Octave 程式,甚至擴充 Octave 的功能,由於 Octave 的開放原始碼與可擴充的特性,經由全世界眾多的 Octave 開發者持續貢獻,目前 Octave 已經有非常多的套件可以使用,使用者可以到 Octave-Forge 的官方網站查詢現有的 Octave 套件。
Octave 不能做什麼?
GNU Octave 是專門用於以數值方法解決各種數學與工程上的問題,也就是說它沒辦法計算數學上的解析解,它與 Mathematica 或 Maple 這類的代數運算軟體是不同的,若是您需要這類可以計算解析解的軟體,可以參考另一套開放原始碼的軟體 Maxima。
有誰在用 Octave ?
Octave 與 Matlab 被各領域的工程師與研究人員廣泛的使用在數值計算、演算法開發與測試等問題上,例如美國 NASA 使用它開發 spacecraft docking systems,Jaguar Racing 使用它分析來自一級方程式賽車的資料,Octave 與 Matlab 大幅降低撰寫程式的困難度,讓工程師與研究人員能夠快速的進行資料分析、系統開發與測試。
為什麼不使用一般的程式語言?例如 C++
C++ 與其他一般的程式語言是設計用在撰寫一般性的應用程式,然而解決數學與工程上的問題對於 C++ 這類的程式語言來說,通常需要耗費非常多的時間,另外像 C++ 這樣的程式語言也沒有內建繪圖功能,無法進行即時的視覺化分析,而 Octave 是專門設計用於處理這種問題的程式語言環境,它整合了程式語言、各種數值計算方法、與強大的繪圖功能,即便使用者對於一般的程式設計不甚熟悉,亦可以快速的使用 Octave 進行各種問題的處理與分析。
Octave 屬於直譯式語言(interpreted language),每一行指令由命令列(command-line)輸入,按下 Enter 鍵之後 Octave 會將命令轉換為機械碼(machine code)並執行,而一般編譯式語言(compiled language),例如 C++ 等,所有的程式碼都是寫在檔案中經過編譯器一次編譯後,產生可執行檔然後執行,編譯式語言的執行速度比直譯式語言快,但需要花費較多的時間編寫程式與編譯,對於測試與分析資料來說使用直譯式語言雖然程式的執行稍微慢了一些,但是卻可以大幅減少編寫程式的時間。