- GNU Octave
-
GNU Octave
Aktuelle Version 3.4.3
(10. Oktober 2011)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/ 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. Fast vollständige Kompatibilität zu Matlab lässt sich durch das Zusatzpaket octave-forge und andere freie Ersatzfunktionen vom Mathworks FileExchange erreichen.
Ein großer Vorteil ist hierbei die Anpassungsfähigkeit an jeden Rechner. So lässt sich zum Beispiel der volle Adressraum auch bei 64-Bit-Rechnern nutzen. Ähnlich wie in MATLAB erfolgt die Eingabe kommandozeilenbasiert. Für die grafische Ausgabe von 2D- und 3D-Plots wird standardmäßig gnuplot verwendet. Es können aber auch alternative Grafikpakete wie beispielsweise EpsTk verwendet werden.
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 oder C/C++. Aber auch für MATLAB geschriebene externe MEX-Funktionen in C/C++ lassen sich oft ohne Code-Anpassungen für Octave kompilieren.
Andersherum sind auch alle Octave-Bibliotheken in C++-Programmen nutzbar, sodass Octave auch eine numerische Bibliothek für C++ darstellt.
Inhaltsverzeichnis
Geschichte und Konzept
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 Tools 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 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.
Entwicklung
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) 21.04.2008 Version 3.0.1 (wesentliche Unterschiede in Syntax zur Version 2.1) 08.02.2011 Version 3.4.0 neueste größere Aktualisierung 10.10.2011 Veröffentlichung von Octave 3.4.3 Beispiel-Skript
Das ist ein Beispiel für ein Octave-Skript. Hier wird die Interpolation nach Lagrange definiert.
% Initialisierung f = @(x) exp(x); f2 = @(x) x.^2; n = 3; schrittweite = 0.5; I = (-3:schrittweite:3); x = 0:1:n; % Funktionswerte von exp(x) y = f2(x); lx = zeros(1,n); %Beispiel- Eingabe x =[-1,1,2]; y = [0,2,4]; lx = zeros(1,3); blub = 0; % Lagrangesche Interpolationsformel for i = 1:length(x) polynom =1; for j =1:length(x) if i~=j blub =(x(i)-x(j))/(x(i)-x(j)) polynom =polynom * blub end end lx(i) = y(i)*polynom end % Ausgabe x y lx plot(x,lx)
Siehe auch
Benutzerschnittstelle
Octave wird nicht mit einer grafischen Oberfläche (GUI) oder integrierten Entwicklungsumgebung (IDE) ausgeliefert. Es kann aber mit grafischen Front-End erweitert werden.
Grafische Benutzerschnittstellen (GUI)
- Kalculus (Linux) — Matlab ähnliche Benutzeroberfläche für GNU Octave und Yacas in Qt4 programmiert, unter Anwendung von Ruby
- Xoctave (Windows, Linux) — Xoctave kapselt GNU Octave unter Verwendung von Pipes und zusätzlichen Werkzeugen ein, um die Anwendung einfacher zu gestalten. Seine Benutzeroberfläche ähnelt der von Matlab. Lizenz: GPL
- OctaveNB Einbindung von GNU Octave in NetBeans IDE, unterstützt SVN, mehrsprachig, Lizenz: GPL-2.0
- GUIOctave (Windows) — GUIOctave stellt eine GUI ähnlich wie Matlab zur Verfügung, Freeware, kein Quellcode erhältlich
- QtOctave (Windows, Linux) - Grafische Erweiterung, erhältlich als protabel-Version, Quellcode erhältlich, Weiterentwicklung ist eingestellt
Benutzerschnittstellen als Web-interface
- Online LaTeX and Octave Editor - Online editor, unter anderem für GNU Octave mit Grafischer Ausgabe und Speichermöglichkeit
- Online Zugriff für GNU Octave – Ermögliche einfache Berechnungen mit GNU Octave
- MathCloud - Gemeinsame Bearbeitung von Skripten und Austausch von Quellcode
Weblinks
Commons: GNU Octave Diagramme – Sammlung von Bildern, Videos und Audiodateien- Offizielle Webseite (englisch)
- Offizielle Octave-Zusatzpakete (englisch)
- Octave Wiki (englisch)
- Kurze Einführung
Kategorien:- Freie Mathematik-Software
- GNU
- Skriptsprache
- Numerische Mathematik
Wikimedia Foundation.