GNU Octave

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
GNU Octave
offizielles Octave-Logo
Octave Visualisierung
Visualisierungsbeispiel, der GNU Octave-Sombrero, das inoffizielle Logo
Basisdaten
Aktuelle Version 3.8.2
(13. August 2014)
Betriebssystem GNU/Linux, Mac OS X, Solaris, Unix, OS/2, Microsoft Windows
Kategorie Mathematik, Regelungstechnik, Modellbildung
Lizenz GPL (Freie Software)
www.gnu.org/software/octave/
Octave-Session: links Graph, rechts oben Kommandozeile und rechts unten Editor

GNU Octave [ˈɒktɪv] ist eine freie Software zur numerischen Lösung mathematischer Probleme, wie zum Beispiel Matrizenrechnung, Lösen von (Differential-)Gleichungssystemen, Integration etc. Berechnungen können in Octave mit einer Skriptsprache durchgeführt werden, die weitgehend zu dem proprietären MATLAB kompatibel ist.

Geschichte[Bearbeiten]

Das Konzept von Octave entstand 1988. Es war zunächst als Begleitsoftware für ein studentisches Lehrbuch für chemische Reaktoren geplant, das von James B. Rawlings (University of Wisconsin-Madison) und John G. Eherdt (University of Texas) geschrieben wurde.

Zunächst wurden spezielle Werkzeuge zur Lösung von Konstruktionsproblemen chemischer Reaktoren realisiert. Als die Entwickler erkannten, dass Octave zur Lösung weiterer Probleme einsetzbar sein könnte, entschied man sich, es zu einem flexibleren Programm weiter zu entwickeln. Anfänglich sollte Octave in Fortran geschrieben werden, da dieses als technische Programmiersprache besonders geeignet zu sein schien. Die Entwickler scheiterten aber mit diesem Ansatz, da sie viel mehr Zeit dafür investieren mussten, mit der Sprache zurechtzukommen und nach den Fehlern im Code zu suchen, als etwas im Chemieingenieurwesen dadurch zu lernen. Sie beschlossen daher, ein interaktives Umfeld für das Programm zu schaffen, in dem man die Grundlagen innerhalb kürzester Zeit erlernen könnte. Das Ziel der Entwicklung war, anspruchsvolle Berechnungen sehr einfach zu gestalten.

Die Vollzeitentwicklung durch John W. Eaton begann im Frühling 1992 und die erste Alpha-Version erschien am 4. Januar 1993. Seitdem wurde GNU Octave mehrmals grundlegend überarbeitet und ist inzwischen in Debian GNU/Linux und SUSE Linux integriert.

Für die Free Software Foundation ist die Weiterentwicklung von Octave zu einem freien MATLAB-Ersatz eines von ca. einem dutzend „High Priority Projects“.[1]

Technische Eigenschaften[Bearbeiten]

Implementiert ist Octave in C++, erweiterbar ist es aber auch durch Module, die in Octave selbst oder in anderen Sprachen verfasst wurden, zum Beispiel Fortran, C oder C++. Für die grafische Ausgabe von 2D- und 3D-Plots wird voreingestellt gnuplot verwendet. Es können aber auch alternative Grafikpakete wie beispielsweise EpsTk verwendet werden.

Ein großer Vorteil bei Octave ist die Anpassungsfähigkeit an jeden Rechner. So lässt sich zum Beispiel der volle Adressraum auch bei 64-Bit-Rechnern nutzen.

Andersherum sind auch alle Octave-Bibliotheken in C++-Programmen nutzbar, sodass Octave auch eine numerische Bibliothek für C++ darstellt.

MATLAB-Kompatibilität[Bearbeiten]

Die von MATLAB abgeleitete Skriptsprache von GNU Octave ist überwiegend kompatibel, teilweise zu dieser erweitert. Die Funktionskompatiblität von GNU Octave zur Basisversion von MATLAB (ohne Toolboxen) ist ebenfalls überwiegend gegeben. Fast vollständige Kompatibilität zu MATLAB lässt sich durch das Zusatzpaket octave-forge und andere freie Ersatzfunktionen des Mathworks FileExchange erreichen. Auch für MATLAB geschriebene externe MEX-Funktionen in C oder C++ lassen sich oft ohne Code-Anpassungen für Octave kompilieren und verwenden.

Octave verwendet als Bibliothek für Vektor- und Matrizoperationen BLAS, optional in der ATLAS-Variante, wogegen MATLAB inzwischen auf die kommerzielle BLAS-Variante MKL von Intel setzt.

