GNU Octave

軟件截圖:
GNU Octave
軟件詳細信息:
版本: 4.4.0 更新
上傳日期: 22 Jun 18
開發: John W. Eaton
許可: 免費
人氣: 262

Rating: 2.7/5 (Total Votes: 3)

GNU Octave 是一個開源且免費分發的命令行軟件項目,旨在提供功能強大,易於使用且可擴展的高級語言,可用於處理數值計算


可用於數值求解線性和非線性問題

該軟件可用於數值解決線性和非線性問題,以及執行各種數值實驗。它與多範例數值計算環境Matlab兼容,可以用作面向批處理的語言。

此外,GNU Octave提供各種實用程序,允許您解決常見的數值線性代數問題,操縱多項式,集成普通函數,發現非線性方程的根,以及集成普通的微分代數和微分方程。 / p>

您可以使用動態加載的模塊或用戶定義的函數來擴展GNU Octave。這些可以用Octave自己的編程語言編寫,也可以用C,C ++,Fortran等編寫。

GNU Octave入門

有兩種方法可以在GNU / Linux操作系統上安裝GNU Octave。第一個是最簡單的,涉及搜索“octave”和“ocdve”。在您的發行版的軟件中心應用程序(例如Synaptic Package Manager)中打包。

第二種方法將幫助您安裝最新版本的產品,但它涉及在終端仿真器中執行命令。如果您對此感到失望,請從Softoware或項目的官方主頁下載最新的源代碼包(請參閱文章末尾的鏈接),將其保存在您的PC上並打開包裝。

打開終端模擬器應用,運行‘ cd’命令後跟提取的存檔文件位置的路徑(例如cd /home/softoware/octave-3.8.2),運行&。&configure / amp;&讓&rsquo的;命令配置和編譯程序,然後運行‘ sudo make install’命令安裝它。通過運行‘ octave’從命令行界面使用它。命令。

引擎蓋下

看看GNU Octave程序的內幕,我們可以注意到它完全是用C ++編程語言編寫的。我們已經使用上一節中提供的說明將它安裝在GNU / Linux的幾個發行版中,包括Arch Linux和Ubuntu。該軟件與32位和64位計算機平台兼容。

此新版本中的新功能

  • 一個Octave 3.8.x發布系列中最大的新功能是圖形用戶界面。這是用戶在過去幾年中經常要求的一件事,現在幾乎已經準備好了。但是因為它沒有我們想要的那麼精緻,所以我們決定等到4.0.x發布系列之後再將GUI作為默認界面(在此之前,您可以使用--force-gui選項啟動GUI )。

版本中的新功能

  • Octave 3.8.x發布系列的最大新功能之一是圖形用戶界面。這是用戶在過去幾年中經常要求的一件事,現在幾乎已經準備好了。但是因為它沒有我們想要的那麼精緻,所以我們決定等到4.0.x發布系列之後再將GUI作為默認界面(在此之前,您可以使用--force-gui選項啟動GUI )。

版本4.2.0中的新功能

  • Octave 3.8.x發布系列的最大新功能之一是圖形用戶界面。這是用戶在過去幾年中經常要求的一件事,現在幾乎已經準備好了。但是因為它沒有我們想要的那麼精緻,所以我們決定等到4.0.x發布系列之後再將GUI作為默認界面(在此之前,您可以使用--force-gui選項啟動GUI )。

版本4.0.3中的

新功能

  • Octave 3.8.x發布系列的最大新功能之一是圖形用戶界面。這是用戶在過去幾年中經常要求的一件事,現在幾乎已經準備好了。但是因為它沒有我們想要的那麼精緻,所以我們決定等到4.0.x發布系列之後再將GUI作為默認界面(在此之前,您可以使用--force-gui選項啟動GUI )。

版本4.0.1中的新功能

  • Octave 3.8.x發布系列的最大新功能之一是圖形用戶界面。這是用戶在過去幾年中經常要求的一件事,現在幾乎已經準備好了。但是因為它沒有我們想要的那麼精緻,所以我們決定等到4.0.x發布系列之後再將GUI作為默認界面(在此之前,您可以使用--force-gui選項啟動GUI )。

版本4.0.0中的新功能

  • Octave 3.8.x發布系列的最大新功能之一是圖形用戶界面。這是用戶在過去幾年中經常要求的一件事,現在幾乎已經準備好了。但是因為它沒有我們想要的那麼精緻,所以我們決定等到4.0.x發布系列之後再將GUI作為默認界面(在此之前,您可以使用--force-gui選項啟動GUI )。

版本3.8.2中

什麼是新

  • Octave 3.8.x發布系列的最大新功能之一是圖形用戶界面。這是用戶在過去幾年中經常要求的一件事,現在幾乎已經準備好了。但是因為它沒有我們想要的那麼精緻,所以我們決定等到4.0.x發布系列之後再將GUI作為默認界面(在此之前,您可以使用--force-gui選項啟動GUI )。

