informationsverarbeitung im bauwesen - ... fileeinleitung mathematische operationen gra k...

39
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

Upload: nguyendang

Post on 09-Aug-2019

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Informationsverarbeitung im Bauwesen - ... fileEinleitung Mathematische Operationen Gra k Informationsverarbeitung im Bauwesen Markus Uhlmann Institut fur Hydromechanik WS 2009/2010

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

Page 2: Informationsverarbeitung im Bauwesen - ... fileEinleitung Mathematische Operationen Gra k Informationsverarbeitung im Bauwesen Markus Uhlmann Institut fur Hydromechanik WS 2009/2010

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

Page 3: Informationsverarbeitung im Bauwesen - ... fileEinleitung Mathematische Operationen Gra k Informationsverarbeitung im Bauwesen Markus Uhlmann Institut fur Hydromechanik WS 2009/2010

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

Page 4: Informationsverarbeitung im Bauwesen - ... fileEinleitung Mathematische Operationen Gra k Informationsverarbeitung im Bauwesen Markus Uhlmann Institut fur Hydromechanik WS 2009/2010

EinleitungMathematische Operationen

Grafik

13. VORLESUNG

MATLAB – Einfuhrung

V13 4 / 39

Page 5: Informationsverarbeitung im Bauwesen - ... fileEinleitung Mathematische Operationen Gra k Informationsverarbeitung im Bauwesen Markus Uhlmann Institut fur Hydromechanik WS 2009/2010

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

Page 6: Informationsverarbeitung im Bauwesen - ... fileEinleitung Mathematische Operationen Gra k Informationsverarbeitung im Bauwesen Markus Uhlmann Institut fur Hydromechanik WS 2009/2010

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

Page 7: Informationsverarbeitung im Bauwesen - ... fileEinleitung Mathematische Operationen Gra k Informationsverarbeitung im Bauwesen Markus Uhlmann Institut fur Hydromechanik WS 2009/2010

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

Page 8: Informationsverarbeitung im Bauwesen - ... fileEinleitung Mathematische Operationen Gra k Informationsverarbeitung im Bauwesen Markus Uhlmann Institut fur Hydromechanik WS 2009/2010

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

Page 9: Informationsverarbeitung im Bauwesen - ... fileEinleitung Mathematische Operationen Gra k Informationsverarbeitung im Bauwesen Markus Uhlmann Institut fur Hydromechanik WS 2009/2010

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

Page 10: Informationsverarbeitung im Bauwesen - ... fileEinleitung Mathematische Operationen Gra k Informationsverarbeitung im Bauwesen Markus Uhlmann Institut fur Hydromechanik WS 2009/2010

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

Page 11: Informationsverarbeitung im Bauwesen - ... fileEinleitung Mathematische Operationen Gra k Informationsverarbeitung im Bauwesen Markus Uhlmann Institut fur Hydromechanik WS 2009/2010

EinleitungMathematische Operationen

Grafik

MotivationProgrammstart

Open Source Alternative

GNU OCTAVE

I akzeptiert weitgehend den Syntax von MATLAB

I (Homepage)

V13 11 / 39

Page 12: Informationsverarbeitung im Bauwesen - ... fileEinleitung Mathematische Operationen Gra k Informationsverarbeitung im Bauwesen Markus Uhlmann Institut fur Hydromechanik WS 2009/2010

EinleitungMathematische Operationen

Grafik

MotivationProgrammstart

Entwicklungsumgebung

I Oberflache: Kommandofenster, Variablenubersicht, . . .

I Editor/Debugger starten durch Klicken auf Dateiname

V13 12 / 39

Page 13: Informationsverarbeitung im Bauwesen - ... fileEinleitung Mathematische Operationen Gra k Informationsverarbeitung im Bauwesen Markus Uhlmann Institut fur Hydromechanik WS 2009/2010

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

Page 14: Informationsverarbeitung im Bauwesen - ... fileEinleitung Mathematische Operationen Gra k Informationsverarbeitung im Bauwesen Markus Uhlmann Institut fur Hydromechanik WS 2009/2010

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

Page 15: Informationsverarbeitung im Bauwesen - ... fileEinleitung Mathematische Operationen Gra k Informationsverarbeitung im Bauwesen Markus Uhlmann Institut fur Hydromechanik WS 2009/2010

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

Page 16: Informationsverarbeitung im Bauwesen - ... fileEinleitung Mathematische Operationen Gra k Informationsverarbeitung im Bauwesen Markus Uhlmann Institut fur Hydromechanik WS 2009/2010

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

Page 17: Informationsverarbeitung im Bauwesen - ... fileEinleitung Mathematische Operationen Gra k Informationsverarbeitung im Bauwesen Markus Uhlmann Institut fur Hydromechanik WS 2009/2010

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

Page 18: Informationsverarbeitung im Bauwesen - ... fileEinleitung Mathematische Operationen Gra k Informationsverarbeitung im Bauwesen Markus Uhlmann Institut fur Hydromechanik WS 2009/2010

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

