35
Kurzeinf¨ uhrung in Octave Jens Kappei Was ist Octave? Elementare Befehle Matrizen und Vektoren Relations- und logische Operatoren Kontrollstrukturen Schleifen Funktionen Skripte Plots Erg¨ anzungen Kurzeinf¨ uhrung in Octave Jens Kappei FB 12 Mathematik und Informatik Philipps-Universit¨ at Marburg Vorlesung Numerische Basisverfahren 21./22.04.2010

Kurzeinführung in Octave - mathematik.uni-marburg.de · I In der Standardeinstellung gibt Octave Ergebnisse nur mit 4 Nachkommastellen aus, gerechnet wird aber mit einer h oheren

  • Upload
    ngodien

  • View
    215

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Kurzeinführung in Octave - mathematik.uni-marburg.de · I In der Standardeinstellung gibt Octave Ergebnisse nur mit 4 Nachkommastellen aus, gerechnet wird aber mit einer h oheren

Kurzeinfuhrung inOctave

Jens Kappei

Was ist Octave?

Elementare Befehle

Matrizen undVektoren

Relations- undlogischeOperatoren

Kontrollstrukturen

Schleifen

Funktionen

Skripte

Plots

Erganzungen

Kurzeinfuhrung in Octave

Jens Kappei

FB 12 Mathematik und InformatikPhilipps-Universitat Marburg

Vorlesung Numerische Basisverfahren21./22.04.2010

Page 2: Kurzeinführung in Octave - mathematik.uni-marburg.de · I In der Standardeinstellung gibt Octave Ergebnisse nur mit 4 Nachkommastellen aus, gerechnet wird aber mit einer h oheren

Kurzeinfuhrung inOctave

Jens Kappei

Was ist Octave?

Elementare Befehle

Matrizen undVektoren

Relations- undlogischeOperatoren

Kontrollstrukturen

Schleifen

Funktionen

Skripte

Plots

Erganzungen

Was ist Octave?

Octave...

I ist eine hohere Programmiersparche,

I ist eine Interpretersprache,

I kann interaktiv (wie ein Taschenrechner) oder alsSkriptsprache genutzt werden,

I ist im Gegensatz zu Matlab frei erhaltlich,

I ist leicht erlernbar,

I ist Matrix-/Vektor-basiert,

I enthalt bereits viele numerische Algorithmen,

I ermoglicht einfache graphische Visualisierungen vonErgebnissen mittels “Gnuplot”.

Page 3: Kurzeinführung in Octave - mathematik.uni-marburg.de · I In der Standardeinstellung gibt Octave Ergebnisse nur mit 4 Nachkommastellen aus, gerechnet wird aber mit einer h oheren

Kurzeinfuhrung inOctave

Jens Kappei

Was ist Octave?

Elementare Befehle

Matrizen undVektoren

Relations- undlogischeOperatoren

Kontrollstrukturen

Schleifen

Funktionen

Skripte

Plots

Erganzungen

Ein Interpreter liest den Quellcode ein, analysiert ihn undfuhrt ihn aus. Die Analyse des Quellcodes erfolgt alsozur Laufzeit des Programms!

I Vorteil: Reine Interpreter sind auf jederRechnerarchitektur lauffahig, wenn der Quellcode desInterpreters dort ubersetzt werden kann.

I Nachteil: Im Allgemeinen gegenuber kompiliertenProgrammen (Java, C++,...) deutlich langsamereAusfuhrungsgeschwindigkeit!

Page 4: Kurzeinführung in Octave - mathematik.uni-marburg.de · I In der Standardeinstellung gibt Octave Ergebnisse nur mit 4 Nachkommastellen aus, gerechnet wird aber mit einer h oheren

Kurzeinfuhrung inOctave

Jens Kappei

Was ist Octave?

Elementare Befehle

Matrizen undVektoren

Relations- undlogischeOperatoren

Kontrollstrukturen

Schleifen

Funktionen

Skripte

Plots

Erganzungen

Eine Skriptsprache ist vor allem fur kleine, uberschaubareProgrammieraufgaben gedacht. Haufige Merkmale sind:

I Implizit deklarierte Variablen,

I dynamische Typisierung,

I automatische Speicherverwaltung (und -bereinigung),

I Interpretersprachen.

Page 5: Kurzeinführung in Octave - mathematik.uni-marburg.de · I In der Standardeinstellung gibt Octave Ergebnisse nur mit 4 Nachkommastellen aus, gerechnet wird aber mit einer h oheren

Kurzeinfuhrung inOctave

Jens Kappei

Was ist Octave?

Elementare Befehle

