GNU-Oktave

GNU-Oktave ist eine höhere Programmiersprache, die in erster Linie für die numerische Berechnung beabsichtigt ist. Es stellt eine günstige Schnittstelle der Befehl-Linie (CLI) zur Verfügung, um geradlinige und nichtlineare Probleme numerisch zu beheben, und um andere numerische Experimente mit einer Sprache durchzuführen, die mit MATLAB größtenteils vereinbar ist. Es kann auch als eine Gruppe-orientierte Sprache verwendet werden.

Als ein Teil des GNU-Projektes ist es kostenlose Software in Form vom GNU General Public License (GPL).

Geschichte

Das Projekt wurde 1988 konzipiert. Zuerst war es beabsichtigt, um ein Begleiter zu einem chemischen Reaktordesignkurs zu sein. Echte Entwicklung wurde mit John W. Eaton 1992 angefangen. Die erste Alpha-Ausgabe geht bis zum 4. Januar 1993 zurück, und am 17. Februar 1994 wurde Version 1.0 veröffentlicht. Version 3.0 wurde am 21. Dezember 2007 veröffentlicht.

Das Programm wird nach Octave Levenspiel, einem ehemaligen Professor des Hauptautors genannt. Levenspiel ist für seine Fähigkeit bekannt, schnellen Rücken der Umschlag-Berechnungen durchzuführen.

Aufstellungen

Zusätzlich zum Gebrauch auf Arbeitsflächen für die persönliche wissenschaftliche Computerwissenschaft wird Oktave in der Akademie und Industrie verwendet. Zum Beispiel wurde Oktave auf einem massiven parallelen Computer am Pittsburger Superrechenzentrum verwendet, um Verwundbarkeit verbunden mit dem Schätzen von Sozialversicherungsnummern zu finden.

Technische Details

  • Oktave wird in C ++ das Verwenden von Standard Template Library (STL) geschrieben.
  • Oktave verwendet einen Dolmetscher, um die Oktave scripting Sprache durchzuführen.
  • Oktave ist das ausziehbare Verwenden dynamisch loadable Module.
  • Oktave-Dolmetscher arbeitet mit gnuplot und Software von Grace, um Anschläge, Graphen und Karten zu schaffen, und sie zu sparen oder zu drucken.

Oktave, die Sprache

Die Oktave-Sprache ist eine interpretierte Programmiersprache. Es ist eine strukturierte Programmiersprache (ähnlich C) und unterstützt viele allgemeine C Standardbibliotheksfunktionen, und auch bestimmte UNIX Systemanrufe und Funktionen. Jedoch unterstützt es vorübergehende Argumente durch die Verweisung nicht.

Oktave-Programme bestehen aus einer Liste von Funktionsanrufen oder einer Schrift.

Die Syntax wird matrixgestützt und stellt verschiedene Funktionen für Matrixoperationen zur Verfügung. Es unterstützt verschiedene Datenstrukturen

und erlaubt objektorientierte Programmierung.

Seine Syntax ist MATLAB sehr ähnlich, und die sorgfältige Programmierung einer Schrift wird ihm erlauben, sowohl auf der Oktave als auch auf MATLAB zu laufen.

Weil Oktave laut der GNU-Lizenz der Breiten Öffentlichkeit bereitgestellt wird, kann sie frei geändert, kopiert und verwendet werden. Das Programm führt auf Windows von Microsoft und dem grössten Teil von Unix und Unix-like Betriebssysteme, einschließlich Mac OS X.

Bemerkenswerte Eigenschaften

Befehl und Variablenname-Vollziehung

Das Schreiben eines ETIKETT-Charakters auf der Befehl-Linie veranlasst Oktave zu versuchen, Variable, Funktion und Dateinamen (ähnlich der Etikett-Vollziehung des heftigen Schlags) zu vollenden. Oktave verwendet den Text vor dem Cursor als der anfängliche Teil des Namens, um zu vollenden.

Befehl-Geschichte

Wenn

sie interaktiv läuft, spart Oktave die in einem inneren Puffer getippten Befehle, so dass sie zurückgerufen und editiert werden können.

Datenstrukturen

