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
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
- 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
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
- 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
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
Interfețe grafice
Interfețe Web
Add-ons
Note
Legături externe
|
---|
Istorie | | |
---|
Licențe | |
---|
Ghiduri | |
---|
Software | |
---|
Public speakers | |
---|
Alte subiecte | |
---|