Matrizen undVektoren

Relations- undlogischeOperatoren

Kontrollstrukturen

Schleifen

Funktionen

Skripte

Plots

Erganzungen

Installation unter WindowsInstallation:

I http://www.gnu.org/software/octave/ =⇒Download

I Runterscrollen zu ‘‘Windows’’ =⇒ ‘‘OctaveForge’’=⇒ Windows Installer

I

Octave-3.2.4 i686-pc-mingw32 gcc-4.4.0 setup.exeherunterladen und ausfuhren

Dokumentation:

I Eine PDF- bzw. HTML-Dokumentation wirdmitgeliefert. Diese liegt im Unterverzeichnis ’doc’ imOctave-Verzeichnisbaum.

I oder http://www.gnu.org/software/octave/ =⇒docs =⇒ 575 page manual

I oder auf den Linuxrechnern des Fachbereichs.

Page 6: Kurzeinführung in Octave - mathematik.uni-marburg.de · I In der Standardeinstellung gibt Octave Ergebnisse nur mit 4 Nachkommastellen aus, gerechnet wird aber mit einer h oheren

Kurzeinfuhrung inOctave

Jens Kappei

Was ist Octave?

Elementare Befehle

Matrizen undVektoren

Relations- undlogischeOperatoren

Kontrollstrukturen

Schleifen

Funktionen

Skripte

Plots

Erganzungen

Elementare Befehle

I Elementare Rechnungen (ohne Variablen) konnen direktin die Octave-Konsole eingetippt werden, z.B. liefert

2.3+3.8

die Ausgabe ans = 6.1000.

Achtung: Octave-Syntax nutzt “Punkt” als “Komma”!

I In der Standardeinstellung gibt Octave Ergebnisse nurmit 4 Nachkommastellen aus, gerechnet wird aber miteiner hoheren Genauigkeit, etwa 16 Nachkommastellen.

I Der Befehl format erlaubt eine Formatierung desAusgabeformats, format long gibt beispielsweise 14Nachkommastellen aus.

Page 7: Kurzeinführung in Octave - mathematik.uni-marburg.de · I In der Standardeinstellung gibt Octave Ergebnisse nur mit 4 Nachkommastellen aus, gerechnet wird aber mit einer h oheren

Kurzeinfuhrung inOctave

Jens Kappei

Was ist Octave?

Elementare Befehle

Matrizen undVektoren

Relations- undlogischeOperatoren

Kontrollstrukturen

Schleifen

Funktionen

Skripte

Plots

Erganzungen

Elementare Befehle

I Wichtige Konstanten sind in Octave vordefiniert (e, pi,i,...).

I Fur komplexere Rechnungen werden Variablen benotigt.Eine einfache Variableninitialisierung sieht in Octave soaus:

x=2

Dabei wird x=2 auf der Konsole ausgegeben und eineVariable x mit dem Wert 2 im Speicher angelegt.

I Die Eingabe x=2; hat den gleichen Effekt, allerdingsohne Ausgabe auf der Konsole.

I Mit who x bzw. whos x erhalt man Informationen uberdie Variable x, mit who bzw. whos uber alle aktuellverwendeten Variablen.

Page 8: Kurzeinführung in Octave - mathematik.uni-marburg.de · I In der Standardeinstellung gibt Octave Ergebnisse nur mit 4 Nachkommastellen aus, gerechnet wird aber mit einer h oheren

Kurzeinfuhrung inOctave

Jens Kappei

Was ist Octave?

Elementare Befehle

Matrizen undVektoren

Relations- undlogischeOperatoren

Kontrollstrukturen

Schleifen

Funktionen

Skripte

Plots

Erganzungen

Elementare Befehle

I Mit Variablen kann analog gerechnet werden:

x=2;y=3;z=x+y % Summe von x und yz=2^(x+y) % Potenzen berechnenz=z+2

I Die Auswertung mathematischer Ausdrucke erfolgt vonrechts nach links! D.h., es wird erst z aus dem Speichergelesen, dann um 2 erhoht und das Ergebnis unter demNamen z wieder in den Speicher geschrieben.

Der alte Wert von z geht dabei verloren!

Page 9: Kurzeinführung in Octave - mathematik.uni-marburg.de · I In der Standardeinstellung gibt Octave Ergebnisse nur mit 4 Nachkommastellen aus, gerechnet wird aber mit einer h oheren

Kurzeinfuhrung inOctave

Jens Kappei

Was ist Octave?

Elementare Befehle

Matrizen undVektoren

Relations- undlogischeOperatoren

Kontrollstrukturen

Schleifen

Funktionen

Skripte

