GNU Octave

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 29. června 2017; kontroly vyžadují 18 úprav .
GNU Octave

GNU Octave 3.8.0 běžící z GUI
Typ matematický software
Autor John W. Eaton [d]
Vývojář John W. Eaton
Zapsáno v C++
Rozhraní Qt
Operační systém Linux , UNIX , Cygwin , Windows , Android [1]
První vydání 1988
Nejnovější verze 7.1.0 [2] (6. dubna 2022 ) ( 2022-04-06 )
Čitelné formáty souborů Data GNU Octave Matrix (text) [d]
Vygenerované formáty souborů Data GNU Octave Matrix (text) [d]
Licence GNU General Public License
webová stránka gnu.org/software/octave/
 Mediální soubory na Wikimedia Commons

GNU Octave  je svobodný softwarový systém pro matematické výpočty [3] využívající jazyk na vysoké úrovni kompatibilní s MATLABem [4] .

Octave poskytuje interaktivní příkazové rozhraní pro řešení lineárních a nelineárních matematických problémů a dalších numerických experimentů. Kromě toho lze Octave použít pro dávkové zpracování. Jazyk Octave pracuje s aritmetikou reálných a komplexních skalárů, vektorů a matic, má rozšíření pro řešení lineárních algebraických úloh, hledání kořenů soustav nelineárních algebraických rovnic, práci s polynomy, řešení různých diferenciálních rovnic, integraci systémů diferenciálu prvního řádu a diferenciálně-algebraické rovnice, integrující funkce na konečných a nekonečných intervalech. Tento seznam lze snadno rozšířit pomocí jazyka Octave (nebo pomocí dynamicky načítaných modulů vytvořených v C , C++ , Fortran atd.).

Technické detaily

Jazyk Octave

Octave  je interpretovaný programovací jazyk. Je podobná C a podporuje většinu základních funkcí standardní knihovny C, stejně jako základní unixové příkazy a systémová volání . Na druhou stranu nepodporuje předávání argumentů odkazem (funkce návrhu).

Syntaxe jazyka je velmi podobná MATLABu a dobře napsané skripty poběží v Octave i MATLABu .

Některé funkce

Rozhraní

Rozhraní příkazového řádku Octave je vytvořeno pomocí knihovny GNU Readline , která umožňuje přístup k jejím obvyklým funkcím, jako je doplňování kláves Tab ↹, historie příkazů a přírůstkové vyhledávání ( Ctrl+ R, Ctrl+ S), přemapování kláves atd. GUI je až na verzi 3.8.0 byl představen s doplňky (uměl zobrazovat grafy bez nich).

Octave Forge

Octave Forge [5] je správce balíčků rozšíření pro systém Octave.

Integrace s C++

Oktávové výrazy lze vyhodnotit z programů C++ . K tomu je v C++ zahrnuta speciální knihovna octave/oct.h. Například fragment kódu pro výpočet rand([9000,1]):

#include <octave/oct.h> ColumnVector NumRands ( 2 ); NumRands ( 0 ) = 9000 ; NumRands ( 1 ) = 1 ; octave_value_list f_arg , f_ret ; f_arg ( 0 ) = hodnota_oktávy ( NumRands ); f_ret = feval ( "rand" , f_arg , 1 ); Matice unis ( f_ret ( 0 ). hodnota_matice ()); Výkon

Na konci 90. let (2. série vydání) je výkon Octave výrazně horší než výkon MATLABu . [6] Na konci roku 2000 (3. série vydání) se však výkon těchto balíčků „téměř vyrovnal“ a zbývající rozdíl je připisován přítomnosti překladače-překladače (Just in Time - JIT ) v MATLAB , který není v oktávě . [7]

Paralelní počítání

Hlavními řešeními pro organizaci distribuovaných výpočtů v prostředí Octave jsou knihovny bcMPI, MPI Toolbox for Octave (MPITB), octave-parallel_mpi a paralelní (dříve octave-parallel) určené pro klastrové systémy a modul parcellfun obecné knihovny poskytující paralelní výpočty v měřítku. jeden stroj“ (na vícejádrových a masivně paralelních systémech).

První tři knihovny poskytují rozhraní pro skutečnou instalaci knihovny MPI a pokud je to možné, převádějí do Octave (bcMPI - a do MATLABu ) syntaxi podmnožiny volání MPI. Výpočty jsou tedy v těchto případech distribuovány pouze do té míry, pokud je připraví programátor, a jsou poskytovány v rámci možností instalace systému MPI.

Paralelní knihovna na druhé straně nevyžaduje prostředí jako MPI nebo PVM , ale poskytuje distribuci pomocí interních prostředků balíčku Octave .

Kompatibilita s MATLABem

Octave byl napsán s ohledem na kompatibilitu s MATLABem a implementuje mnoho jeho funkcí:

  • matice jako hlavní datové typy;
  • vestavěná podpora pro komplexní čísla;
  • výkonné vestavěné matematické funkce a velké knihovny funkcí;
  • rozšiřitelnost díky možnosti vytvářet vlastní funkce.

Ale jsou tu také některé rozdíly:

  • komentáře mohou začínat znakem # nebo %;
  • podporuje operátory podobné C++ ++, --, +=, *=, /=;
  • prvky lze adresovat bez vytváření nové proměnné, například [1:10](3);
  • data typu řetězec lze zadat buď znakem """ nebo znakem "'".

Literatura

Odkazy

Poznámky

  1. Octave - Android Apps na Google Play . Získáno 18. února 2013. Archivováno z originálu 9. března 2014.
  2. Vydána GNU Octave 7.1.0 . Archivováno z originálu 9. dubna 2022. Staženo 10. dubna 2022.
  3. Oktáva . Získáno 24. srpna 2009. Archivováno z originálu dne 22. listopadu 2017.
  4. O oktávě . Získáno 22. ledna 2011. Archivováno z originálu 25. ledna 2021.
  5. Octave Forge . Datum přístupu: 27. února 2018. Archivováno z originálu 28. února 2018.
  6. Eddelbuettel…
  7. Chaves a kol. …