Derzeit wird Octave, im Gegensatz zu MATLAB, noch nicht als integrierte Suite mit fester Entwicklungsumgebung und GUI ausgeliefert. Die Eingabe erfolgt deswegen üblicherweise, ähnlich wie in MATLABs Command Window, direkt kommandozeilenbasiert. Mit der Version 4.0 soll aber auch GNU Octave eine solche Entwicklungsumgebung erhalten, wobei jedoch eine voll funktionsfähige Terminalemulation für das Command Window verwendet wird. Das hat den Vorteil, dass Benutzer, die bisher nur im Terminal gearbeitet haben, immer noch alle Vorzüge einer echten Terminalemulation genießen können. Dies war mit den bisherigen Frontends nie möglich und daher stets Ausschlusskriterium für die Aufnahme als offizielles Frontend. Des Weiteren ist die bald erscheinende Entwicklungsumgebung direkt mit GNU Octave über gemeinsam genutzten Speicher gekoppelt, anstatt wie bisher nur als Kommandozeilenprogramm aufgerufen.

Benutzerschnittstelle[Bearbeiten]

Entwicklungsversion der IDE von GNU Octave

Octave wird noch nicht mit einer grafischen Oberfläche (GUI) oder integrierten Entwicklungsumgebung (IDE) ausgeliefert. Es kann aber mit einem grafischen Front-End erweitert werden.

Mit der Version 4.0 soll Octave mit einer eigenen, auf dem Qt-Toolkit basierenden, grafischen Oberfläche ausgeliefert werden, die sich bereits in den offiziellen Quellcode-Repositories in einem weiten Entwicklungsstadium befindet.[2] Die Entwicklung zielt primär auf GNU/Linux-basierte Systeme, allerdings gibt es bereits Kompilate für MacOSX und Windows. Mit der Veröffentlichung der Version 3.8.0 wurde die grafische Oberfläche in den offiziellen Zweig übertragen. Allerdings wird diese nicht standardmäßig aktiviert und kann mit octave --force-gui gestartet werden.

Grafische Benutzerschnittstellen (GUI)[Bearbeiten]

  • Kalculus (Linux) – MATLAB-ähnliche Benutzeroberfläche für GNU Octave und Yacas in Qt4 programmiert, unter Anwendung von Ruby. Seit Mitte 2008 sind keine neuen Versionen mehr erschienen.
  • Cantor (Linux) – Benutzeroberfläche für GNU Octave, Sage, Maxima, R und KAlgebra.
  • Xoctave (Windows, Linux) – Xoctave kapselt GNU Octave unter Verwendung von Pipes und zusätzlichen Werkzeugen ein, um die Anwendung einfacher zu gestalten. Früher freie Software, mittlerweile proprietär.
  • Octavenb – Einbindung von GNU Octave in NetBeans IDE, unterstützt SVN, mehrsprachig, Lizenz: GPL-2.0
  • QtOctave (Windows, Linux) – Grafische Erweiterung, Weiterentwicklung wurde zugunsten der in Version 3.8 erschienenen, offiziellen GUI eingestellt
  • Anoc (Android) – Benutzeroberfläche für GNU Octave. Die Berechnungen werden für bessere Performance auf einem dedizierten Server ausgeführt

Benutzerschnittstellen als Web-interface [Bearbeiten]

Entwicklungshistorie[Bearbeiten]

Zeit Ereignis
1988/1989 Erste Diskussionen (Lehrbuch und Software)
Februar 1992 Beginn der Entwicklung
Januar 1993 Ankündigung im Web (Version 0.60)
Februar 1994 Erste Veröffentlichung
Dezember 1996 Zweite größere Veröffentlichung (Version 2.0) mit Übertragung auf Windows (Cygwin)
März 1998 Version 2.1
November 2004 Version 2.9 (Sprung in Vorbereitung zur Veröffentlichung von 3.0)
Dezember 2007 Veröffentlichung der Version 3.0 (größere Aktualisierung)
8. Februar 2011 Version 3.4.0 (größere Aktualisierung)
22. Februar 2012 Veröffentlichung von Octave 3.6.1 (größere Aktualisierung)
31. Dezember 2013 Veröffentlichung von Octave 3.8.0 (experimentelles GUI)

Siehe auch[Bearbeiten]

Weblinks[Bearbeiten]

 Commons: GNU Octave Diagramme – Sammlung von Bildern, Videos und Audiodateien

Einzelnachweise[Bearbeiten]

  1. Matt Lee: High Priority Free Software Projects (englisch) www.fsf.org. 2. März 2012. Abgerufen am 14. Juli 2012: „GNU Octave, free software Matlab replacement“
  2. http://cybercatalyst.net/the-current-gnu-octave/