Plots

Erganzungen

Elementare Befehle

I Viele elementare (Funktions-) Befehle sind in Octavevordefiniert sin, cos, exp, sqrt, min/ max, sum,...).

I Ihr Aufruf erfolgt intuitiv, z.B. mit

sin(pi/2) % Berechnet Sinus von pi/2min(x,y) % Berechnet Minimum von x und ysqrt(2) % Berechnet die Wurzel von 2

I Falls man den genauen Namen nicht kennt:Anfangsbuchstabe(n) eintippen und “Tab”-Tastedoppelt drucken, die Autovervollstandigung gibt eineListe moglicher Befehle.

I help sin liefert Hilfe zum sin-Befehl.

I Mit clear z wird die Variable z geloscht, mit clearwerden alle aktuellen Variablen geloscht.

I quit oder exit beendet Octave.

Page 10: Kurzeinführung in Octave - mathematik.uni-marburg.de · I In der Standardeinstellung gibt Octave Ergebnisse nur mit 4 Nachkommastellen aus, gerechnet wird aber mit einer h oheren

Kurzeinfuhrung inOctave

Jens Kappei

Was ist Octave?

Elementare Befehle

Matrizen undVektoren

Relations- undlogischeOperatoren

Kontrollstrukturen

Schleifen

Funktionen

Skripte

Plots

Erganzungen

Matrizen und Vektoren

I MATLAB (MATrix LABoratory) und Octave fassen alleVariablen als Matrizen/Vektoren auf.

I Auch Skalare werden als Vektoren der Lange 1 bzw.Matrizen der Große 1x1 interpretiert.

I Vektoren und Matrizen konnen auf verschiedene Artenerzeugt werden.

Page 11: Kurzeinführung in Octave - mathematik.uni-marburg.de · I In der Standardeinstellung gibt Octave Ergebnisse nur mit 4 Nachkommastellen aus, gerechnet wird aber mit einer h oheren

Kurzeinfuhrung inOctave

Jens Kappei

Was ist Octave?

Elementare Befehle

Matrizen undVektoren

Relations- undlogischeOperatoren

Kontrollstrukturen

Schleifen

Funktionen

Skripte

Plots

Erganzungen

Skalare als Vektoren/Matrizen

Fortsetzung Beispiel x=2

x=2 % Vektor der Lange 1

y=size(x) % (Zeilen- und Spalten-) Große von x% wird in Variable y gespeichert

length(x) % Lange des Vektors x

x(1,1) % Zugriff auf Element x11

x(1,2) % liefert Fehler: Element nicht vorhanden

x(1,3)=3 % ist ok, ergibt den Zeilenvektor x=(2,0,3)

x=x(1,3) % wieder Reduktion auf Große 1x1

x(3,3)=4 % liefert 3x3 Matrix mit x11 = 2, x33 = 4

Page 12: Kurzeinführung in Octave - mathematik.uni-marburg.de · I In der Standardeinstellung gibt Octave Ergebnisse nur mit 4 Nachkommastellen aus, gerechnet wird aber mit einer h oheren

Kurzeinfuhrung inOctave

Jens Kappei

Was ist Octave?

Elementare Befehle

Matrizen undVektoren

Relations- undlogischeOperatoren

Kontrollstrukturen

Schleifen

Funktionen

Skripte

Plots

Erganzungen

Vektoren und Matrizen initialisieren

I u=[1,2,3] bzw. u=[1 2 3] liefert den Zeilenvektoru = (1, 2, 3).

I u=[1;2;3] liefert den Spaltenvektor u =

123

.

I A=[1,2,3; 4,5,6; 7,8,9] bzw. A=[1 2 3; 4 5 6;7 8 9] liefert die 3x3 Matrix

A =

1 2 34 5 67 8 9

.

I Auch fur einige Matrizen gibt es bereits vordefinierteBefehle: ones, zeros, eye, rand, diag,...eye(3,3) erzeugt z.B. die Einheitsmatrix I3 der Große3x3.

Page 13: Kurzeinführung in Octave - mathematik.uni-marburg.de · I In der Standardeinstellung gibt Octave Ergebnisse nur mit 4 Nachkommastellen aus, gerechnet wird aber mit einer h oheren

Kurzeinfuhrung inOctave

Jens Kappei

Was ist Octave?

Elementare Befehle

Matrizen undVektoren

Relations- undlogischeOperatoren

Kontrollstrukturen

Schleifen

Funktionen

Skripte

Plots

Erganzungen

Der “:”-Operator

I Manche Vektoren/Matrizen (z.B. Indexvektoren) sindleichter mit dem “:”-Operator zu erzeugen:

u=1:4 entspricht dem Befehl u=[1,2,3,4],

v=(1:3)' entspricht dem Befehl v=[1;2;3].

I Der “:”-Operator dient auch zum Aufruf:

u(1:3) liefert den Zeilenvektor, der die ersten dreiElemente von u enthalt, v(2:3) liefert denSpaltenvektor, der die letzten beiden Elemente von venthalt.

I Der Aufruf A(2:3,:) liefert die zweite und dritte Zeileeiner Matrix A.

Page 14: Kurzeinführung in Octave - mathematik.uni-marburg.de · I In der Standardeinstellung gibt Octave Ergebnisse nur mit 4 Nachkommastellen aus, gerechnet wird aber mit einer h oheren

Kurzeinfuhrung inOctave

Jens Kappei

Was ist Octave?

Elementare Befehle

Matrizen undVektoren

Relations- undlogischeOperatoren

Kontrollstrukturen

Schleifen

Funktionen

Skripte

Plots

Erganzungen

Der “:”-Operator

I Der “:”-Operator - einfach angewendet - bedeutet beimErzeugen von Vektoren und Matrizenumgangs-sprachlich so viel wie “von ... bis ...”, bezogenauf ganze Zahlen.

I Beim Aufruf steht er - einfach angewendet - fur “alleEintrage dieser Dimension”.

I Der “:”-Operator kann auch doppelt verwendet werden,um die Schrittweite von 1 zu andern:

u=0:0.1:0.5 steht fur u=[0, 0.1, 0.2, 0.3, 0.4,0.5].

I Das bedeutet dann soviel wie “von ... jedes ...-teElement dieser Dimension bis ...”.

Page 15: Kurzeinführung in Octave - mathematik.uni-marburg.de · I In der Standardeinstellung gibt Octave Ergebnisse nur mit 4 Nachkommastellen aus, gerechnet wird aber mit einer h oheren

Kurzeinfuhrung inOctave

Jens Kappei

Was ist Octave?

Elementare Befehle

Matrizen undVektoren

Relations- undlogischeOperatoren

Kontrollstrukturen

Schleifen

Funktionen

Skripte

Plots

Erganzungen

Rechnen mit Matrizen und Vektoren

I Die Addition, Multiplikation etc. von Matrizen undVektoren (passender Dimension!!!) erfolgt nach denbekannten Rechenregeln:

A*x, A+B, A*B, u-v, u'*A*v, ...

I Matrizen/Vektoren werden durch Anhangen einesApostrophs oder durch den Befehl transposetransponiert:

A' bzw. transpose(A), u'*u (Skalarprodukt)

I Vordefinierte Methoden sind beispielsweise inv(A),dot(u,v), det(A).

Page 16: Kurzeinführung in Octave - mathematik.uni-marburg.de · I In der Standardeinstellung gibt Octave Ergebnisse nur mit 4 Nachkommastellen aus, gerechnet wird aber mit einer h oheren

Kurzeinfuhrung inOctave

Jens Kappei

Was ist Octave?

Elementare Befehle

Matrizen undVektoren

Relations- undlogischeOperatoren

Kontrollstrukturen

Schleifen

Funktionen

Skripte

Plots

Erganzungen

Rechnen mit Matrizen und Vektoren

I Sollen Operationen auf Matrizen/Vektorenkomponentenweise durchgefuhrt werden, d.h., sollenbeispielsweise alle Eintrage einer Matrix quadriertwerden, ist vor die entsprechende Operation ein “.” zusetzen.

u=[1, 2, 3, 4] % Initialisiere Zeilenvektor mit% Elementen 1 bis 4

v = u.^2 % erzeugt v=[1, 4, 9, 16]

c = u.*v % erzeugt c=[1, 8, 27, 64]

d = 2*c % erzeugt d=[2, 16, 54, 128]

I Auch viele vordefinierte Standardfunktionen wirkenkomponentenweise:

v=[1,2,3] =⇒ sin(v)=[sin(1), sin(2),sin(3)].

Page 17: Kurzeinführung in Octave - mathematik.uni-marburg.de · I In der Standardeinstellung gibt Octave Ergebnisse nur mit 4 Nachkommastellen aus, gerechnet wird aber mit einer h oheren

Kurzeinfuhrung inOctave

Jens Kappei

Was ist Octave?

Elementare Befehle

Matrizen undVektoren

Relations- undlogischeOperatoren

Kontrollstrukturen

Schleifen

Funktionen

Skripte

Plots

Erganzungen

Relations- und logische Operatoren

I Logische Operatoren

Octave Bedeutung

