MATLAB Eine Einfuhrung - hephy.at · PDF fileMATLAB Eine Einfuhrung R. Fr uhwirth Institut fur...

download MATLAB Eine Einfuhrung - hephy.at · PDF fileMATLAB Eine Einfuhrung R. Fr uhwirth Institut fur Hochenergiephysik der Osterreichischen Akademie der Wissenschaften und Institut fur

If you can't read please download the document

Transcript of MATLAB Eine Einfuhrung - hephy.at · PDF fileMATLAB Eine Einfuhrung R. Fr uhwirth Institut fur...

  • MATLAB

    Eine Einfuhrung

    R. Fruhwirth

    Institut fur Hochenergiephysik der

    Osterreichischen Akademie der Wissenschaften

    und

    Institut fur Wahrscheinlichkeitstheorie und Statistik

    Technische Universitat Wien

  • Inhaltsverzeichnis

    1 Allgemeine Struktur 3

    2 Arbeitsweise 3

    3 Anweisungen und Kommentare 4

    4 Tagebuch- und Hilfefunktion 44.1 Tagebuch . . . . . . . . . . . . . . . . . . . . . . . . . . . 44.2 Hilfe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

    5 Verzeichnisse und Suchpfade 55.1 Verzeichnis- und Dateiverwaltung . . . . . . . . . . . . . . 55.2 Anzeigen und Verandern von Suchpfaden . . . . . . . . . . 6

    6 Der Matlab-Editor 7

    7 Numerische Datentypen und arithmetische Operatoren 77.1 Numerische Konstante . . . . . . . . . . . . . . . . . . . . 77.2 Numerische Variable . . . . . . . . . . . . . . . . . . . . . 87.3 Arithmetische Operatoren . . . . . . . . . . . . . . . . . . 97.4 Arithmetische Ausdrucke . . . . . . . . . . . . . . . . . . . 107.5 Betrag und Vorzeichen . . . . . . . . . . . . . . . . . . . . 107.6 Primzahlen und Primfaktoren . . . . . . . . . . . . . . . . 107.7 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

    8 Logische Variable und logische Operationen 11

    9 Vektoren 119.1 Numerische Vektoren . . . . . . . . . . . . . . . . . . . . . 119.2 Logische Vektoren . . . . . . . . . . . . . . . . . . . . . . . 139.3 Zeichenketten (Strings) . . . . . . . . . . . . . . . . . . . . 139.4 Komponenten von Vektoren . . . . . . . . . . . . . . . . . 139.5 Vektoroperationen . . . . . . . . . . . . . . . . . . . . . . 149.6 Weitere Vektorfunktionen . . . . . . . . . . . . . . . . . . 159.7 Logische Vektorfunktionen . . . . . . . . . . . . . . . . . . 16

    2

  • 9.8 Graphische Darstellung . . . . . . . . . . . . . . . . . . . . 179.9 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

    10 Matrizen 1810.1 Aufbau von Matrizen . . . . . . . . . . . . . . . . . . . . . 1810.2 Komponenten von Matrizen . . . . . . . . . . . . . . . . . 1810.3 Matrixoperationen . . . . . . . . . . . . . . . . . . . . . . 1910.4 Eigenwerte und Eigenvektoren . . . . . . . . . . . . . . . . 2010.5 Weitere Matrixfunktionen . . . . . . . . . . . . . . . . . . 2010.6 Graphische Darstellung . . . . . . . . . . . . . . . . . . . . 2210.7 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

    11 Felder (Arrays) 2311.1 Numerische Felder . . . . . . . . . . . . . . . . . . . . . . 2311.2 Cell Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . 2311.3 Strukturen . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

    12 Polynome 25

    13 Elementare Funktionen 2513.1 Winkel- und Arcusfunktionen . . . . . . . . . . . . . . . . 2513.2 Exponential- und Logarithmusfunktionen . . . . . . . . . . 2613.3 Hyperbel- und Areafunktionen . . . . . . . . . . . . . . . . 2613.4 Matrixfunktionen . . . . . . . . . . . . . . . . . . . . . . . 2713.5 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

    14 Hohere Funktionen 28

    15 Eine Auswahl weiterer Matlab-Funktionen 29

    16 Graphische Darstellung von Funktionen 30

    17 Kontrollstrukturen 3117.1 if ...else ...end . . . . . . . . . . . . . . . . . . . . . 3117.2 for ...end . . . . . . . . . . . . . . . . . . . . . . . . . . 3117.3 while ...end . . . . . . . . . . . . . . . . . . . . . . . . . 32

    3

  • 17.4 switch ...end . . . . . . . . . . . . . . . . . . . . . . . . 3217.5 return . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3317.6 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

    18 Benutzerdefinierte Funktionen 3318.1 Inline-Funktionen . . . . . . . . . . . . . . . . . . . . . . . 3318.2 Echte Funktionen . . . . . . . . . . . . . . . . . . . . . . . 3418.3 Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

    19 Programme (Scripts) 36

    20 Interaktiver Debugger 37

    21 Die Matlab-Toolboxes 37

    4

  • 1 Allgemeine Struktur

    Matlab ist ein Programm der Firma MathWorks Inc. Der Namekommt nicht von

    Mathematik, sondern von

    Matrix, da

    Matlab ursprunglich ein Programm zur Vektor- undMatrizenrechnung war. Mittlerweile enthalt der Kern noch vieleandere Funktionen, von denen wir die wichtigsten kennenlernenwerden.

    Der Kern enthalt eingebaute Funktionen und Funktionen, die alsMatlab-Quellcode vorliegen.

    Neben dem Kern gibt es noch sogenannteToolboxes, also

    Werkzeugkisten, die zahlreiche Funktionen fur spezielleAnwendungen enthalten. Wir verwenden nur die

    Symbolic

    Toolbox, die die numerischen Funktionen des Kerns durchsymbolische erganzt.

    Eine Ubersicht uber samtliche Toolboxes wird zum Abschlugegeben.

    2 Arbeitsweise

    Wir verwenden Matlab vorwiegend interaktiv. Das heit, dassMatlab die eingegeben Befehle sofort interpretiert und ausfuhrt.Wenn gewunscht, wird das Ergebnis sofort angezeigt.

    Es konnen vom Benutzer jedoch auch Funktionen und kompletteProgramme erstellt werden. Soll etwa eine Sequenz vonAnweisungen wiederholt ausgefuhrt werden, genugt es, sie in einerDatei abzuspeichern. Der Typ der Datei muss .m sein. DasEingeben des Dateinamens fuhrt dann die gespeicherte Sequenzaus.

    Soll eine Sequenz wiederholt mit verschiedenen Eingabenausgefuhrt werden, empfiehlt es sich, eine Funktion mit Ein- undAusgabeparametern zu definieren.

    5

  • 3 Anweisungen und Kommentare

    Im interaktiven Modus konnen Anweisungen eingegeben werden,wenn das Matlab-Prompt erscheint (>>).

    Eine Matlab-Anweisung kann durch das Zeilende (CR, Enter),durch einen Strichpunkt (;) oder durch das Prozentzeichen (%)abgeschlossen werden.

    Alle Zeichen hinter dem Prozentzeichen gelten als Kommentar undwerden ignoriert.

    Eine Matlab-Anweisung kann durch die Ellipsis (...) in dienachste Zeile fortgesetzt werden.

    Der Strichpunkt verhindert die Anzeige des Resultats derAnweisung.

    Es konnen auch mehrere Anweisungen in eine Zeile geschriebenwerden, getrennt durch Komma oder Strichpunkt. Das Kommaerlaubt, der Strichpunkt verhindert die Anzeige des Resultats.>> a=1,b=1;c=3

    >> a,b,c

    4 Tagebuch- und Hilfefunktion

    4.1 Tagebuch

    Die Arbeit mit Matlab kann in einemTagebuch (diary)

    aufgezeichnet werden.

    Einschalten des Tagebuchs:>> diary Seminar % Tagebuch einschalten

    Ausschalten des Tagebucgs:>> diary off % Tagebuch ausschalten

    Die Datei Seminar kann anschlieend mit einem Texteditorbetrachtet werden. Es kann der Matlab-interne Editor verwendet

    6

  • werden:>> edit Seminar

    4.2 Hilfe

    Ist die Arbeitsweise einer Funktion nicht bekannt, kann man dieinteraktive Hilfe zu Rate ziehen:>> help linspace % Anzeige im Befehlsfenster

    >> helpwin linspace % Anzeige in einem neuen Fenster

    Ausfuhrliche Dokumentation im Web-Browser:>> helpdesk

    Der Pfad einer Funktion kann mit dem Befehl>> which linspace

    oder>> which(linspace)

    ermittelt werden.

    Ist der Pfad bekannt, kann der Quellcode inspiziert werden:>> edit(which(linspace))

    Stichwortsuche nach Funktionen:>> lookfor Bessel

    5 Verzeichnisse und Suchpfade

    5.1 Verzeichnis- und Dateiverwaltung

    Anzeige des aktuellen Verzeichnisses:>> pwd

    Andern des aktuellen Verzeichnisses:>> cd dir % Gehe in das Verzeichnis dir

    >> cd .. % Gehe in das nachsthohere Verzeichnis

    7

  • Anzeige der Dateien im aktuellen Verzeichnis:>> dir

    >> ls

    Anzeige der Matlab-Dateien im aktuellen Verzeichnis:>> what

    Anzeige der Matlab-Dateien in anderen Verzeichnissen:>> what toolbox/matlab/general

    Ausgabe einer Datei am Bildschirm:>> type test.m

    Blattern am Bildschirm:>> more on

    >> more off

    Loschen einer Datei:>> delete test.m

    Abfrage, ob eine Datei existiert:>> exist test.m

    5.2 Anzeigen und Verandern von Suchpfaden

    Wenn eine Funktion aufgerufen wird, durchsucht Matlab eineListe von Verzeichnissen, den sogenannten Suchpfad (search path).Sobald eine Funktion gefunden wird, wird die Suche abgebrochen.

    Eine existierende Matlab-Funktion kann somit vom Benutzerersetzt werden.

    Anzeige des aktuellen Suchpfades:>> path

    Hinzufugen von Verzeichnissen:>> addpath dir1 dir2 % am Anfang der Liste

    >> addpath dir3 dir4 -end% am Ende der Liste

    Entfernen von Verzeichnissen:>> rmpath dir1 dir2

    8

  • Verketten zweier Suchpfade:>> path(p1,p2)

    6 Der Matlab-Editor

    Matlab hat einen eingebauten Editor, der mit dem Befehl editaktiviert wird:>> edit test.m % Offne Datei test.m

    >> edit % Offne neue Datei

    Der Editor ist sensitiv auf die Matlab-Syntax.

    Der Editor dient gleichzeitig als Debugger (siehe unten).

    7 Numerische Datentypen und arithmetische

    Operatoren

    7.1 Numerische Konstante

    Numerische Konstante konnen mit Dezimalpunkt(Festkommaformat) oder im Gleitkommaformat eingegeben werden:>> 1.23

    >> 4.07e6

    >> 2-6.5i % Komplexe Konstante

    Die Kreiszahl ist bereits vorprogrammiert:>> pi

    Die Anzahl der angezeigten Dezimalstellen kann verandert werden:>> format long

    >> pi

    >> format short

    >> pi

    >> format bank

    >> pi

    >> format rat

    >> pi

    9

  • Neben den numerischen Konstanten gibt es noch die KonstantenNaN (not a number) und inf (unendlich):>> 1/0

    >> -1/0

    >> 0/0

    >> 1/inf

    >> 1/nan

    >> -in