Einführung in GNU Octave

  • Titel: Einführung in GNU Octave
  • Organisation: UNI KOBLENZ
  • Seitenzahl: 8

Skript herunterladen (PDF)

Inhalt

  • 1 Grundlagen
  • 1.1 Was ist Octave ?
  • 1.2 Installation
  • 1.3 Aufruf von Octave
  • 1.4 Syntaxkonventionen
  • 1.5 Hilfe!
  • 2 Datentypen
  • 2.1 Numerische Objekte
  • 2.2 String-Objekte
  • 2.3 Datenstrukturen
  • 3 Operationen
  • 3.1 Matrixoperationen
  • 4 Kontrollstrukturen
  • 4.1 Schleifen
  • 4.2 if- und switch Anweisungen
  • 4.3 Funktionen
  • 5 Fehlermeldungen

Vorschau

Einf¨ hrung in GNU Octave u

S. Bouattour, D. Paulus 21. Mai 2003

Inhaltsverzeichnis

1 Grundlagen 1.1 Was ist Octave ? . . . 1.2 Installation . . . . . 1.3 Aufruf von Octave . 1.4 Syntaxkonventionen . 1.5 Hilfe! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 2 2 2 3 3 3 3 4 4 4 6 6 6 6 7

2 Datentypen 2.1 Numerische Objekte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 String-Objekte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3 Datenstrukturen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Operationen 3.1 Matrixoperationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Kontrollstrukturen 4.1 Schleifen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 if- und switch Anweisungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3 Funktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Fehlermeldungen

1

1 Grundlagen

1.1 Was ist Octave ?

Der Name Octave hat mit Musik nichts zu tun! Es ist der Name eines ehemaligen Chemie Professors vom Autor von Octave 1 . Dieser Professor war f¨ r sein Talent ber¨ hmt, schnelle “back of the envelope” Berechu u nungen durchzuf¨ hren. Es ist eine interaktive Skriptsprache, die speziell f¨ r vektorbasierte Berechnungen u u optimiert ist und dabei Standardroutinen der numerischen Mathematik (z.B. EISPACK oder LAPACK) auf einfache Weise zug¨ nglich macht [?]. us¨ tzlich zu der L¨ sung von Problemen der Linearen Algebra und a a o der Integralrechnung, dem L¨ sen von Gleichungssysteme und Polynomen etc., ist es m¨ glich, eigene Funko o tionen zu definieren und/oder dynamisch geladene Module in C++, C oder Fortran zu verwenden. Dadurch ist Octave fast uneingeschr¨ nkt erweiterbar! a

1.2 Installation

GNU Octave ist eine freie Software, deren Verwendung und Distribution den allgemeinen offentlichen ¨ Lizenzregeln (General Public License GPL) unterliegt. Linux: Octave ist ein Native-Linux-Programm, das bei vielen Distributionen schon als Binary-Package vorhanden ist. Ist dies nicht der Fall, so siehe http://www.octave.org/download.html. Windows: Obwohl Octave ein Linux-Programm ist, so existiert auch eine Portierung nach Windows. Dieses erfordert jedoch dennoch Linux-Grundwissen, weshalb eine FAQ unter http://octave.sourceforge.net/Octave Windows.htm eingerichtet wurde.

1.3 Aufruf von Octave

• Starten von Octave durch: – octave −→ Interaktiver Modus. – octave file.m −→ Ausf¨ hrung der Skriptdatei (s. Abschnitt 1.4) und beenden von Octave u . • Verlassen von Octave durch quit oder exit.

1.4 Syntaxkonventionen

Die Syntax von Octave ist der von MATLAB sehr ahnlich. Octave -Programme k¨ nnen meist von MATLAB ¨ o ausgef¨ hrt werden. Der Umgekehrte Weg ist aufgrund des gr¨ ßeren Funktionsumfang von MATLAB nicht u o immer gew¨ hrleistet. a • Befehle k¨ nnen entweder interaktiv oder uber Skriptdateien eingegeben werden. o ¨ • Skriptdateien sind Textdateien mit dem Suffix .m. Sie werden im interaktiven Modus durch die Eingabe des Dateinamens ohne suffix interpretiert (gelesen und ausgef¨ hrt). Sie k¨ nnen aber auch durch u o den Aufruf von octave file.m von der Shell aus interpretiert werden. In beiden F¨ llen verhalten a sie sich so, als ob ihr Inhalt eile f¨ r eile am Prompt eingegeben w¨ rde. u u • Octave ist case-sensitive. • Das Semikolon (;) trennt mehrere Befehle in einer eile und unterdr¨ ckt die Ausgabe der Ausweru tung. • Das Komma (,) trennt mehrere Befehle in einer eile, unterdr¨ ckt deren Ausgabe der Auswertung u aber nicht. Dies kann f¨ r Ablaufkontrolle und Debugging n¨ tzlich sein. u u

1 John

W. Eaton


• Drei Punkte (. . .) am eilenende bedeuten, dass der Ausdruck in der n¨ chten eile fortgesetzt wird. a Dies ist sinnvoll, um zu lange eilen in mehrere aufzuteilen. • Kommentare beginnen mit dem eichen % oder # .

1.5 Hilfe!

• help listet alle Befehle und internen Variablen auf. • help name gibt einen Hilfetext zur Variable oder Funktion “name” aus. Beispiel: octave:6> help norm

2 Datentypen

Intern bearbeitet Octave fast alle Datentypen als Matrizen; auch ein Skalar ist eine 1 × 1 Matrix.

2.1 Numerische Objekte

• Reale und Komplexe Skalare: sind gespeichert in doppelter Genauigkeit. Der Wertebereich 2 liegt zwischen 2.2251 × 10−308 und 1.7977 × 10308 . Die relative Genauigkeit ist 2.2204 × 10−16 . • Matrizen: k¨ nnen eine beliebige Gr¨ ße haben und ihre Gr¨ ße dynamisch andern. Die Werte einer o o o ¨ Matrix sind wiederum reale oder komplexe Skalare. Beispiel: octave:32> [1 2; 3 4] ans = 1 2 3 4 octave:33> [1+2i ans = 1 + 2i 3 + 0i 2 + 0i 4 – 4i

2; 3 4-4i]

2.2 String-Objekte

String-Objekte sind eichenfolgen, die zwischen einfachen oder doppelten Anf¨ hrungszeichen eingeschlosu sen sind (¨ oder ´. Intern speichert Octave Strings als Matrizen von eichen. Alle Indizierungsoperationen, die f¨ r Matrizen definiert sind, arbeiten auch auf Strings. u Beispiel: octave:11> x = [“das “, “ist “, “ein “, “Beispielsatz.”] x = das ist ein Beispielsatz. octave:12> y = [“das ist ein Beispielsatz.”] y = das ist ein Beispielsatz. octave:12> x(8) == y(8) ans = 1

2 auf

Systemen, die das IEEE floating-point Format verwenden