GNU Octave
GNU Octave | |
![]() | |
![]() GNU Octave | |
Autor inițial | John W. Eaton[*] Torsten Lilge[*] ![]() |
---|---|
Dezvoltator | John W. Eaton |
Versiune inițială | 1988 |
Ultima versiune | 9.2.0[1] ![]() |
Repo | hg.savannah.gnu.org/hgweb/octave ![]() |
Scris în | C++ |
Sistem de operare | Cross-platform |
Disponibil în | 19 limbi |
Tip | Scientific computing |
Licență | GNU General Public License |
Prezență online | |
http://www.gnu.org/software/octave/ | |
Modifică date / text ![]() |
Octave este un program de calculator pentru efectuarea de calcule numerice. El este în general compatibil cu MATLAB. Este parte a GNU Project. Este un software liber în conformitate cu termenii Licența Publică Generală GNU.
Istorie
[modificare | modificare sursă]Proiectul a fost conceput în jurul anului 1988. La început a fost destinat să acompanieze un curs de proiectare a unui reactor chimic. Dezvoltarea propriu-zisă a fost inițiată de către John W. Eaton în 1992. Prima versiune alpha datează din 4 ianuarie, 1993 și în 17 februarie, 1994 a fost lansată versiunea 1.0. Versiunea 3.0 a fost lansată în 21 decembrie, 2007.
Este de remarcat faptul că numele nu are nimic de-a face cu octavele muzicale. Octave își trage numele de la Octave Levenspiel, un fost profesor al principalului autor, profesor care era renumit pentru abilitatea sa de a efectua rapid calcule.[2]
Detalii tehnice
[modificare | modificare sursă]- Octave este scris în C++ folosind librăriile STL.
- Octave folosește un interpretor pentru a executa limbajul Octave.
- Octave se poate extinde folosind module încărcate dinamic.
- Interpretorul lui Octave lucrează împreună cu gnuplot și software-ul Grace pentru a crea grafice, diagrame care se pot salva sau printa.
Octave, limbajul
[modificare | modificare sursă]Limbajul Octave este un limbaj de programare interpretat. Este un limbaj de programare structurat (similar cu C) și suportă multe funcții comune din C, și, de asemenea, anumite apeluri de sistem și funcții ale sistemelor compatibile POSIX.[3] Nu există, însă, suport pentru transmiterea argumentelor prin referință.[4]
Programele Octave constau dintr-o listă de funcții sau un script. Sintaxa este bazată pe matrice și oferă diverse funcții pentru operațiile cu matrice. Octave nu este orientat-obiect, dar suportă diverse structuri de date.
Sintaxa sa este foarte apropiată de cea din MATLAB, și cu o programare atentă a scriptului se poate obține rularea corectă atât în Octave cât și în MATLAB.[5]
Pentru că Octave este disponibil sub Licența Publică Generală GNU, poate fi copiat și utilizat în mod gratuit.[6] Programul rulează pe mai multe sisteme de operare ca: Unix, Unix-like, precum și pe Microsoft Windows.[7]
Caracteristici notabile
[modificare | modificare sursă]- Autocompletarea comenzilor și numelor de variabile
Apăsarea tastei TAB în linia de comandă determină Octave să încerce completarea numelor de fișiere, funcții sau variabile (similar cu comportamentul bash). Octave utilizează textul dinaintea cursorului ca porțiune inițială a numelui de completat.
- Istoricul comenzilor
Când rulează în mod interactiv, Octave salvează comenzile introduse într-un buffer intern pentru a putea fi reapelate și modificate.
- Structuri de date
Octave include un suport limitat pentru organizarea datelor în structuri. De exemplu:
octave:1> x.a = 1; x.b = [1, 2; 3, 4]; x.c = "string"; octave:2> x.a x.a = 1 octave:3> x.b x.b = 1 2 3 4 octave:4> x.c x.c = string
- Scurtcircuitarea operatorilor logici
Operatorii logici `&&' și `||' din Octave sunt evaluați prin scurtcircuitare (ca și operatorii echivalenți din limbajul C), spre deosebire de operatorii element cu element `&' și `|'.
- Operatorii de incrementare și decrementare
Octave include operatori de incrementare și decrementare, `++' și `--', similari cu cei din C, atât în formă prefixată, cât și în formă postfixată.
- Tratarea erorilor
Octave suportă o formă limitată de tratare a excepțiilor modelată după limbajul de programare LISP. Forma generală a unui bloc unwind_protect de tratare a erorilor arată astfel:
unwind_protect
body
unwind_protect_cleanup
cleanup
end_unwind_protect
- Liste de argumente de lungime variabilă
Octave are un mecanism real de tratare a funcțiilor ce primesc un număr nespecificat de argumente, fără limită superioară explicită. Pentru a specifica o listă de zero sau mai multe argumente, se utilizează argumentul special varargin
ca fiind ultim (sau unic) argument.
function s = plus (varargin)
if (nargin==0)
s = 0;
else
s = varargin{1} + plus (varargin{2:nargin});
endif
endfunction
- Liste de valori returnate cu lungime variabilă
O funcție poate returna orice număr de valori utilizând valoarea specială returnată varargout
. De exemplu:
function varargout = multiassign (data)
for k=1:nargout
varargout{k} = data(:,k);
endfor
endfunction
- Integrare cu C++
Cod Octave poate fi rulat și direct dintr-un program C++. De exemplu, acest cod apelează funcția Octave 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) = octave_value(NumRands);
f_ret = feval("rand",f_arg,1);
Matrix unis(f_ret(0).matrix_value());
Compatibilitatea cu MATLAB
[modificare | modificare sursă]Octave a fost construit să fie compatibil cu MATLAB. Are, prin urmare, multe care caracteristici asemenea cu MATLAB:
- Matricea este tipul de dată fundamental.
- Suport inclus pentru numere complexe.
- Funcții matematice puternice și librării de funcții extinse.
- Extensibilitate sub formă de funcții definite de utilizator.
Există câteva diferențe importante, deși minore:
- Comentariile pot fi precedate de caracterul # cât și de caracterul %
- Diverși operatori specifici C sunt suportați: ++, --, +=, *=, /=
- Șirurile de caractere pot fi definite cu caracterul " precum și cu caracterul '.
Documentație
[modificare | modificare sursă]- Documentație online Arhivat în , la Wayback Machine.
- Octave wiki
- Octave FAQ Wiki with new plotting commands Arhivat în , la Wayback Machine.
- Mailing List Archives on Nabble Arhivat în , la Wayback Machine. - Caută toate listele de discuții despre Octave.
- Mailing List Archives on Gmane Arhivat în , la Wayback Machine. - Caută toate listele de discuții despre Octave.
- Comunitatea Octave Arhivat în , la Wayback Machine.
Interfețe grafice
[modificare | modificare sursă]- QtOctave Graphical User Interface - Echivalent cu Matlab din punct de vedere al interfeței grafice. Este într-o puternică dezvoltare.
- Octave Workshop: an Octave IDE Arhivat în , la Wayback Machine. - Dezvoltarea a încetat în 2006
- Xoctave Arhivat în , la Wayback Machine. – Interfața grafică este foarte asemănătoare cu cea a Matlab.
- OctaveNB[nefuncțională]
Interfețe Web
[modificare | modificare sursă]- Web Interface to Octave Arhivat în , la Wayback Machine. - Efectuați calcule folosind Octave în browser-ul dumneavoastră.
- Online access to Octave - Acest site vă permite să efectuați calcule simple folosind Octave în mod online.
Add-ons
[modificare | modificare sursă]- Octave-forge community development page - Set de instrumente, pentru diferite probleme, de la dezvoltatori independenți.
- OctPlot - Grafice 2D de înalta calitate.
- Octave graphics add-on Arhivat în , la Wayback Machine. - Sistem de vizualizare în mod 3D pentru Octave.
- Octaviz - Sistem de vizualizare în mod 3D pentru Octave.
Note
[modificare | modificare sursă]- ^ GNU Octave 9.2.0 Released (în engleză), , accesat în
- ^ Eaton, John. „About Octave”. Accesat în .
- ^ „GNU Octave - Controlling subprocesses”. . Arhivat din original la . Accesat în .
- ^ „GNU Octave”. Accesat în .
- ^ „Frequently asked questions about Octave (with answers)”. Arhivat din original la . Accesat în .
- ^ „About Octave”. Accesat în .
- ^ „Frequently asked questions about Octave (with answers)”. Arhivat din original la . Accesat în .
Legături externe
[modificare | modificare sursă]- en Octave.org Site oficial