∼ ¬&& ∧|| ∨

I Relations-Operatoren

Octave Bedeutung

< <<= ≤> >>= ≥== =∼= 6=

Page 18: Kurzeinführung in Octave - mathematik.uni-marburg.de · I In der Standardeinstellung gibt Octave Ergebnisse nur mit 4 Nachkommastellen aus, gerechnet wird aber mit einer h oheren

Kurzeinfuhrung inOctave

Jens Kappei

Was ist Octave?

Elementare Befehle

Matrizen undVektoren

Relations- undlogischeOperatoren

Kontrollstrukturen

Schleifen

Funktionen

Skripte

Plots

Erganzungen

Relations- und logische Operatoren

I Der boolesche Wert “true” wird in Matlab/Octave mit’1’ (bzw. jeder Zahl ungleich Null) codiert, “false” mit’0’.

I a=false bzw. a=0 initialisieren eine boolesche Variablemit dem Wert “false”.

I Logische Verknupfungen geschehen z.B. in der Forma&&b, a|b.

I Vergleiche geben boolesche Variablen zuruck: Fur x=2und y=3 liefert x==y das Ergenis ans = 0 (also false),x<=y liefert ans = 1 (also true) usw.

I Funktioniert auch mit Matrizen (gleicher Dimension):A<B liefert die Matrix des elementweisen Vergleichesvon A und B.

Page 19: Kurzeinführung in Octave - mathematik.uni-marburg.de · I In der Standardeinstellung gibt Octave Ergebnisse nur mit 4 Nachkommastellen aus, gerechnet wird aber mit einer h oheren

Kurzeinfuhrung inOctave

Jens Kappei

Was ist Octave?

Elementare Befehle

Matrizen undVektoren

Relations- undlogischeOperatoren

Kontrollstrukturen

Schleifen

Funktionen

Skripte

Plots

Erganzungen

Die if-(else)-Anweisung

I Eine Verzweigung, d.h. die Behandlung unterschiedlicherFalle, geschieht mit den Schlusselworten if, elseifund else, wobei die beiden letzten optional sind.

I Syntax:

if Bedingung 1Anweisungsfolge 1

elseif Bedingung 2Anweisungsfolge 2

elseAnweisungsfolge 3

end

Page 20: Kurzeinführung in Octave - mathematik.uni-marburg.de · I In der Standardeinstellung gibt Octave Ergebnisse nur mit 4 Nachkommastellen aus, gerechnet wird aber mit einer h oheren

Kurzeinfuhrung inOctave

Jens Kappei

Was ist Octave?

Elementare Befehle

Matrizen undVektoren

Relations- undlogischeOperatoren

Kontrollstrukturen

Schleifen

Funktionen

Skripte

Plots

Erganzungen

Die if-(else)-Anweisung

I Ein Beispiel:

x=2;

if x==1disp('x hat den Wert 1')

elseif x==2disp('x hat den Wert 2')

elsedisp('x hat weder den Wert 1 nochden Wert 2')disp('Tschuess!')

end

I disp gibt dabei den in Apostrophen gesetzten Text aufder Konsole aus.

Page 21: Kurzeinführung in Octave - mathematik.uni-marburg.de · I In der Standardeinstellung gibt Octave Ergebnisse nur mit 4 Nachkommastellen aus, gerechnet wird aber mit einer h oheren

Kurzeinfuhrung inOctave

Jens Kappei

Was ist Octave?

Elementare Befehle

Matrizen undVektoren

Relations- undlogischeOperatoren

Kontrollstrukturen

Schleifen

Funktionen

Skripte

Plots

Erganzungen

Schleifen

I Schleifen sind Kontrollstrukturen, die eineAnweisungsblock so lange wiederholen wie eineLaufbedingung gultig ist oder eine Abbruchbedingungeintritt.

I for laufindex = startwert(:schrittweite):endwert

Anweisungsblockend

I while(Bedingung mit log. oder rel.Operatoren)

Anweisungsblockend

Page 22: Kurzeinführung in Octave - mathematik.uni-marburg.de · I In der Standardeinstellung gibt Octave Ergebnisse nur mit 4 Nachkommastellen aus, gerechnet wird aber mit einer h oheren

Kurzeinfuhrung inOctave

Jens Kappei

Was ist Octave?

Elementare Befehle

Matrizen undVektoren

Relations- undlogischeOperatoren

Kontrollstrukturen

Schleifen

Funktionen

Skripte

Plots

Erganzungen

Schleifen

I Beispiel einer for-Schleife:erg=0;

for i=1:100

erg = erg + i; % alternativ: erg+=i;