Oktave schließt einen beschränkten Betrag der Unterstützung ein, um Daten in Strukturen zu organisieren. In diesem Beispiel sehen wir eine Struktur "x" mit Elementen "a", "b", und "c", (eine ganze Zahl, eine Reihe und eine Schnur, beziehungsweise):

octave:1> x.a = 1; x.b = [1, 2; 3, 4]; x.c = "Schnur";

octave:2> x.a

ans = 1

octave:3> x.b

ans =

1 2

3 4

octave:4> x.c

ans = spannen

octave:5> x

x =

{\

a = 1

b =

1 2

3 4

c = Schnur

}\

</pre>

Kurzschließen Sie boolean Maschinenbediener

Die '' und '' logischen Maschinenbediener der Oktave werden auf eine kurzschließen Mode (wie die entsprechenden Maschinenbediener in der c Sprache), im Gegensatz zu den Element-für-Element-Maschinenbedienern '' und '' bewertet.

Zunahme und Verminderungsmaschinenbediener

Oktave schließt die C ähnliche Zunahme und Verminderungsmaschinenbediener '' und '' in beidem ihrem Präfix und Formen der postüblen Lage ein.

Auch vermehrte Anweisung.

Entspannen Sie sich - schützen

Oktave unterstützt eine beschränkte Form des Ausnahme-Berührens modelliert nach '' vom Lispeln. Die allgemeine Form eines Unwind_protect-Blocks sieht wie das aus:

unwind_protect

Körper

unwind_protect_cleanup

Reinigung

end_unwind_protect

</Quelle>

Als eine allgemeine Regel erkennt GNU-Oktave als Beendigung eines gegebenen '' irgendeinen das Schlüsselwort '' an (der mit der MATLAB Sprache vereinbar ist), oder ein spezifischeres Schlüsselwort ''. Demzufolge kann ein '' Block entweder mit dem Schlüsselwort '' als im Beispiel, oder mit dem mehr tragbaren Schlüsselwort '' begrenzt werden.

Der Reinigungsteil des Blocks wird immer durchgeführt. Im Falle dass eine Ausnahme durch den Körperteil erhoben wird, wird Reinigung sofort vor dem Fortpflanzen der Ausnahme außerhalb des Blocks '' durchgeführt.

GNU-Oktave unterstützt auch eine andere Form des Ausnahme-Berührens (vereinbar mit der MATLAB Sprache):

versuchen Sie

Körper

Fang

exception_handling

Ende</Quelle>

Diese letzte Form unterscheidet sich von einem '' Block auf zwei Weisen. Erstens wird exception_handling nur durchgeführt, wenn eine Ausnahme durch den Körper erhoben wird. Zweitens nach der Ausführung von exception_handling wird die Ausnahme außerhalb des Blocks nicht fortgepflanzt (wenn eine '' Behauptung innerhalb des Exception_handling-Codes nicht vorsätzlich eingefügt wird).

Argument-Listen der variablen Länge

Oktave hat einen echten Mechanismus, um Funktionen zu behandeln, die eine unbestimmte Anzahl von Argumenten ohne ausführliche obere Grenze nehmen. Um eine Liste der Null oder mehr Argumente anzugeben, verwenden Sie das spezielle Argument als das letzte (oder nur) Argument in der Liste.

fungieren Sie s = plus (varargin)

wenn (nargin == 0)

s = 0;

sonst

s = varargin {1} + plus (varargin {2:nargin});

Ende

Ende</Quelle>

Rücklisten der variablen Länge

Eine Funktion kann aufgestellt werden, um jede Zahl von Werten durch das Verwenden des speziellen Rückwerts zurückzugeben. Zum Beispiel:

fungieren Sie varargout = teilen (Daten) mehrzu

für k=1:nargout

varargout {k} = Daten (: k);

EndeEnde</Quelle>

C ++ Integration

Es ist auch möglich, Oktave-Code direkt in einem C ++ Programm durchzuführen. Zum Beispiel ist hier ein Codeschnipsel für das Benennen:

  1. einschließen

...

ColumnVector NumRands (2);

NumRands (0) = 10;

NumRands (1) = 1;

octave_value_list f_arg, f_ret;

f_arg (0) = octave_value (NumRands);

f_ret = feval ("rand", f_arg, 1);