Page 19: Informationsverarbeitung im Bauwesen - ... fileEinleitung Mathematische Operationen Gra k Informationsverarbeitung im Bauwesen Markus Uhlmann Institut fur Hydromechanik WS 2009/2010

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

Page 20: Informationsverarbeitung im Bauwesen - ... fileEinleitung Mathematische Operationen Gra k Informationsverarbeitung im Bauwesen Markus Uhlmann Institut fur Hydromechanik WS 2009/2010

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

Page 21: Informationsverarbeitung im Bauwesen - ... fileEinleitung Mathematische Operationen Gra k Informationsverarbeitung im Bauwesen Markus Uhlmann Institut fur Hydromechanik WS 2009/2010

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

Page 22: Informationsverarbeitung im Bauwesen - ... fileEinleitung Mathematische Operationen Gra k Informationsverarbeitung im Bauwesen Markus Uhlmann Institut fur Hydromechanik WS 2009/2010

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

Page 23: Informationsverarbeitung im Bauwesen - ... fileEinleitung Mathematische Operationen Gra k Informationsverarbeitung im Bauwesen Markus Uhlmann Institut fur Hydromechanik WS 2009/2010

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

Page 24: Informationsverarbeitung im Bauwesen - ... fileEinleitung Mathematische Operationen Gra k Informationsverarbeitung im Bauwesen Markus Uhlmann Institut fur Hydromechanik WS 2009/2010

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

Page 25: Informationsverarbeitung im Bauwesen - ... fileEinleitung Mathematische Operationen Gra k Informationsverarbeitung im Bauwesen Markus Uhlmann Institut fur Hydromechanik WS 2009/2010

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

Page 26: Informationsverarbeitung im Bauwesen - ... fileEinleitung Mathematische Operationen Gra k Informationsverarbeitung im Bauwesen Markus Uhlmann Institut fur Hydromechanik WS 2009/2010

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

Page 27: Informationsverarbeitung im Bauwesen - ... fileEinleitung Mathematische Operationen Gra k Informationsverarbeitung im Bauwesen Markus Uhlmann Institut fur Hydromechanik WS 2009/2010

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

Page 28: Informationsverarbeitung im Bauwesen - ... fileEinleitung Mathematische Operationen Gra k Informationsverarbeitung im Bauwesen Markus Uhlmann Institut fur Hydromechanik WS 2009/2010

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

Page 29: Informationsverarbeitung im Bauwesen - ... fileEinleitung Mathematische Operationen Gra k Informationsverarbeitung im Bauwesen Markus Uhlmann Institut fur Hydromechanik WS 2009/2010

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

Page 30: Informationsverarbeitung im Bauwesen - ... fileEinleitung Mathematische Operationen Gra k Informationsverarbeitung im Bauwesen Markus Uhlmann Institut fur Hydromechanik WS 2009/2010

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

Page 31: Informationsverarbeitung im Bauwesen - ... fileEinleitung Mathematische Operationen Gra k Informationsverarbeitung im Bauwesen Markus Uhlmann Institut fur Hydromechanik WS 2009/2010

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

Page 32: Informationsverarbeitung im Bauwesen - ... fileEinleitung Mathematische Operationen Gra k Informationsverarbeitung im Bauwesen Markus Uhlmann Institut fur Hydromechanik WS 2009/2010

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

Page 33: Informationsverarbeitung im Bauwesen - ... fileEinleitung Mathematische Operationen Gra k Informationsverarbeitung im Bauwesen Markus Uhlmann Institut fur Hydromechanik WS 2009/2010

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

Page 34: Informationsverarbeitung im Bauwesen - ... fileEinleitung Mathematische Operationen Gra k Informationsverarbeitung im Bauwesen Markus Uhlmann Institut fur Hydromechanik WS 2009/2010

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

Page 35: Informationsverarbeitung im Bauwesen - ... fileEinleitung Mathematische Operationen Gra k Informationsverarbeitung im Bauwesen Markus Uhlmann Institut fur Hydromechanik WS 2009/2010

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

Page 36: Informationsverarbeitung im Bauwesen - ... fileEinleitung Mathematische Operationen Gra k Informationsverarbeitung im Bauwesen Markus Uhlmann Institut fur Hydromechanik WS 2009/2010

EinleitungMathematische Operationen

Grafik

AufgabenAnhangLiteratur

Zusammenfassung

MATLAB

I Mathematische Operationen→ direkt anwendbar auf Vektoren

I weitreichende Grafikmoglichkeiten

V13 36 / 39

Page 37: Informationsverarbeitung im Bauwesen - ... fileEinleitung Mathematische Operationen Gra k Informationsverarbeitung im Bauwesen Markus Uhlmann Institut fur Hydromechanik WS 2009/2010

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

Page 38: Informationsverarbeitung im Bauwesen - ... fileEinleitung Mathematische Operationen Gra k Informationsverarbeitung im Bauwesen Markus Uhlmann Institut fur Hydromechanik WS 2009/2010

EinleitungMathematische Operationen

Grafik

AufgabenAnhangLiteratur

Anhang

V13 38 / 39