Octave linguaggio di programmazione ad alto livello per il calcolo matematico.

Creato il 16 maggio 2011 da Hugor @msdiaz61

Octave è un linguaggio di programmazione ad alto livello per il calcolo matematico, usato fondamentalmente in modo interattivo.
Ha un insieme di funzionalità fornite per il calcolo matriciale come rango e determinante o specialistiche come decomposizione ai valori singolari (SVD), fattorizzazione LU; sebbene le consenta la soluzione numerica di sistemi lineari non svolge calcolo simbolico o altre attività tipiche di un sistema di algebra computazionale.
Viene usato attraverso un terminale a caratteri, come una console virtuale di GNU/Linux, ma per ottenere dei grafici si avvale di Gnuplot che così è opportuno sia installato assieme a Octave.
L'interazione tra Gnuplot e Octave è trasparente, se il secondo viene utilizzato in una finestra di terminale all'interno del sistema grafico X.
In queste sezioni si mostra solo qualche piccolo assaggio di Octave che dispone di ampia documentazione per conto proprio: info octave.
Anche Octave utilizza la libreria Readline per il controllo della riga di comando, con tutti i vantaggi che ciò comporta per l'utilizzatore.
Octave è facilmente estendibile e customizzabile, sia attraverso funzioni scritte nel linguaggio nativo di Octave, sia attraverso moduli caricabili dinamicamente che possono essere scritti in C, C++, Fortran e altri linguaggi.
Per chi utilizza Matlab e cerca un'alternativa funzionale e open source, Octave è senz'altro la scelta migliore.
Nota: Octave è anche disponibile per Mac come parte del progetto Fink. Chi fosse interessato può trovare ulteriori informazioni direttamente sul sito del progetto Fink

 Aggiornamenti:

Ultima versione stabile rilasciata: 3.4.0 (08/02/2011)


Novità:


Summary of important user-visible changes for version 3.4:
---------------------------------------------------------

 ** BLAS and LAPACK libraries are now required to build Octave.  The
    subset of the reference BLAS and LAPACK libraries has been removed
    from the Octave sources.

 ** The `lookup' function was extended to be more useful for
    general-purpose binary searching.  Using this improvement, the
    ismember function was rewritten for significantly better
    performance.

 ** Real, integer and logical matrices, when used in indexing, will now
    cache the internal index_vector value (zero-based indices) when
    successfully used as indices, eliminating the conversion penalty for
    subsequent indexing by the same matrix.  In particular, this means it
    is no longer needed to avoid repeated indexing by logical arrays
    using find for performance reasons.

 ** Logical matrices are now treated more efficiently when used as
    indices.  Octave will keep the index as a logical mask unless the
    ratio of true elements is small enough, using a specialized
    code.  Previously, all logical matrices were always first converted
    to index vectors.  This results in savings in both memory and
    computing time.

 ** The `sub2ind' and `ind2sub' functions were reimplemented as compiled
    functions for better performance.  These functions are now faster,
    can deliver more economized results for ranges, and can reuse the
    index cache mechanism described in previous paragraph.

 ** The built-in function equivalents to associative operators (`plus',
    `times', `mtimes', `and', and `or') have been extended to accept
    multiple arguments.  This is especially useful for summing
    (multiplying, etc.) lists of objects (of possibly distinct types):
   
      matrix_sum = plus (matrix_list{:});

 ** An FTP object type based on libcurl has been implemented.  These
    objects allow ftp connections, downloads and uploads to be
    managed.  For example,

      fp = ftp ("ftp.octave.org);
      cd (fp, "gnu/octave");
      mget (fp, "octave-3.2.3.tar.bz2");
      close (fp);

 ** The default behavior of `assert (observed, expected)' has been
    relaxed to employ less strict checking that does not require the
    internals of the values to match.  This avoids previously valid
    tests from breaking due to new internal classes introduced in future
    Octave versions.

    For instance, all of these assertions were true in Octave 3.0.x
    but false in 3.2.x due to new optimizations and improvements:

      assert (2*linspace (1, 5, 5), 2*(1:5))
      assert (zeros (0, 0), [])
      assert (2*ones (1, 5), (2) (ones (1,5)))

 ** The behavior of library functions `ismatrix', `issquare', and
    `issymmetric' has been changed for better consistency.
    
    * The `ismatrix' function now returns true for all numeric,
      logical and character 2-D or N-D matrices.  Previously, `ismatrix' 
      returned false if the first or second dimension was zero.
      Hence, `ismatrix ([])' was false, 
      while `ismatrix (zeros (1,2,0))' was true.

    * The `issquare' function now returns a logical scalar, and is
      equivalent to the expression

        ismatrix (x) & ndims (x) == 2 & rows (x) == columns (x)

      The dimension is no longer returned.  As a result, `issquare ([])'
      now yields true.
    
    * The `issymmetric' function now checks for symmetry instead of
      Hermitianness.  For the latter, ishermitian was created.  Also,
      logical scalar is returned rather than the dimension, so
      `issymmetric ([])' is now true.
 
Elenco completo di tutte le novità 

 Avvio e interazione normale.

Octave viene avviato attraverso l'eseguibile octave. Bisogna ricordare che se si vogliono disegnare dei grafici deve essere avviato da una finestra di terminale all'interno di X, diversamente basta una console virtuale di GNU/Linux. octave riconosce una serie di opzioni che qui non vengono descritte (eventualmente basta utilizzare il comando octave --help per ottenerne la descrizione) e può eseguire il contenuto di un file se viene indicato come ultimo argomento della riga di comando.
octave [opzioni] [file_di_comandi]
Il file di comandi è uno script contenente semplicemente comandi di Octave, dove in particolare il simbolo # serve a indicare l'inizio di un commento che si conclude alla fine della riga e le righe vuote o bianche vengono semplicemente ignorate.
Eventualmente, uno script di Octave può essere reso eseguibile, purché all'inizio del file venga aggiunta la solita indicazione dell'interprete da utilizzare:
#!/usr/bin/octave
Se Octave viene avviato in modo normale (senza argomenti particolari e senza l'indicazione di uno script da eseguire), si ottiene il funzionamento interattivo normale:
Octave(1) è un linguaggio di programmazione ad alto livello per il calcolo matematico, usato fondamentalmente in modo interattivo. Viene usato attraverso un terminale a caratteri, come una console virtuale di GNU/Linux, ma per ottenere dei grafici si avvale di Gnuplot che così è opportuno sia installato assieme a Octave. L'interazione tra Gnuplot e Octave è trasparente, se il secondo viene utilizzato in una finestra di terminale all'interno del sistema grafico X.
In queste sezioni si mostra solo qualche piccolo assaggio di Octave che dispone di ampia documentazione per conto proprio: info octave.
Anche Octave utilizza la libreria Readline per il controllo della riga di comando, con tutti i vantaggi che ciò comporta per l'utilizzatore.
890.1   Avvio e interazione normale
Octave viene avviato attraverso l'eseguibile octave. Bisogna ricordare che se si vogliono disegnare dei grafici deve essere avviato da una finestra di terminale all'interno di X, diversamente basta una console virtuale di GNU/Linux. octave riconosce una serie di opzioni che qui non vengono descritte (eventualmente basta utilizzare il comando octave --help per ottenerne la descrizione) e può eseguire il contenuto di un file se viene indicato come ultimo argomento della riga di comando.
octave [opzioni] [file_di_comandi]
Il file di comandi è uno script contenente semplicemente comandi di Octave, dove in particolare il simbolo # serve a indicare l'inizio di un commento che si conclude alla fine della riga e le righe vuote o bianche vengono semplicemente ignorate.
Eventualmente, uno script di Octave può essere reso eseguibile, purché all'inizio del file venga aggiunta la solita indicazione dell'interprete da utilizzare:
#!/usr/bin/octave
Se Octave viene avviato in modo normale (senza argomenti particolari e senza l'indicazione di uno script da eseguire), si ottiene il funzionamento interattivo normale:
octave[Invio]
Octave, version 2.0.13 (i386-redhat-linux-gnu).
Copyright (C) 1996, 1997, 1998 John W. Eaton.
This is free software with ABSOLUTELY NO WARRANTY.
For details, type `warranty'.

octave:1> _

L'invito di Octave (il prompt) è un po' particolare: mano a mano che si introducono dei comandi si incrementa il numero che appare. Di seguito sono elencati alcuni comandi elementari di Octave; in altre sezioni ne vengono mostrati degli altri.

help [-i] [argomento]
Il comando help permette di ottenere alcune indicazioni sul funzionamento di Octave. In particolare, se non si utilizza l'opzione -i si ottiene una guida stringata, mentre con -i viene attivata la consultazione del documento info octave riferito al contesto definito dalla parola chiave che indica l'argomento.

exit
quit
Conclude il funzionamento di Octave.

pause [(n_secondi)]
Il comando pause serve a fare una pausa della durata indicata dall'argomento (che deve essere racchiuso tra parentesi tonde). Se non viene indicato l'argomento, la pausa può essere interrotta solo attraverso la pressione del tasto [Invio]. Questo comando è utile negli script di Octave.

Comando Descrizione


Il progetto fu concepito nel 1988 da John W. Eaton (primo manutentore) e da James B. Rawlings presso l'Università del Texas come strumento di calcolo per l'ingegneria chimica. Il suo sviluppo vero e proprio partì da John W. Eaton nel 1992. La prima alpha rilasciata è datata 4 gennaio 1993 e il 17 febbraio 1994 fu rilasciata la versione 1.0. La versione 3.0 è stata rilasciata il 21 dicembre 2007.
Dettagli tecnici.
  • Octave è scritto in conformità dello standard POSIX nel linguaggio C++ usando le librerie Standard Template Library.
  • Octave utilizza un interprete per il suo linguaggio di scripting.
  • Octave è estendibile attraverso moduli o funzioni scritte dall'utente.
  • Octave può lavorare assieme a gnuplot e Grace per disegnare funzioni, grafici, tabelle, consentendo di salvarli o stamparli.

Add-on e librerie che si interfacciano con GNU Octave.

  • PLplot – Un'alternativa all'uso del tradizionale gnuplot in GNU Octave, rilasciato sotto la licenza GNU LGPL.
  • Octave-forge community development page – Toolbox di software libero per vari problemi, fornita da sviluppatori indipendenti. È anche disponibile un installer Windows sia per GNU Octave che per i toolbox.
  • Mastrave project – Libreria multi-linguaggio di software libero (coperta da licenza GNU GPLv3+) compatibile con GNU Octave and Matlab, per semplificare la modellistica ambientale con funzioni generali basate sul paradigma (EN) array programming.
  • Neuroimaging Analysis Kit – Libreria (comperta da licenza MIT) per il processamento di dati di neuroimaging usando GNU Octave or Matlab, in particolare immagini di risonananza magnetica funzionale. Sistema pipeline per gestire proccessamenti multi-stage.
  • Parallel Matlab Toolbox fornisce un insieme di strutture dati e funzioni in linguaggio MATLAB che implementano array MATLAB distribuiti. È rilasciato con licenza MIT.
  • OctPlot – Grafica 2D di alta qualità (su schermo e in postscript). Rilasciata sotto GNU GPL.
  • Add-on grafico per GNU Octave – Sistema di visualizzazione 3D per GNU Octave.
  • Octaviz – Sistema di visualizzazione 3D per GNU Octave (wrapper che rende accessibili le classi VTK dall'interno di GNU Octave). Fornisce anche funzioni di alto livello per la visualizzazione 2D.
  • MPI Toolbox per Octave (MPITB) – Calcolo parallelo per GNU Octave, tramite MPI.
Screenshots.
 




Ricerca personalizzata


Se ti è piaciuto l'articolo , iscriviti al feed cliccando sull'immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog:

Potrebbero interessarti anche :

Possono interessarti anche questi articoli :