end

I Das gleiche Beispiel mit einer while-Schleife:erg = 0;

i=1;

while(i<=100)

erg = erg + i;i = i + 1; % alternativ: i+=1;

end

Page 23: Kurzeinführung in Octave - mathematik.uni-marburg.de · I In der Standardeinstellung gibt Octave Ergebnisse nur mit 4 Nachkommastellen aus, gerechnet wird aber mit einer h oheren

Kurzeinfuhrung inOctave

Jens Kappei

Was ist Octave?

Elementare Befehle

Matrizen undVektoren

Relations- undlogischeOperatoren

Kontrollstrukturen

Schleifen

Funktionen

Skripte

Plots

Erganzungen

Schleifen

I Sehr nutzlich bei der Verwendung von Schleifen sind oftdie Befehle continue und break.

I continue beendet den aktuellen Schleifendurchlauf undbeginnt den nachsten.

I break beendet die gesamte Schleife.

I Ein Beispiel:

for i=1:20if (i==5 || i==10)continue;

elsei

endend

Page 24: Kurzeinführung in Octave - mathematik.uni-marburg.de · I In der Standardeinstellung gibt Octave Ergebnisse nur mit 4 Nachkommastellen aus, gerechnet wird aber mit einer h oheren

Kurzeinfuhrung inOctave

Jens Kappei

Was ist Octave?

Elementare Befehle

Matrizen undVektoren

Relations- undlogischeOperatoren

Kontrollstrukturen

Schleifen

Funktionen

Skripte

Plots

Erganzungen

Schleifen

I Nachteil: Schleifen in Matlab/Octave sind sehr langsam!

I Vorteil: Schleifen lassen sich oft vermeiden!

I Schleifen konnen durch vordefinierte Funktionenvermieden werden, z.B. liefert sum(1:100) das gleicheErgebnis wie die beiden vorherigen Schleifen.

I Schleifen konnen durch Ausnutzen derMatrix-/Vektor-Struktur von Octave vermieden werden:Die Anweisungen

var = 1:100;values = var.^2;

liefern die ersten 100 Quadratzahlen ohne Schleife.

Page 25: Kurzeinführung in Octave - mathematik.uni-marburg.de · I In der Standardeinstellung gibt Octave Ergebnisse nur mit 4 Nachkommastellen aus, gerechnet wird aber mit einer h oheren

Kurzeinfuhrung inOctave

Jens Kappei

Was ist Octave?

Elementare Befehle

Matrizen undVektoren

Relations- undlogischeOperatoren

Kontrollstrukturen

Schleifen

Funktionen

Skripte

Plots

Erganzungen

Funktionen

I Bisher haben wir hauptsachlich einfacheRechenoperationen betrachtet, die sich direkt in Octaveeintippen lassen.

I Aber: In Octave sind bereits viel komplexere Funktionenintegriert, z.B.

I roots([a1, a2, . . . , an+1]) liefert die Nullstellen desPolynoms a1x

n + a2xn−1 + . . . + anx + an+1.

I x=A\b berechnet mit dem Gauss-Algorithmus dieLosung des linearen Gleichungssystems Ax = b.

I Octave bietet zudem die Moglichkeit, eigene Funktionenzu definieren. Dazu erstellt man eine Textdateifunktionsname.m und beginnt diese mit der Zeile

function [-out-] = funktionsname(-in-).

Dabei sind in und out Platzhalter fur die Ein- undAusgabevariablen.

Page 26: Kurzeinführung in Octave - mathematik.uni-marburg.de · I In der Standardeinstellung gibt Octave Ergebnisse nur mit 4 Nachkommastellen aus, gerechnet wird aber mit einer h oheren

Kurzeinfuhrung inOctave

Jens Kappei

Was ist Octave?

Elementare Befehle

Matrizen undVektoren

Relations- undlogischeOperatoren

Kontrollstrukturen

Schleifen

Funktionen

Skripte

Plots

Erganzungen

Eine Beispielfunktion

% The function det2x2 calculates the determinand% of a rectangular 2x2 Matrix. Other dimensions% are not allowed

function y = det2x2(A)

