GNU Octave

Versiunea actuală a paginii nu a fost încă revizuită de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită la 29 iunie 2017; verificările necesită 18 modificări .
GNU Octave

GNU Octave 3.8.0 rulează din GUI
Tip de software-ul matematic
Autor John W. Eaton [d]
Dezvoltator John W. Eaton
Scris in C++
Interfață Qt
Sistem de operare Linux , UNIX , Cygwin , Windows , Android [1]
Prima editie 1988
ultima versiune 7.1.0 [2] (6 aprilie 2022 ) ( 06-04-2022 )
Formate de fișiere care pot fi citite Date GNU Octave Matrix (text) [d]
Formate de fișiere generate Date GNU Octave Matrix (text) [d]
Licență Licență publică generală GNU
Site-ul web gnu.org/software/octave/
 Fișiere media la Wikimedia Commons

GNU Octave  este un sistem software gratuit pentru calcul matematic [3] folosind un limbaj de nivel înalt compatibil cu MATLAB [4] .

Octave oferă o interfață de comandă interactivă pentru rezolvarea problemelor matematice liniare și neliniare și a altor experimente numerice. În plus, Octave poate fi folosit pentru procesarea în loturi. Limbajul Octave operează cu aritmetica scalarilor, vectorilor și matricelor reali și complexi, are extensii pentru rezolvarea problemelor algebrice liniare, găsirea rădăcinilor sistemelor de ecuații algebrice neliniare, lucrul cu polinoame, rezolvarea diverselor ecuații diferențiale, integrarea sistemelor diferențiale de ordinul întâi. și ecuații diferențiale-algebrice, care integrează funcții pe intervale finite și infinite. Această listă poate fi extinsă cu ușurință folosind limbajul Octave (sau folosind module încărcate dinamic create în C , C++ , Fortran etc.).

Detalii tehnice

Limba Octave

Octave  este un limbaj de programare interpretat. Este similar cu C și acceptă majoritatea funcțiilor de bază ale bibliotecii standard C, precum și comenzile de bază Unix și apelurile de sistem . Pe de altă parte, nu acceptă transmiterea argumentelor prin referință (o caracteristică de proiectare).

Sintaxa limbajului este foarte asemănătoare cu MATLAB , iar scripturile bine scrise vor rula atât în ​​Octave , cât și în MATLAB .

Unele caracteristici

Interfață

Interfața de linie de comandă a lui Octave este construită folosind biblioteca GNU Readline , care oferă acces la caracteristicile obișnuite ale acesteia din urmă, cum ar fi completarea tastelor Tab ↹, istoricul comenzilor și căutarea incrementală ( Ctrl+ R, Ctrl+ S), remaparea tastelor etc. GUI-ul este la versiunea actualizată. 3.8.0 a fost introdus cu adăugiri (ar putea afișa grafice fără ele).

Octave Forge

Octave Forge [5] este un manager de pachete de extensii pentru sistemul Octave.

Integrare cu C++

Expresiile octave pot fi evaluate din programele C++ . Pentru a face acest lucru, în C++ este inclusă o bibliotecă specială octave/oct.h. De exemplu, un fragment de cod pentru calcularea rand([9000,1]):

#include <octavă/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 ()); Performanţă

La sfârșitul anilor 1990 (a doua serie de lansări), performanța lui Octave este semnificativ inferioară celei MATLAB . [6] Cu toate acestea, până la sfârșitul anilor 2000 (a treia serie de versiuni), performanța acestor pachete „aproape egală”, iar diferența rămasă este atribuită prezenței unui interpret-compilator (Just in Time - JIT ) în MATLAB , care nu este în Octave . [7]

Calcul paralel

Principalele soluții pentru organizarea calculului distribuit în mediul Octave sunt bibliotecile bcMPI, MPI Toolbox for Octave (MPITB), octave-parallel_mpi și paralele (fostă octave-parallel) concepute pentru sistemele de cluster și modulul parcellfun al bibliotecii generale pentru a oferi calcul paralel la scară. o singură mașină" (pe sisteme multi-core și masiv paralele).

Primele trei biblioteci oferă o interfață pentru instalarea efectivă a bibliotecii MPI și, pe cât posibil, traduc în Octave (bcMPI - și în MATLAB ) sintaxa unui subset de apeluri MPI. În consecință, în aceste cazuri, calculele sunt distribuite numai în măsura în care sunt pregătite de programator și sunt furnizate în limitele posibilităților instalării sistemului MPI.

Biblioteca paralelă, pe de altă parte, nu necesită un mediu precum MPI sau PVM , dar oferă distribuție folosind mijloacele interne ale pachetului Octave .

Compatibilitate cu MATLAB

Octave a fost scrisă având în vedere compatibilitatea MATLAB și implementează multe dintre caracteristicile sale:

  • matricele ca principale tipuri de date;
  • suport încorporat pentru numere complexe;
  • funcții matematice încorporate puternice și biblioteci mari de funcții;
  • extensibilitate, datorită capacității de a crea funcții personalizate.

Dar există și câteva diferențe:

  • comentariile pot începe fie cu caracterul #, fie cu %;
  • suportă operatori de tip C++ ++, --, +=, *=, /=;
  • elementele pot fi abordate fără a crea o nouă variabilă, de exemplu [1:10](3);
  • Datele de tip șir pot fi specificate fie cu caracterul """ fie cu caracterul "'".

Literatură

Link -uri

Note

  1. Octave - Aplicații Android pe Google Play . Consultat la 18 februarie 2013. Arhivat din original pe 9 martie 2014.
  2. GNU Octave 7.1.0 Lansat . Arhivat din original pe 9 aprilie 2022. Preluat la 10 aprilie 2022.
  3. Octava . Preluat la 24 august 2009. Arhivat din original la 22 noiembrie 2017.
  4. Despre Octave . Preluat la 22 ianuarie 2011. Arhivat din original la 25 ianuarie 2021.
  5. Octave Forge . Data accesului: 27 februarie 2018. Arhivat din original pe 28 februarie 2018.
  6. Eddelbuettel…
  7. Chaves et al. …