GNU Octave / Matlab Eine Einführung .WiearbeitetmanmitOctave/Matlab? TypischeArbeitsumgebungmitOctave:

  • View
    219

  • Download
    1

Embed Size (px)

Text of GNU Octave / Matlab Eine Einführung .WiearbeitetmanmitOctave/Matlab?...

  • GNU Octave / Matlab Eine Einfhrung

    Dr. Martin Gutting

    Fakultt IV, Department Mathematik

  • Allgemeines zu Octave und MatlabWas ist Octave?

    Programm zur numerischen Lsung mathematischer Problemeinteraktiv oder skriptgesteuertkommandozeilenorientiert (noch keine grafische Oberflche)freie Software (GPL)Plattformen: Windows, OS X, Linux, Unix, Solaris, OS/2http://www.gnu.org/software/octave

    Was ist Matlab?kommerzielles Gegenstck zu OctaveGrundfunktionen syntaktisch quivalent zu Octavegrafische OberflchePlattformen: Windows, OS X, Linux, Unix, Solarishttp://www.mathworks.de/products/matlab

    Dr. Martin Gutting (Uni Siegen) GNU Octave / Matlab Eine Einfhrung 2 / 45

    http://www.gnu.org/software/octavehttp://www.mathworks.de/products/matlab

  • Wie arbeitet man mit Octave/Matlab?Typische Arbeitsumgebung mit Octave:

    links: Grafikausgabe (via Gnuplot)rechts oben: Octave-Kommandozeilerechts unten: Octave-Skript im Editor

    Dr. Martin Gutting (Uni Siegen) GNU Octave / Matlab Eine Einfhrung 3 / 45

  • Wie arbeitet man mit Octave/Matlab?Typische Arbeitsumgebung mit Matlab:

    links im Hintergrund: integrierte Matlab-Umgebung mit Skript-Editor(oben) und Kommandozeile (unten)rechts im Vordergrund: Grafikausgabe

    Dr. Martin Gutting (Uni Siegen) GNU Octave / Matlab Eine Einfhrung 4 / 45

  • Starten und Beenden von Octave/Matlab

    Unter Linux startet man Octave bzw. Matlab entwedermit der Maus ber das Startmen odermit der Tastatur ber das Terminal und dem Befehl

    octave

    bzw.matlab

    Beenden:aus der Kommandozeile von Octave/Matlab mit dem Befehl

    exit

    mit der Maus in Matlab (Men oder Fenster schlieen)

    Dr. Martin Gutting (Uni Siegen) GNU Octave / Matlab Eine Einfhrung 5 / 45

  • Erste Schritte in der Octave/Matlab-KommandozeileEinige einfache Befehle fr die Kommandozeile, danach immer Returndrcken (Taschenrechnerfunktion):

    Grundrechenarten +, -, *, / (Punkt vor Strich!)Kommazahlen werden mit Punkt geschrieben, z.B. 0.5Potenzieren mit , z.B. 23 (2Dach-Taste, oder Dach-&Leertaste)Quadratwurzel mit sqrt, z.B. sqrt(2)trigonometrische Funktionen sin, cos, tan, asin, acos, atan,. . .Absolutbetrag: absExponentialfunktion: expnatrlicher Logarithmus: logLogarithmus zur Basis 2 bzw. 10: log2, log10Konstante : piKonstante e: e (nur in Octave)Anzeige aller Nachkommastellen: format longAnzeige weniger Nachkommastellen: format short

    Aufgabe 1Dr. Martin Gutting (Uni Siegen) GNU Octave / Matlab Eine Einfhrung 6 / 45

  • Verhalten von Octave/Matlab bei Syntaxfehlern

    Bei Syntaxfehlern im eingegebenen Befehl (z.B. schlieende Klammerfehlt) reagieren Octave und Matlab leicht anders:

    Octave wertet bei fehlenden schlieenden Klammern den Befehl nochnicht aus und bietet eine neue Eingabezeile an, um die fehlendenKlammern nachzuliefern. Alternativ kann man Control-C drcken freine frische Kommandozeile. Im Allgemeinen gibt Octavedetaillierte Fehlermeldungen.Matlab gibt sofort detaillierte Fehlermeldungen und eine frischeKommandozeile.

    Dr. Martin Gutting (Uni Siegen) GNU Octave / Matlab Eine Einfhrung 7 / 45

  • Komplexe Zahlen

    Definition (Komplexe Zahlen)Komplexe Zahlen z C haben die Form z = a + ib, mit reellen Zahlena, b R und der imaginren Einheit i. Dabei heit a = Re(z) der Realteilvon z , b = Im(z) heit der Imaginrteil von z .

    Eine komplexe Zahl z = a + ib kann interpretiert werden als Punkt ( ab ) inder Ebene R2. Die reelle Zahlengerade ist die x -Achse dieser Ebene.

    Definition (Rechenoperationen in C)Komplexe Addition: (a + ib) + (c + id) := a + c + i(b + d)Komplexe Multiplikation: (a + ib)(c + id) := ac bd + i(ad + bc)Konjugation: a + ib := a ib

    Beachte: i2 = 1

    Dr. Martin Gutting (Uni Siegen) GNU Octave / Matlab Eine Einfhrung 8 / 45

  • Komplexe Zahlen

    Definition (Polarform komplexer Zahlen)Betrag/Lnge: |a + ib| :=

    a2 + b2

    Euler: rei := r(cos+ i sin), RArgument/Phase: := arg(z) erfllt (, ] und z = |z |ei

    Dr. Martin Gutting (Uni Siegen) GNU Octave / Matlab Eine Einfhrung 9 / 45

  • Behandlung komplexer Zahlen in Octave/Matlab

    imaginre Einheit: iEingabe einer komplexen Zahl als a+i*bRechengesetze (Addition,. . . ) funktionieren wie erwartet. . . auch viele Funktionen (trigonometrische Funktionen,Exponentialfunktion, Logarithmus,. . . )Konjugation: conjAbsolutbetrag: absArgument: arg (in Octave), angle (in Matlab)Real-/Imaginrteil: real, imag

    Aufgabe 2

    Dr. Martin Gutting (Uni Siegen) GNU Octave / Matlab Eine Einfhrung 10 / 45

  • Hilfe zur Selbsthilfe

    Matlab und Octave besitzen eine eingebaute ausfhrliche Hilfefunktion.Aufruf der Produktdokumentation in Matlab: F1 drcken oder Hilfemit der Maus auswhlenMatlab/Octave: Aufruf einer Kurzhilfe zum Befehl befehl aus derKommandozeile: help befehlAusfhrliche Hilfe in Matlab/Octave (bei Matlab teils grafisch, beiOctave als Text): doc befehlWeitere Hilfsmittel in Matlab:

    Die Syntax einer Funktion wird beim Eintippen einer ffnendenKlammer ( eingeblendet.Benutzte Variablen erscheinen im Workspace und knnen dort mitder Maus inspiziert werden.Funktionsbrowser links neben der Kommandozeile

    Dr. Martin Gutting (Uni Siegen) GNU Octave / Matlab Eine Einfhrung 11 / 45

  • VariablenEine Variable ist ein Behlter/Speicherbereich fr Rechnungsgren, aufden man mit dem Variablennamen zugreifen kann.

    Zuweisung/Erzeugung einer Variablen mit =, z.B. x=3Erlaubte Variablennamen: beginnen mit einem Buchstaben, drfenZiffern und den Unterstrich _ enthalten. Gro-/Kleinschreibung wirdbeachtet und Matlab-Schlsselworte sind verboten (vgl. iskeyword).Ausgabe des aktuellen Werts einer Variablen durch Eingabe desVariablennamens, z.B. x, oder mit disp, z.B. disp(x)Mit Variablen kann auch gerechnet werden, z.B. x+2*yEin Semikolon ; am Ende eines Befehls unterdrckt die Ausgabe.Anzeige der Namen aller benutzten Variablen: whoMehr Details zu allen benutzten Variablen, z.B. Speicherbedarf: whosLschen der Variablen x (Speicher freigeben): clear xLschen aller Variablen: clear

    Dr. Martin Gutting (Uni Siegen) GNU Octave / Matlab Eine Einfhrung 12 / 45

  • VektorenEin Vektor ist fr Matlab/Octave ein eindimensionales Zahlenfeld.

    Erzeugen von Zeilenvektoren: mit eckigen Klammern, die Elementesind durch Leerzeichen oder Kommata abgetrennt, z.B. [1 2 3] oder[1,2,3]Erzeugen von Spaltenvektoren: mit eckigen Klammern, die Elementesind durch Semikola abgetrennt, z.B. [1;2;3], oder durchTransponieren eines Zeilenvektors mit Hochkomma, z.B. [1 2 3]Spezielle Vektoren:

    Nullvektor, z.B. zeros(1,4)Vektor aus lauter Einsen, z.B. ones(3,1)Laufbereich ganzer Zahlen, z.B. 2:7Laufbereich mit beliebiger Schrittweite, z.B. 1:0.4:3 oder 10:-1:4

    Zuweisung zu Variablen geht natrlich, z.B. x=[1 2 3]Zugriff auf einzelne Eintrge mit runder Klammer, z.B. x(1) liefertden ersten Eintrag von x, x(end) liefert den letzten Eintrag von x,Schreibzugriff z.B. mit x(2)=5 (Achtung: verlngert ggf. x!)Die Lnge eines Vektors ermittelt die Funktion length. Aufgabe 3

    Dr. Martin Gutting (Uni Siegen) GNU Octave / Matlab Eine Einfhrung 13 / 45

  • Rechnen mit VektorenAddition/Subtraktion mit + bzw. -(Das Format der beteiligten Vektoren sollte stimmen!)skalares Vielfaches mit *, z.B. 2*xElementweise Operationen mit vorangestelltem Punkt, z.B. x.2(sehr mchtiges Hilfsmittel!)Viele Funktionen erlauben ihre komponentenweise Anwendung aufeinen Vektor, z.B. abs([3 -1.5]) oder sin([0 2 pi])Aufsummieren aller Eintrge eines Vektors: sum, z.B. sum(x)Euklidische Lnge x2 =

    |x1|2 + + |xn|2 eines Vektors: norm,

    z.B. norm(x)Innen-/Skalarprodukt zweier Vektoren: dot, z.B. dot(x,y)Kreuzprodukt zweier Vektoren im R3: cross, z.B. cross(x,y)

    Aufgabe 4Dr. Martin Gutting (Uni Siegen) GNU Octave / Matlab Eine Einfhrung 14 / 45

  • Einfache 2D-PlotsMit einem Plot ist die grafische Ausgabe von Matlab/Octave gemeint.

    Plots sind durch eine Menge von Punkten festgelegt.2D-Plots werden meistens mit plot erstellt. Die eingegebenen Punktewerden zu einem stetigen Streckenzug verbunden.Werte eines Vektors x der Lnge n gegen 1, 2, . . . , n plotten:

    plot(x)Werte eines Vektors y gegen Werte eines Vektors x plotten:

    plot(x,y)Standardfarbe fr den Streckenzug ist Blau. Andere Farben: z.B.

    plot(x,y,r)fr einen roten Streckenzug. Weitere Farben: Gelb (y), Magenta (m),Cyan (c), Grn (g), Blau (b), Wei (w), Schwarz (k).plot berschreibt den letzten Plot. Um das zu verhindern, kann manmit figure ein neues, leeres Plotfenster erzeugen und dorthin plotten.Den zuletzt erzeugten Plot hervor holen: shg (show graphics).

    Aufgabe 5Dr. Martin Gutting (Uni Siegen) GNU Octave / Matlab Eine Einfhrung 15 / 45

  • Plot-OptionenEinige Eigenschaften des Graphen lassen sich ber Plot-Optionen ndern:

    Einstellen des Linienstils (Matlab): z.B. gepunktete Linien mit :plot(x,y,:)

    Andere Stile: lange Striche (--), Strichpunkt (-.), durchgezogen (-)Einstellen des Linienstils in Octave: hnlich, ggf. aber unmglichEinstellen des Markertyps (Matlab), z.B. Kreise an jedem Datenpunktmit o (nicht miteinander verbunden): plot(x,y,o)Weitere Marker (Matlab): Pluszeichen (+), Stern (*), Punkt (.),Kreuz (x), Quadrat (s oder square), Raute (d oder diamond),Dreieck mit Spitze nach oben/unten/links/rechts (/v/),5-Punkt-Stern (p oder pentagram), 6-Punkt-Stern (h oderhexagram), kein Marker (none)Einstellen des Markertyps in Octave: hnliche OptionenOptionen knnen berlagert werden, z.B. roter gepunkteter Graph mitRauten bei jedem Datenpunkt (Reihenfolge der Optionen egal):

    plot(x,y,r:d)Dr. Martin Gutting (Uni Siegen) GNU Octave / Matlab Eine Einfhrung 16 / 45

  • 2D-Plots mehrerer FunktionenMan kann mehrere Funktionen in einem 2D-Plot darstellen:

    Beim Befeh

Recommended

View more >