GNU Octave

GNU Octave

GNU Octave
Autor inițialJohn W. Eaton[*][[John W. Eaton (author and maintainer of GNU Octave, worked as a computer administrator for a chemical engineering group at the University of Wisconsin–Madison)|​]]
Torsten Lilge[*][[Torsten Lilge |​]]  Modificați la Wikidata
DezvoltatorJohn W. Eaton
Versiune inițială1988
Ultima versiune9.1.0[1]  Modificați la Wikidata ()
Repohg.savannah.gnu.org/hgweb/octave Modificați la Wikidata
Scris înC++
Sistem de operareCross-platform
Disponibil în19 limbi
TipScientific computing
LicențăGNU General Public License
Prezență online
http://www.gnu.org/software/octave/
Modifică date / text Consultați documentația formatului


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:

  1. Matricea este tipul de dată fundamental.
  2. Suport inclus pentru numere complexe.
  3. Funcții matematice puternice și librării de funcții extinse.
  4. Extensibilitate sub formă de funcții definite de utilizator.

Există câteva diferențe importante, deși minore:

  1. Comentariile pot fi precedate de caracterul # cât și de caracterul %
  2. Diverși operatori specifici C sunt suportați: ++, --, +=, *=, /=
  3. Șirurile de caractere pot fi definite cu caracterul " precum și cu caracterul '.

Documentație

  • 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

  • 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

  • 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

  • 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

  1. ^ GNU Octave 9.1.0 Released (în engleză), , accesat în  
  2. ^ Eaton, John. „About Octave”. Accesat în . 
  3. ^ „GNU Octave - Controlling subprocesses”. . Arhivat din original la . Accesat în . 
  4. ^ „GNU Octave”. Accesat în . 
  5. ^ „Frequently asked questions about Octave (with answers)”. Arhivat din original la . Accesat în . 
  6. ^ „About Octave”. Accesat în . 
  7. ^ „Frequently asked questions about Octave (with answers)”. Arhivat din original la . Accesat în . 

Legături externe

  • en Octave.org Site oficial
  • v
  • d
  • m
Istorie
Licențe
Ghiduri
  • GNU Free System Distribution Guidelines
  • GNU Coding Standards
Software
Public
speakers
  • Alexandre Oliva
  • Benjamin Mako Hill
  • Bradley M. Kuhn
  • Eben Moglen
  • Georg C. F. Greve
  • Loïc Dachary
  • Ricardo Galli
  • Richard Stallman
  • Robert J. Chassell
  • John Sullivan
Alte subiecte
  • GNU/Linux naming controversy
  • Revolution OS
  • Free Software Foundation anti-Windows campaigns
  • Defective by Design
  • v
  • d
  • m
General
  • Termeni alternativi pentru programe libere
  • Compararea programelor sursă deschisă și cu sursă închisă
  • Compararea serviciilor de găzduire a codului sursă
  • Software liber
  • Cataloage cu proiecte de programe libere
  • Gratis versus liber
  • Suport pe termen lung
  • Software cu sursă deschisă
  • Dezvoltarea programelor cu sursă deschisă
  • Contur
  • Cronologia
Pachete
program
  • Audio
  • Bioinformatica
  • Codecuri
  • Gestiunea configurării
  • Drivere
    • Grafică
    • Fără fir
  • Geofizică
  • Medicină
  • Matematică
  • Suite Birou
  • Sisteme de operare
  • Limbaje de Programare
  • Rutare
  • Televiziune
  • Jocuri video
  • Aplicații web
    • E-comerț
  • Aplicații Android
  • Aplicații iOS
  • Comerciale
  • Înregistrate
  • Anterior proprietare
  • Anterior cu sursă deschisă
Comunitate
  • Free software movement
  • History
  • Open-source-software movement
  • Organizații
  • Evenimente
Licențe
  • AFL
  • Apache
  • APSL
  • Artistic
  • Beerware
  • BSD
  • Creative Commons
  • CDDL
  • EPL
  • Free Software Foundation
  • ISC
  • MIT
  • MPL
  • Python
  • Python Software Foundation License
  • Shared Source Initiative
  • Sleepycat
  • Unlicense
  • WTFPL
  • zlib
Tipuri și
standarte
  • Compararea licențelor
  • Contributor License Agreement
  • Copyleft
  • Debian Free Software Guidelines
  • Definition of Free Cultural Works
  • Definiția surselor deschise
  • Definiția unui program liber
  • Domeniul public
  • Licență liberă
  • Licență pentru surse deschise
  • Licență program permisivă
  • Licență virală
Provocari
  • Redenumirea aplicațiilor Mozilla
  • Calcul de încredere
  • Conflictele SCO/Linux
  • Drivere de dispozitive proprietare
  • Gestiunea drepturilor digitale
  • Patente program
  • Programe de dizpozitiv proprietare
  • Proliferarea Licențelor
  • Restricții electronice
  • Securitatea programelor
  • Software proprietar
Teme înrudite
  • Portal Portal
  • Categorie Categorie
Control de autoritate