版本3.8.0中的新功能

  • Octave 3.8最大的新功能之一是圖形用戶界面。這是用戶在過去幾年中經常要求的一件事,現在幾乎已經準備好了。但是因為它沒有我們想要的那麼精緻,所以我們決定等到4.0.x發布系列之後再將GUI作為默認界面(在此之前,您可以使用--force-gui選項啟動GUI )。
  • 鑑於自上次主要版本Octave以來的時間長度以及錯誤修復和改進的數量,我們還決定不再推遲所有這些新改進的發布,只是為了完善GUI。所以請享受Octave的3.8版本和新GUI的預覽。我們相信它運作得相當好,但我們也知道有一些明顯的粗糙點和許多可以改進的東西。

版本3.4.0中的新功能

  • 現在需要BLAS和LAPACK庫來構建Octave。已從Octave源中刪除了參考BLAS和LAPACK庫的子集。
  • `lookup'函數被擴展為對通用二進制搜索更有用。使用此改進,重寫了ismember函數以獲得更好的性能。
  • 當在索引中使用時,實數,整數和邏輯矩陣現在將在成功用作索引時緩存內部index_vector值(從零開始的索引),從而消除了由相同矩陣進行後續索引的轉換代價。特別是,這意味著不再需要為了性能原因而使用find來避免邏輯數組重複索引。
  • 當用作索引時,邏輯矩陣現在被更有效地處理。 Octave將索引保持為邏輯掩碼,除非使用專門的代碼,真實元素的比例足夠小。以前,所有邏輯矩陣始終首先轉換為索引向量。這樣可以節省內存和計算時間。
  • `sub2ind'和`ind2sub'函數作為編譯函數重新實現,以獲得更好的性能。這些函數現在更快,可以為範圍提供更節約的結果,並且可以重用前一段中描述的索引緩存機制。
  • 關聯運算符(`plus',`times',`mtimes',`和',和'或')的內置函數已經擴展為接受多個參數。這對於對象(可能是不同類型)的求和(乘法等)列表特別有用:
  • matrix_sum = plus(matrix_list {:});
  • 已實現基於libcurl的FTP對像類型。這些對象允許管理ftp連接,下載和上載。例如,
  • fp = ftp(“ftp.octave.org); cd(fp,”gnu / octave“); mget(fp,”octave-3.2.3.tar.bz2“); close(fp);
  • `assert(observe,expected)'的默認行為已經放寬,採用不太嚴格的檢查,不需要值的內部匹配。由於未來Octave版本中引入了新的內部類,這可以避免以前有效的測試中斷。
  • 例如,由於新的優化和改進,所有這些斷言在Octave 3.0.x中都是正確的,但在3.2.x中是錯誤的:
  • 斷言(2 * linspace(1,5,5),2 *(1:5))斷言(零(0,0),[])置位(2 *個(1,5),(2) ((1,5)))
  • 庫函數`ismatrix',`issquare'和`issymmetric'的行為已經改變,以提高一致性。對於所有數字,邏輯和字符2-D或N-D矩陣,`ismatrix'函數現在返回true。以前,如果第一維或第二維為零,則`ismatrix'返回false。因此,`ismatrix([])'是假的,而`ismatrix(零(1,2,0))'是真的。
  • `issquare'函數現在返回一個邏輯標量,相當於表達式
  • ismatrix(x)&& ndims(x)== 2&& rows(x)== columns(x)
  • 不再返回尺寸。結果,`issquare([])'現在產生真。 `issymmetric'函數現在檢查對稱性而不是Hermitianness。對於後者,ishermitian被創造了。此外,返回邏輯標量而不是維度,因此`issymmetric([])'現在為真。函數句柄現在可以識別重載的函數。如果函數過載,則句柄在其引用時確定要調用哪個函數。不需要存在非重載版本。
  • 內置類(double,int8,cell等)的重載函數現在與Matlab兼容。
  • 現在可以將函數句柄與==和!=運算符以及`isequal'函數進行比較。
  • 多維數組已經改進了串聯(使用[])和函數`cat',`horzcat'和`vertcat'的性能。
  • 在某些情況下,操作賦值運算符+ =, - =,* =和/ =現在表現得更有效。例如,如果M是矩陣而S是標量,那麼語句
  • M + = S;

  • 如果沒有其他變量共享,
  • 將對M的數據進行就地操作,通常會增加時間和內存效率。只有選定的常見組合受到影響,即:矩陣+ =矩陣矩陣 - =矩陣矩陣。* =矩陣矩陣./=矩陣
  • 矩陣+ =標量矩陣 - =標量矩陣* =標量矩陣/ =標量
  • 邏輯矩陣| =邏輯矩陣邏輯矩陣& =邏輯矩陣
  • 其中矩陣和標量屬於同一個類。左側必須是一個簡單的變量引用。
  • 此外,當表達式中出現一元運算符時,如果它的參數是臨時表達式,Octave也會嘗試就地執行操作。
  • 應用於復數的比較運算符(,=)的效果已更改為與“max”,“min”和“sort”函數定義的嚴格排序一致。更具體地,通過對“[abs(z),arg(z)]”的詞典比較來比較複數。以前,只比較實際零件;這可以通過將操作數包裝在real()。
  • 中來實現
  • 複雜計算結果的自動簡化已經改變。 Octave現在將簡化具有零虛部或任何復數矩陣的任何復數,其中所有元素具有零虛部到實數值。以前,這只是針對正零來完成的。請注意,複數函數的行為不變,即使虛部為零,它仍會產生復數值。
  • 作為liboctave中代碼重構的副作用,二進制邏輯操作現在更容易適應編譯器優化,因此顯著更快。
  • Octave現在允許用戶定義的“subsasgn”方法來優化冗余副本。有關詳細信息,請參閱手冊。
  • 更有效的矩陣劃分處理。 Octave現在能夠處理表達式M'V M.' V V / M
  • 在某些情況下,
  • (M是矩陣,V是矢量)更有效。特別是,如果M是三角形,則所有三個表達式都將通過對xTRTRS(來自LAPACK)的單次調用來處理,並帶有適當的標誌。以前,所有三個表達式都需要M的物理轉置。
  • 更有效地處理某些混合實复矩陣運算。例如,如果RM是真實矩陣而CM是複數矩陣,則RM CM
  • 現在可以評估為
  • 複雜(RM real(CM),RM imag(CM))
  • complex(RM)CM,
  • 取決於尺寸。第一種形式需要更多的臨時和復制,但是FLOP計數減半,如果RM有足夠的行,通常會帶來更好的性能。以前,總是使用第二種形式。
  • 矩陣劃分同樣受到影響。
  • 更有效地處理從分解中返回的三角矩陣因子。用於計算QR,LU和Cholesky因子分解的函數現在將自動返回具有適當內部matrix_type集的三角矩陣因子,因此當矩陣用於除法時不需要計算它。
  • 內置的“sum”函數現在可以更有效地處理非本機求和(即單個或整數輸入的雙精度和),從而避免將整個輸入數組臨時轉換為雙精度。此外,“sum”現在可以接受額外的選項參數,使用補償求和算法而不是直接求和,如果在求和中發生大量取消,則可以顯著提高精度。
  • 內置的`bsxfun'函數現在使用優化代碼來處理傳入內置運算符句柄的某些情況。即,優化涉及運算符'plus',`minus',`times',`ldivide' ,`rdivide',`power',`和',`或'(對於邏輯數組),關係運算符`eq',`ne',`lt',`le',`gt',`ge',和函數“min”和“max”。優化僅適用於兩個操作數具有相同內置類的情況。混合的實數/複數和單/雙操作將首先將兩個操作數轉換為通用類型。
  • `strfind'和`strrep'函數現在已經編譯了實現,有助於顯著提高字符串中的搜索和替換效率,特別是對於更長的模式。 'strcat'的代碼已經過矢量化,現在連接多個字符串時效率更高。 `strcmpi'和`strncmpi'函數現在是內置函數,提供更好的性能。
  • 現在支持使用波浪號(〜)忽略輸入和輸出函數參數的Matlab樣式。可以使用內置函數“isargout”從函數中檢測忽略的輸出參數。有關詳細信息,請參閱手冊。
  • 自引入單元格以來不推薦使用的list數據類型已被刪除。
  • accumarray功能已經過優化,現在在某些重要情況下顯著更快。
  • isreal和isnumeric函數的行為被更改為更兼容Matlab。
  • 整數數學&轉換警告(Octave:int-convert-nan,Octave:int-convert-non-int-val,Octave:int-convert-overflow,Octave:int-math-overflow)已被刪除。
  • rem和mod現在是內置函數。它們還使用整數運算有效地處理整數類型。
  • 稀疏索引和索引分配大部分已被重寫。由於Octave使用壓縮列存儲用於稀疏矩陣,因此主要關注操作整列的操作。此類操作現在明顯更快,以及其他一些重要案例。
  • 此外,現在可以預先分配稀疏矩陣,並隨後通過分配填充它,前提是它們滿足某些條件。有關更多信息,請參閱`spalloc'函數,它不再僅僅是虛擬函數。因此,在Octave中,nzmax和nnz不再總是相等。 Octave也可以產生nnz <1的矩陣。 nzmax是其他操作的結果,所以除非你真的想使用nzmax(即為非零元素分配的空間),否則你應該始終使用nnz。
  • 稀疏連接也受到影響,並且連接稀疏矩陣,尤其是更大的集合,現在效率更高。這適用於[]運算符和cat / vertcat / horzcat函數。
  • 現在可以選擇使用xGESDD LAPACK驅動程序,使用配置偽變量svd_driver,使用svd()而不是默認的xGESVD來計算奇異值分解。當請求奇異向量時,xGESDD驅動程序的速度可提高6倍,但據報導,在病態嚴重的矩陣中,它的穩定性會稍差。
  • 配置偽變量,例如page_screen_output或confirm_recursive_rmdir(或上面提到的svd_driver),現在接受“local”選項作為第二個參數,請求在當前函數返回時撤消更改:function [status,msg] = rm_rf(dir)confirm_recursive_rmdir(false,“local”); [status,msg] = rmdir(dir,“s”); ... endfunction返回時,confirm_recursive_rmdir將恢復為進入函數時的值,即使函數rm_rf或其調用的任何函數中的變量有後續更改。
  • pkg現在接受-forge選項,用於自動從Octave Forge下載和安裝軟件包。例如,pkg install -forge general將自動下載常規包的最新版本並嘗試安裝它。不提供自動解析依賴關係。此外,
  • pkg list -forge可用於列出所有可用包。
  • **結構的內部數據表示已完全重寫,以使某些優化可行。現在可以在具有相同鍵但具有不同維度或值的結構之間共享字段數據,從而使得更快地保留字段的操作。經濟型存儲現在用於標量結構(就像大多數其他標量一樣),使其使用更具內存效率。結構上的某些類似數組的操作(連接,統一cellfun,num2cell)已經獲得了顯著的加速。另外,octave_scalar_map類現在提供了一個更簡單的接口來處理C ++ DLD函數中的標量結構。
  • **有兩種新格式可用於顯示數字:
  • format short eng format long eng
  • 兩個以工程符號顯示數字,即尾數+指數,其中指數是3的倍數。
  • **以下功能是Octave 3.4中的新功能:
  • accumdim erfcx nfields pqpnonneg uigetdir bitpack fileread nth_element quadcc uigetfile bitunpack fminbnd onCleanup randi uiputfile blkmm fskipl pbaspect repelems uimenu cbrt ifelse pie3 reset whitebg curl ishermitian powerset rsf2csf chop isindex ppder saveas daspect luupdate ppint strread divergence merge ppjumps textread
  • **不再支持使用圖像功能查看具有外部程序(如display,xv和xloadimage)的圖像。 image_viewer功能也已刪除。
  • **結構分配給非結構值的行為已更改。以前,可以覆蓋任意值:a = 1; a.x = 2;
  • 除非a是空矩陣或單元格數組,否則不再可能。
  • ** dlmread函數已擴展為允許為空字段指定自定義值。
  • **除文件名外,dlmread和dlmwrite函數已被修改為接受文件ID(由fopen返回)。
  • ** Octave現在可以優化匿名函數句柄的解釋器開銷,如果函數只是調用另一個函數或句柄,其某些參數綁定到某些值。示例:f = @(x)sum(x,1);
  • 當調用f時,調用將被轉發到@sum並附加常量1,並且調用堆棧上不會發生匿名函數調用。
  • 棄用功能。
  • 以下功能在Octave 3.2中已棄用,將從Octave 3.6中刪除(或3.2版之後的第二個主要版本):
  • create_set spcholinv splu dmult spcumprod spmax iscommand spcumsum spmin israwcommand spdet spprod lchol spdiag spqr loadimage spfind spsum mark_as_command sphcat spsumsq mark_as_rawcommand spinv spvcat spatan2 spkron str2mat spchol splchol unmark_command spchol2inv split unmark_rawcommand
  • 以下函數已在Octave 3.4中棄用,將從Octave 3.8中刪除(或3.4版之後的第二個主要版本):
  • autocor cellidx gammai krylovb值autocov dispatch glpkmex replot betai fstat is_global saveimage
  • 為了與Matlab兼容,mu2lin(x)現在相當於mu2lin(x,0)。
  • ARPACK庫現在與Octave一起分發,因此在構建Octave時不再需要作為外部依賴項使用。

版本3.2.3中的新功能

  • Octave 3.2.3是一個修復錯誤的版本

版本3.0.4中的新功能

  • Octave 3.0.4是一個修復錯誤的版本。自3.0.3版本發布以來報告的大多數錯誤已得到修復。請注意,Octave 3.0與Octave 2.1.x有很大不同,特別是在圖形,路徑處理和內置變量方面。

類似的軟件

Mercury
Mercury

15 Apr 15

JBasic
JBasic

3 Jun 15

Ubucompilator
Ubucompilator

12 May 15

顯影劑的其他軟件 John W. Eaton

Octave
Octave

2 Jun 15

意見 GNU Octave

評論沒有發現
添加評論
打開圖片!