Einleitung Mathematische Operationen Grafik Informationsverarbeitung im Bauwesen Markus Uhlmann Institut f¨ ur Hydromechanik WS 2009/2010 Bemerkung : Verweise auf zus¨ atzliche Information zum Download erscheinen in dieser Farbe V13 1 / 39
EinleitungMathematische Operationen
Grafik
Informationsverarbeitung im Bauwesen
Markus Uhlmann
Institut fur Hydromechanik
WS 2009/2010
Bemerkung: Verweise auf zusatzliche Information zum Download erscheinen in dieser Farbe
V13 1 / 39
EinleitungMathematische Operationen
Grafik
Zusammenfassung der 12. Vorlesung
Objektorientiertes Programmieren in VBA:Benutzerdefinierte Klassen
I Erstellen einfacher Klassen
I Datenkapselung durch private Variablen &Eigenschaftsprozeduren
I Definition von Schnittstellen
I Beispiele
V13 2 / 39
EinleitungMathematische Operationen
Grafik
Weiteres Beispiel zur 12. Vorlesung
Partikelsimulation, objektorientierte Variante
I Klassen fur:I Partikelobjekte
I Sammlung von Partikeln (Methode: Kollisionen)
I Spielfeld
I (Beispielcode in VBA)
V13 3 / 39
EinleitungMathematische Operationen
Grafik
13. VORLESUNG
MATLAB – Einfuhrung
V13 4 / 39
EinleitungMathematische Operationen
Grafik
Fragen, die in dieser Vorlesung diskutiert werden
Mathematische Operationen
I Wie benutzt man MATLAB als Taschenrechner?I Wie erstellt und manipuliert man Vektoren?
Grafik
I Welche Funktionen stehen zur grafischen Darstellung zurVerfugung?
V13 5 / 39
EinleitungMathematische Operationen
Grafik
MotivationProgrammstart
Wozu MATLAB?
Werkzeug in Wissenschaft und Technik
I numerische Mathematik
I Datenanalyse
I grafische Darstellung
I Datenerfassung
I . . .
V13 6 / 39
EinleitungMathematische Operationen
Grafik
MotivationProgrammstart
Wozu MATLAB? (2)
Verringerung des Programmieraufwandes
I Vielzahl von Funktionen vordefiniert
I effiziente und prazise numerische Algorithmen
I Benutzerprogramme sind kompakt
I weite Verbreitung
V13 7 / 39
EinleitungMathematische Operationen
Grafik
MotivationProgrammstart
Wozu nicht MATLAB?
MATLAB ist eine Interpretersprache
I wenn es auf extreme Effizienz ankommt:Kompilersprache bevorzugt (C, C++, FORTRAN,. . .)
V13 8 / 39
EinleitungMathematische Operationen
Grafik
MotivationProgrammstart
Geschichte
I entworfen in den 1970ern von C. Moler
I ursprunglich als Werkzeug in der Lehre (lineare Algebra)
I MATLAB = MATrix LABoratory
I seitdem mehrfach umgeschrieben und standig erweitert
V13 9 / 39
EinleitungMathematische Operationen
Grafik
MotivationProgrammstart
Umfang des Programmes
I integrierte Entwicklungsumgebung
I Bibliothek mathematischer Funktionenerweiterbar durch Dutzende von “Toolboxes”
I Programmiersprache
I Grafik
I Schnittstellen zu externen Programmen, Geraten
V13 10 / 39
EinleitungMathematische Operationen
Grafik
MotivationProgrammstart
Open Source Alternative
GNU OCTAVE
I akzeptiert weitgehend den Syntax von MATLAB
I (Homepage)
V13 11 / 39
EinleitungMathematische Operationen
Grafik
MotivationProgrammstart
Entwicklungsumgebung
I Oberflache: Kommandofenster, Variablenubersicht, . . .
I Editor/Debugger starten durch Klicken auf Dateiname
V13 12 / 39
EinleitungMathematische Operationen
Grafik
MotivationProgrammstart
Erste Schritte
I Interaktion meist uber Kommandozeile
I Eingabeaufforderung mit “>>” dargestellt
I HilfeI uber Kommandozeile: “>> help topic”
z.B “>> help general”
I uber Menu “Help”
I Demos: “>> help demo”
I weitere Ressourcen zu MATLAB: siehe Anhang
V13 13 / 39
EinleitungMathematische Operationen
Grafik
GrundlagenFelder
MATLAB als Taschenrechner
I Eintippen in Kommandozeile (gefolgt durch “Enter”):>> 2+3/4*5ans =
5.7500
I Hinzufugen eines Semikolons: keine Ausgabe>> 2+3/4*5;
⇒ Prioritat der Operatoren:
(),^,*/,+-
V13 14 / 39
EinleitungMathematische Operationen
Grafik
GrundlagenFelder
Variablen
I Variablen werden in der Regel nicht deklariert
I numerische Daten: intern als “double precision” behandelt
I Variablennamen: 1 Buchstabe, gefolgt vonBuchstaben/Zahlen/Underscore; max. Lange: 63
I Gross- & Kleinschreibung!
I legal: MeineVariable, gUter Name
I illegal: 1Variable, var-vec, &fach
V13 15 / 39
EinleitungMathematische Operationen
Grafik
GrundlagenFelder
Zahlenformate
Numerische Typen in MATLAB
Typ Beispiel
Ganzzahl -156reelle Zahl 0.0634
(wissenschaftliche Notation: 6.34e-2)komplexe Zahl -3.78+i*5.47 (i =
√−1)
Inf (Unendlich) Teilen durch 0NaN (”Not a Number”) 0/0 oder Inf - Inf
I Ausgabeformat wird durch format kontrolliert
I Bsp.:
>> x=3.94959399393>> x =
3.9496
>> format long;>> x=3.94959399393>> x =
3.949593993930000V13 16 / 39
EinleitungMathematische Operationen
Grafik
GrundlagenFelder
Konstanten
Vordefiniert in MATLAB
I pi, Kreiskonstante π
I eps, Prazision der Gleitkommaarithmetik
I i,j, imaginare Einheit√−1
I Vorsicht:alle Konstanten konnen vom Benutzer uberschrieben werden
V13 17 / 39
EinleitungMathematische Operationen
Grafik
GrundlagenFelder
Eingebaute Funktionen
I Trigonometrie: sin, cos, tan, ...
I Exponentiale: exp, log, sqrt, ...
I komplexe Zahlen: abs, imag, real, ...
I Rundung: round, mod, sign, ...
I Ubersicht uber die grundlegenden Funktionen:>> help elfun oder specfun oder elmat
V13 18 / 39
EinleitungMathematische Operationen
Grafik
GrundlagenFelder
Arbeiten mit aufgezeichneten Kommandos/Programmen
Verschiedene Optionen
1. Aufzeichnen der eingegebenen Kommandos einer Session:diary
2. Speichern des momentanen Zustandes (gesamter Speicher):save
3. Editieren/Aufrufen von eigenen Skripten:M-Files
V13 19 / 39
EinleitungMathematische Operationen
Grafik
GrundlagenFelder
Aufzeichnen mit diary
I diary(’dateiname’) startet Aufzeichnung aller Kommandosund deren Resultate in Datei
I Datei kann mit Texteditor bearbeitet werden
I diary on und diary off schalten Aufzeichnung ein/aus
V13 20 / 39
EinleitungMathematische Operationen
Grafik
GrundlagenFelder
Sichern des Arbeitsspeichers mit save
I save(’dateiname’) sichert die Werte aller momentanenVariablen in einer binaren Datei dateiname.mat
I Datei kann durch load(’dateiname’) geladen werden
I Anzeige der momentan aktiven Variablen & -dimensionen:>> whos
I mehr Information: >> help save und >> help load
V13 21 / 39
EinleitungMathematische Operationen
Grafik
GrundlagenFelder
Erzeugen von MATLAB-Scripts in Textfiles
M-Files
I Editieren in eingebautem Editor (oder beliebigem Texteditor)
I Kommentarzeilen starten mit %
I Speichern als: dateiname.m
I Laden in MATLAB durch Dateinamen (ohne “.m”):>> dateiname
V13 22 / 39
EinleitungMathematische Operationen
Grafik
GrundlagenFelder
Felder in MATLAB
Matrizen als grundlegende Elemente
I MATLAB arbeitet in der Regel mit Matrizen(2-dimensionalen Feldern)
I ein Skalar ist eine Matrix mit einem einzigen Element (1x1)
I ein Zeilenvektor ist eine Matrix mit einer Zeile (1xN)
I ein Spaltenvektor ist eine Matrix mit einer Spalte (Nx1)
I hoherdimensionale Felder sind moglich
Dimension eines Ausdruckes: size(ausdruck)
V13 23 / 39
EinleitungMathematische Operationen
Grafik
GrundlagenFelder
Vektoren
Zeilenvektoren
I Liste von Ausdrucken, durch Komma oder Leerzeichengetrennt, in eckigen Klammern.
Beispiel eines Zeilenvektors mit 3 Elementen:
>> vec = [1 3, sqrt(5)]
vec =
1.0000 3.0000 2.2361
>> size(vec)
ans =
1 3
>> length(vec)
ans =
3
V13 24 / 39
EinleitungMathematische Operationen
Grafik
GrundlagenFelder
Operationen mit Vektoren
Arithmetik
I Addition/Subtraktion von Vektoren gleicher Lange: +, -
I Multiplikation von Skalar und Vektor: *
Beispiel:
>> avec = [1 3 5]; bvec = [1 1 4];
avec-2*bvec =
-1 1 -3
I Operationen, die elementweise ausgefuhrt werden:
.* ./ .^
(Produkt, Division, Potenz)
Beispiel:
>> avec = [1 3 5]; bvec = [1 1 4];
avec.*bvec =
1 3 20V13 25 / 39
EinleitungMathematische Operationen
Grafik
GrundlagenFelder
Der Doppelpunkt-Operator
I ”a:b:c” ist Abkurzung fur:Vektor mit Elementen von a bis c, Schrittweite b
Beispiel:>> 1:2:10
ans = 1 3 5 7 9
>> 5:-1:3
ans = 5 4 3
I Initialisieren eines Vektors/ Auswahlen von Teilbereichen
Beispiel:>> vec=(1:2:10)
ans = 1 3 5 7 9
>> vec(2:4)
ans = 3 5 7
I weitere Information: ”>> help colon”
V13 26 / 39
EinleitungMathematische Operationen
Grafik
GrundlagenFelder
Spaltenvektoren
I wie Zeilenvektoren, aber Elemente durch Semikolon oderZeilenende getrennt.
Beispiel: Erzeugung eines Spaltenvektors mit 3 Elementen
>> svec = [1; 3; sqrt(5)]
svec =
1.0000
3.0000
2.2361
>> size(svec)
ans =
3 1
>> length(svec)
ans =
3
V13 27 / 39
EinleitungMathematische Operationen
Grafik
GrundlagenFelder
Transponieren von Vektoren
Der Hochkomma-Operator
I Umwandeln von Zeilen- in Spaltenvektoren (und umgekehrt):>>vektor’
Beispiel:
>> zvec= [1 3 5], svec = [1; 3; sqrt(5)]
zvec =
1 3 5
svec =
1.0000
3.0000
2.2361
>> zvec+2*svec’
ans =
3.0000 9.0000 9.4721
V13 28 / 39
EinleitungMathematische Operationen
GrafikEinfache Diagramme
Liniendiagramme
I plot(x,y) – Liniendiagramm mit Wertepaaren (x, y)
Beispiel:>> x=(0:100)/100;y=sin(2*pi*x);
>> plot(x,y);
erzeugt:
I Linientypen, Farbe, Strichstarke, etc.: ”>> help plot”
V13 29 / 39
EinleitungMathematische Operationen
GrafikEinfache Diagramme
Beschriftung von Diagrammen
I xlabel(’text’) erzeugt Beschriftung der horizontalen Achse
I analog: ylabel, title, legend
Beispiel:>> x=(0:100)/100;y=sin(2*pi*x);
>> plot(x,y);xlabel(’x-Achse’);ylabel(’y-Achse’);
>> title(’Linienplot’);legend(’sin(2*pi*x)’);
erzeugt:
V13 30 / 39
EinleitungMathematische Operationen
GrafikEinfache Diagramme
Mehrfache Liniendiagramme
I mehrere Wertepaare in einem Kommando:plot(x1,y1,x2,y2,...)
I mehrere Kommandos, ”Festhalten” durch hold:plot(x1,y1);hold on;plot(x2,y2);
Beispiel:>> x=(0:100)/100;y1=sin(2*pi*x);y2=cos(2*pi*x);
>> plot(x,y1,x,y2);legend(’sin(2*pi*x)’,’cos(2*pi*x)’);
V13 31 / 39
EinleitungMathematische Operationen
GrafikEinfache Diagramme
Verandern des Achsenbereiches
I axis([x1 x2 y1 y2]) setzt Ober- und UntergrenzenBeispiel: >> axis([0 0.5 0 1]);
V13 32 / 39
EinleitungMathematische Operationen
GrafikEinfache Diagramme
Weitere Eigenschaften von Diagrammen
Benutzen der ”Handles” von Grafikobjekten
I ein ”Handle” ist die Identifikation eines GrafikobjektesBsp.: h=plot(x,y), Handle gespeichert in Variable h
I dient der Referenzierung (ahnlich Zeiger auf Objektdaten)
I Auflisten der Eigenschaften: get(h)
I Verandern von Eigenschaften: set(h,’Eigenschaft’,Wert)
Beispiel: Linienfarbe auf ’rot’, Linientyp auf ’gestrichelt’ setzenset(h,’Color’,’r’,’LineStyle’,’--’)
V13 33 / 39
EinleitungMathematische Operationen
GrafikEinfache Diagramme
Export von Diagrammen
Gangige Grafikformate
I print -d format dateinameerzeugt Grafikdatei namens dateiname im Format format
I typische Formate: Postscript (eps), JPEG (jpeg),TIFF (tiff), PNG (png), . . .
Ausgabe als MATLAB Diagrammobjekt
I hgsave(handle,’dateiname’)erzeugt MATLAB-spezifische Grafikdatei namens dateiname
I Laden der Gafik durch hgload(’dateiname’)
I Vorteil: Diagramm kann weiterbearbeitet werden (3D Grafik!)
V13 34 / 39
EinleitungMathematische Operationen
GrafikEinfache Diagramme
Beispiele
Zufallsvariablen
I Erzeugung von Daten mit der rand Funktion
I Analyse, grafische Darstellung der Daten
Bewegung eines Doppelpendels
I
I (MATLAB Code)
V13 35 / 39
EinleitungMathematische Operationen
Grafik
AufgabenAnhangLiteratur
Zusammenfassung
MATLAB
I Mathematische Operationen→ direkt anwendbar auf Vektoren
I weitreichende Grafikmoglichkeiten
V13 36 / 39
EinleitungMathematische Operationen
Grafik
AufgabenAnhangLiteratur
Aufgaben zum Nachdenken/Ausprobieren
I Erklaren Sie die Ausgabe erzeugt durch folgende Anweisungen:
t=0.1
n=1:10
e=n/10-n*t
I Erzeugen Sie einen Vektor mit 10 gleichmassig verteilten Werten im Intervall[0, 1] (einschließlich der Randwerte).
I Plotten Sie die Exponentialfunktion ex an den oben bestimmten Stutzstellen imIntervall [0, 1].
V13 37 / 39
EinleitungMathematische Operationen
Grafik
AufgabenAnhangLiteratur
Anhang
V13 38 / 39
EinleitungMathematische Operationen
Grafik
AufgabenAnhangLiteratur
Weiterfuhrendes Material zu MATLAB
I Information auf der Seite des Herstellers Mathworks
I Skripte in deutscher Sprache:S1, S2
I Englischsprachige Skripte:Moler, Dundee
I Deutschsprachige Bucher:B1, B2, B3, B4
V13 39 / 39