Matrix unis (f_ret (0).matrix_value );

</Quelle>

MATLAB Vereinbarkeit

Oktave ist mit der MATLAB Vereinbarkeit im Sinn gebaut worden, und teilt viele Eigenschaften mit MATLAB:

  1. Matrices als grundsätzlicher Datentyp.
  2. Eingebaute Unterstützung für komplexe Zahlen.
  3. Starke eingebaute Mathematik fungiert und umfassende Funktionsbibliotheken.
  4. Dehnbarkeit in der Form von benutzerbestimmten Funktionen.

Es gibt einige zweckmäßig, obgleich gering, Unterschiede:

  1. Anmerkungslinien können mit # Charakter sowie der %-Charakter vorbefestigt werden
  2. Verschiedene C-basierte Maschinenbediener ++, - + =, * =, / = werden unterstützt
Ohne
  1. Elemente kann Verweise angebracht werden, eine neue Variable, z.B [1:10] (3) zu schaffen
  2. Schnuren können mit dem "Charakter sowie dem 'Charakter definiert werden

Siehe auch

  • Liste der numerischen Analyse-Software
  • Vergleich der numerischen Analyse-Software
  • Liste von statistischen Paketen
  • Liste von numerischen Bibliotheken

Links

Dokumentation

Häufig gestellte

Numerische Pakete und mit der GNU-Oktave verbindende Bibliotheken

GNU-Oktave wird auch durch Drittwerkzeuge und Bibliotheken angetrieben, größtenteils allgemeine oder bereichsspezifische Abstraktionen für die wissenschaftliche Computerwissenschaft zur Verfügung stellend. Jene Werkzeuge können gemäß kategorisiert werden, ob ihre Beiträge am rechenbetonten Modellieren oder am Erhöhen der Sehanalyse mehr orientiert werden.

Numerische Werkzeuge

Das Plotten von Werkzeugen

  • PLPlot - Ein Ersatz des traditionellen gnuplot in der GNU-Oktave, die unter dem GNU LGPL lizenziert ist.
  • OctPlot - Hohe Qualität 2. Grafik (Nachschrift und Schirm-Grafik). Veröffentlicht unter dem GNU GPL.
  • Oktave-Grafikerweiterung - 3D-Vergegenwärtigungssystem für die Oktave.
  • Octaviz - 3D-Vergegenwärtigungssystem für die GNU-Oktave (Streifband, das VTK Klassen zugänglich aus der GNU-Oktave macht). Es stellt auch Funktionen auf höchster Ebene für die 2. Vergegenwärtigung zur Verfügung. (Bemerken Sie: Ihre Seite sagt, "Leider ist Octaviz nicht mehr in der Entwicklung. Die letzte Ausgabe (0.4.7) war ziemlich verwendbar und wenn gebaut, gegen vtk-5.0 stabil.")

Benutzerschnittstellen

Jetzige Versionen der Oktave kommen mit einer grafischen Benutzerschnittstelle (GUI) / integrierte Entwicklungsumgebung (IDE) standardmäßig nicht. Jedoch ist eine offizielle grafische auf Qt gestützte Schnittstelle jetzt zum Hauptquellbehältnis abgewandert worden und wird wahrscheinlich mit der Oktave 4.0 veröffentlicht. Mehrere grafische 3.-Parteienvorderenden sind entwickelt worden:

MATLAB ähnliche IDEN
Anderer GUIs
  • Kantor (Linux, Windows; GPL2) Eine KDE Mathematik-Anwendung, mit backends für R, Maxima, Oktave, Scilab, Weisen, KAlgebra, und Qalculate. Unter der aktiven Entwicklung bezüglich 2011.
  • OctaveNB (Linux, Windows, OS X; GPL2) NetBeans IDE Integration für die GNU-Oktave. Letzter aktualisierter Apr 2009.
  • Anoc Oktave-Redakteur (Androide) A GUI für den Androiden, der einen bestimmten Server verwendet, um Berechnungen durchzuführen und Anschläge zu erzeugen
  • GNU TeXmacs unterstützt Oktave als backend.
Webbasierte Benutzerschnittstellen (WUI)

Weiterführende Literatur


Ranzig (Band) / Oregoner Spur
Impressum & Datenschutz