if(size(A)(1,1)∼=2 || size(A)(1,2)∼=2)printf('%s\n','Die eingegebene Matrix A ist

keine 2x2-Matrix!')

else

y=A(1,1)*A(2,2)-A(2,1)*A(1,2);

end

end (optional!)

Page 27: Kurzeinführung in Octave - mathematik.uni-marburg.de · I In der Standardeinstellung gibt Octave Ergebnisse nur mit 4 Nachkommastellen aus, gerechnet wird aber mit einer h oheren

Kurzeinfuhrung inOctave

Jens Kappei

Was ist Octave?

Elementare Befehle

Matrizen undVektoren

Relations- undlogischeOperatoren

Kontrollstrukturen

Schleifen

Funktionen

Skripte

Plots

Erganzungen

Aufrufe eigener Funktionen

I Selbst definierte Funktionen werden wieStandardfunktionen auf der Konsole aufgerufen:A=[1,2; 2,1];det2x2(A) % Ausgabe ist ans = -3

I Octave durchsucht beim Aufruf einer Funktion ihmvorgegebene Verzeichnisse des Rechners nach einerpassenden .m-Datei. Mit dem Befehl path erhalt maneine Liste der dazu durchsuchten Verzeichnisse.Ist die Datei nicht in einem dieser Verzeichnissegespeichert, findet Octave die Funktion nicht!

I Mit dem Befehl addpath('Pfad') konnenVerzeichnisse erganzt werden, unter Windows z.B. durchaddpath('C:/Dokumente und Einstellungen/JensKappei/Eigene Dateien')

Page 28: Kurzeinführung in Octave - mathematik.uni-marburg.de · I In der Standardeinstellung gibt Octave Ergebnisse nur mit 4 Nachkommastellen aus, gerechnet wird aber mit einer h oheren

Kurzeinfuhrung inOctave

Jens Kappei

Was ist Octave?

Elementare Befehle

Matrizen undVektoren

Relations- undlogischeOperatoren

Kontrollstrukturen

Schleifen

Funktionen

Skripte

Plots

Erganzungen

Erganzende Informationen zu Funktionen

I Der Ruckgabewert einer Funktion kann auch direkt aneine Variable zugewiesen werden, z.B.

erg = det2x2(A);

I Eine Funktion kann mehrere Ruckgabewerte haben.Eine Zuweisung des Ergebnisses an Variablen hat dannz.B. die Form

[x,y] = min max(A);

I Zum besseren Verstandnis der Funktion sindKommentare wichtig, das Zeichen % bewirkt, dass derRest der Zeile als Kommentar angesehen wird und nichtvon Octave verarbeitet wird.

I Ein Kommentar noch vor der Funktionsdeklaration(siehe det2x2) wird bei Aufruf von help auf die Konsoleausgegeben.

Page 29: Kurzeinführung in Octave - mathematik.uni-marburg.de · I In der Standardeinstellung gibt Octave Ergebnisse nur mit 4 Nachkommastellen aus, gerechnet wird aber mit einer h oheren

Kurzeinfuhrung inOctave

Jens Kappei

Was ist Octave?

Elementare Befehle

Matrizen undVektoren

Relations- undlogischeOperatoren

Kontrollstrukturen

Schleifen

Funktionen

Skripte

Plots

Erganzungen

Skripte

I Damit Aufrufe nicht direkt in die Konsole getipptwerden mussen, automatisiert man (wiederkehrende)Ablaufe mit Hilfe von Skripten.

I Skripte werden wie Funktionen in m-Files erstellt,allerdings ohne function-Deklaration.

I Skripte sind “fest”, es konnen keine Variablenubergeben werden!

I Die in einem Skript aufgerufenen Variablen bleiben nachder Ausfuhrung bestehen und konnen weiter verwendetwerden.

I Beispiel: skript prim.m

Page 30: Kurzeinführung in Octave - mathematik.uni-marburg.de · I In der Standardeinstellung gibt Octave Ergebnisse nur mit 4 Nachkommastellen aus, gerechnet wird aber mit einer h oheren

Kurzeinfuhrung inOctave

Jens Kappei

Was ist Octave?

Elementare Befehle

Matrizen undVektoren

Relations- undlogischeOperatoren

Kontrollstrukturen

Schleifen

Funktionen

Skripte

Plots

Erganzungen

Plots

I Octave bietet viele Moglichkeiten zur graphischenAusgabe von Ergebnissen.

I Der Befehl plot eignet sich z.B. gut fur die Ausgabevon Funktionsgraphen.

x=-3:0.01:3;% Diskretes Punktgitter von -3 bis 3

y=0.5*exp(-abs(x));% Funktionswerte bestimmen

plot(x,y,'r')% Erstellen eines 2D-Plots des Funktionsgraphen% Parameter 'r' sorgt fur rote Plotfarbe

Page 31: Kurzeinführung in Octave - mathematik.uni-marburg.de · I In der Standardeinstellung gibt Octave Ergebnisse nur mit 4 Nachkommastellen aus, gerechnet wird aber mit einer h oheren

Kurzeinfuhrung inOctave

Jens Kappei

Was ist Octave?

Elementare Befehle

Matrizen undVektoren

Relations- undlogischeOperatoren

Kontrollstrukturen

Schleifen

Funktionen

Skripte

Plots

Erganzungen

Plots

0.05

0.1

0.15

0.2

0.25

0.3

0.35

0.4

0.45

0.5

-3 -2 -1 0 1 2 3

Page 32: Kurzeinführung in Octave - mathematik.uni-marburg.de · I In der Standardeinstellung gibt Octave Ergebnisse nur mit 4 Nachkommastellen aus, gerechnet wird aber mit einer h oheren

Kurzeinfuhrung inOctave

Jens Kappei

Was ist Octave?

Elementare Befehle

Matrizen undVektoren

Relations- undlogischeOperatoren

Kontrollstrukturen

Schleifen

Funktionen

Skripte

Plots

Erganzungen

Plots

I Diverse andere Parameter (z.B. fur den Linientyp) sindmoglich und wie gewohnt uber help plot zu erhalten.

I Das Bild (Achsen, Beschriftung etc.) ist in vielfaltigerWeise manipulierbar, z.B. legt der Befehlaxis([xStart xEnde yStart yEnde]) dendargestellten Bereich fest.

I Naturlich konnen mehrere Plots in einem Fensterangezeigt werden. Mit dem Befehl hold on wird dasaktuelle Fenster aktiv gehalten, um weitere Eingaben zuermoglichen. Mit hold off wird dies aufgehoben.

I Auch 3D-Plots sind moglich.

I Graphiken konnen in diversen Formaten gespeichertwerden, z.B. mit

print -deps -color expplot.eps

im eps (encapsulated PostScript)-Format.

Page 33: Kurzeinführung in Octave - mathematik.uni-marburg.de · I In der Standardeinstellung gibt Octave Ergebnisse nur mit 4 Nachkommastellen aus, gerechnet wird aber mit einer h oheren

Kurzeinfuhrung inOctave

Jens Kappei

Was ist Octave?

Elementare Befehle

Matrizen undVektoren

Relations- undlogischeOperatoren

Kontrollstrukturen

Schleifen

Funktionen

Skripte

Plots

Erganzungen

Erganzungen

I Der printf-Befehl erlaubt im Vergleich zu disp einestrukturiertere, insbesondere aus mehreren Teilenzusammengesetzte Ausgabe. Ein Beispiel:

x=2;printf('%s%d%s\ n', 'Die Variable x hat denWert ',x, '.')

liefert die Ausgabe “Die Variable x hat den Wert 2.”

I Als erstes Argument erhalt printf den strukturellenAufbau der Ausgabe, wobei beispielsweise %s fur Text(String) und %d fur eine Zahl (Digit) stehen.

Page 34: Kurzeinführung in Octave - mathematik.uni-marburg.de · I In der Standardeinstellung gibt Octave Ergebnisse nur mit 4 Nachkommastellen aus, gerechnet wird aber mit einer h oheren

Kurzeinfuhrung inOctave

Jens Kappei

Was ist Octave?

Elementare Befehle

Matrizen undVektoren

Relations- undlogischeOperatoren

Kontrollstrukturen

Schleifen

Funktionen

Skripte

Plots

Erganzungen

Erganzungen

Weitere interessante Strukturen in Octave sind beispielsweise

I Die do ... until-Schleife, eine Variante derwhile-Schleife,

I Die switch-Anweisung zur Unterscheidung mehrererFalle, eine mogliche Alternative zu if ... else,

I Cell Arrays zum Speichern unterschiedlicherDatenstrukturen in einer Struktur, z.B.

c={[1 2 3], rand(3,3)};c{1} % Zugriff mit geschweiften Klammern!

Page 35: Kurzeinführung in Octave - mathematik.uni-marburg.de · I In der Standardeinstellung gibt Octave Ergebnisse nur mit 4 Nachkommastellen aus, gerechnet wird aber mit einer h oheren

Kurzeinfuhrung inOctave

Jens Kappei

Was ist Octave?

Elementare Befehle

Matrizen undVektoren

Relations- undlogischeOperatoren

Kontrollstrukturen

Schleifen

Funktionen

Skripte

Plots

Erganzungen

Erganzungen

Die hier vorgestellten Elemente von Ocatve werden allebeispielhaft in den folgenden Skripten angewendet, die Dr.Manuel Werner im Sommersemester 2009 erstellt hat unddie auf der Tutoriumsseite verlinkt sind:

I basics.m

I gauss.m

I bilder.m

I vermischtes.m

Vielen Dank!