MATLAB - GNU Octave Tutorial

GNU Octave ist eine Programmiersprache auf hoher Ebene wie MATLAB und größtenteils mit MATLAB kompatibel. Es wird auch für numerische Berechnungen verwendet.

Octave hat die folgenden gemeinsamen Funktionen mit MATLAB:

  • Matrizen sind grundlegende Datentypen
  • Es verfügt über eine integrierte Unterstützung für komplexe Zahlen
  • Es verfügt über integrierte mathematische Funktionen und Bibliotheken
  • Es unterstützt benutzerdefinierte Funktionen

GNU Octave ist auch frei verteilbare Software. Sie können es unter den Bedingungen der GNU General Public License (GPL), wie von der Free Software Foundation veröffentlicht, weitergeben und / oder ändern.

MATLAB gegen Oktave

Die meisten MATLAB-Programme werden in Octave ausgeführt, aber einige der Octave-Programme werden möglicherweise nicht in MATLAB ausgeführt, da Octave eine Syntax zulässt, die MATLAB nicht zulässt.

Beispielsweise unterstützt MATLAB nur einfache Anführungszeichen, Octave unterstützt jedoch sowohl einfache als auch doppelte Anführungszeichen zum Definieren von Zeichenfolgen. Wenn Sie nach einem Tutorial zu Octave suchen, lesen Sie dieses Tutorial von Anfang an durch, das sowohl MATLAB als auch Octave behandelt.

Kompatible Beispiele

Fast alle in diesem Tutorial behandelten Beispiele sind sowohl mit MATLAB als auch mit Octave kompatibel. Versuchen wir, das folgende Beispiel in MATLAB und Octave zu verwenden, das das gleiche Ergebnis ohne Syntaxänderungen liefert.

In diesem Beispiel wird eine 3D-Oberflächenkarte für die Funktion g = xe - (x 2 + y 2 ) erstellt . Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein:

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

Wenn Sie die Datei ausführen, zeigt MATLAB die folgende 3D-Zuordnung an:

Nicht kompatible Beispiele

Obwohl alle Kernfunktionen von MATLAB in Octave verfügbar sind, gibt es einige Funktionen, z. B. Differential & Integration Calculus, die nicht in beiden Sprachen genau übereinstimmen. In diesem Tutorial wurde versucht, beide Arten von Beispielen anzugeben, bei denen sie sich in ihrer Syntax unterschieden.

Betrachten Sie das folgende Beispiel, in dem MATLAB und Octave unterschiedliche Funktionen verwenden, um die Fläche einer Kurve zu erhalten: f (x) = x 2 cos (x) für −4 ≤ x ≤ 9. Es folgt die MATLAB-Version des Codes -

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

Wenn Sie die Datei ausführen, zeichnet MATLAB das Diagramm -

Das folgende Ergebnis wird angezeigt

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

Um jedoch in Octave eine Fläche mit derselben Kurve zu erhalten, müssen Sie diese verwenden symbolic Paket wie folgt -

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));