MATLAB - Tutorial GNU Octave

GNU Octave è un linguaggio di programmazione di alto livello come MATLAB ed è principalmente compatibile con MATLAB. Viene anche utilizzato per calcoli numerici.

Octave ha le seguenti caratteristiche comuni con MATLAB:

  • le matrici sono tipi di dati fondamentali
  • ha il supporto integrato per i numeri complessi
  • ha funzioni matematiche e librerie incorporate
  • supporta funzioni definite dall'utente

GNU Octave è anche un software ridistribuibile gratuitamente. È possibile ridistribuirlo e / o modificarlo secondo i termini della GNU General Public License (GPL) come pubblicata dalla Free Software Foundation.

MATLAB vs Octave

La maggior parte dei programmi MATLAB vengono eseguiti in Octave, ma alcuni dei programmi Octave potrebbero non funzionare in MATLAB perché Octave consente una sintassi che MATLAB non consente.

Ad esempio, MATLAB supporta solo virgolette singole, ma Octave supporta virgolette singole e doppie per la definizione delle stringhe. Se stai cercando un tutorial su Octave, segui gentilmente questo tutorial dall'inizio che copre sia MATLAB che Octave.

Esempi compatibili

Quasi tutti gli esempi trattati in questo tutorial sono compatibili con MATLAB e con Octave. Proviamo a seguire l'esempio in MATLAB e Octave che produce lo stesso risultato senza modifiche alla sintassi -

Questo esempio crea una mappa della superficie 3D per la funzione g = xe - (x 2 + y 2 ) . Crea un file di script e digita il codice seguente:

[x,y] = meshgrid(-2:.2:2);
g = x .* exp(-x.^2 - y.^2);
surf(x, y, g)
print -deps graph.eps

Quando esegui il file, MATLAB mostra la seguente mappa 3-D:

Esempi non compatibili

Sebbene tutte le funzionalità principali di MATLAB siano disponibili in Octave, esistono alcune funzionalità, ad esempio, Calcolo differenziale e integrazione, che non corrispondono esattamente in entrambe le lingue. Questo tutorial ha cercato di fornire entrambi i tipi di esempi in cui differivano nella loro sintassi.

Considera il seguente esempio in cui MATLAB e Octave fanno uso di funzioni diverse per ottenere l'area di una curva: f (x) = x 2 cos (x) per −4 ≤ x ≤ 9. Di seguito è riportata la versione MATLAB del codice:

f = x^2*cos(x);
ezplot(f, [-4,9])
a = int(f, -4, 9)
disp('Area: '), disp(double(a));

Quando esegui il file, MATLAB traccia il grafico:

Viene visualizzato il seguente risultato

a =
8*cos(4) + 18*cos(9) + 14*sin(4) + 79*sin(9)
 
Area: 
   0.3326

Ma per dare un'area della stessa curva in Octave, dovrai farne uso symbolic pacchetto come segue -

pkg load symbolic
symbols

x = sym("x");
f = inline("x^2*cos(x)");

ezplot(f, [-4,9])
print -deps graph.eps

[a, ierror, nfneval] = quad(f, -4, 9);
display('Area: '), disp(double(a));