maximize

Ingenieurmathematik (Master)

Veranstaltungsnummern 734001003 (Vorlesung) und 734001004 (Übungen), Modulbeschreibung M01

Vorlesung: Benedikt Wirth, Übungen: Orestis Vantzos

Termine

Vorlesung Dienstag,  8:15 - 9:45 UhrHörsaal XVII, Nußallee 17
  Mittwoch, 10:05 - 11:35 UhrHörsaal XVII, Nußallee 17
ÜbungMittwoch, 12:00 - 14:00 Uhr (14tägig)CIP-Pool, Nußallee 17

Voraussichtliche Übungstermine

13.04.2011
20.04.2011
04.05.2011
24.05.2011 (13:30)
08.06.2011
22.06.2011
06.07.2011

Skript

Skript (bis auf letztes Thema)

Handschriftliche Notizen zu Eikonalgleichung und Viskositätslösungen


13.04.2010, Programmieraufgabe I: Eindimensionale Datenfilterung

Implementieren Sie das in der Vorlesung beschriebene Finite-Differenzen-Verfahren zur Datenglättung in MATLAB. Experimentieren Sie mit dem Parameter β.

Wenn Sie die Werte aus der Datei filter1d.csv mittels

[x,f] = textread('filter1d.csv','%f,%f');
verwenden (die Werte sind hier bereits auf einem äquidistanten Gitter gegeben) und β=10-6 wählen, sollten Sie den Graphen filter1d.pdf erhalten.

Beispiellösung: filter1d.m.

20.04.2010, Programmieraufgabe II: Bildglättung

Implementieren Sie das in der Vorlesung beschriebene Finite-Differenzen-Verfahren zur 2D-Bildglättung in MATLAB. Überlegen Sie sich hierzu eine Nummerierung der Unbekannten und stellen Sie die Matrizen für den Differentialoperator auf.

Als Eingabe verwenden Sie das Bild filter2d.pgm mittels

f = imread('filter2d.pgm');
Wenn Sie &beta=10-4 wählen, sollten Sie das Bild filter2d_result.pgm erhalten.

Beispiellösung: filter2d.m.

04.05.2010, Programmieraufgabe III: Bildglättung 2

Implementieren Sie das TV-L2-Verfahren und wenden Sie dies auf das Bild aus Aufgabe II sowie auf das Testbild an. Experimentieren Sie mit den Parametern. Beachten Sie auch die Hilfestellungen im Skript (Schema 1.29, Bemerkung 1.30, Bemerkung 1.31).

Beachten Sie auch die Hinweise zu dieser Aufgabe, wobei Sie den letzten Punkt (den Vergleich der Ergebnisse für die beiden Energien) vorerst weglassen können.
Da der Algorithmus in MATLAB doch recht langsam ist, hier noch das Luftbild und das Testbild in kleinerer Auflösung.

Beispiele:
TV-L2 (kleines Luftbild), β=0.25, τ=0.2, Abbruch bei <10-4, Dauer 10s, 2090 Iterationen.
TV-L2 (großes Luftbild), β=0.35, τ=0.2, Abbruch bei <10-3, Dauer 58s, 661 Iterationen.

Beispiellösung: bvl2.m rof.m.

Zusatzaufgabe (Finite Elemente)

Berechnen Sie wie in der Vorlesung die Masse- und die Steifigkeitsmatrix für Vh = span{ sin(kπx) | k=1,2,3 } auf dem Intervall [0,1].

24.05.2010, Programmieraufgabe IV: Finite Elemente

Implemetieren Sie das in der Vorlesung besprochene 2D Finite-Elemente-Verfahren. Benutzen Sie zur Assemblierung das Verfahren mittels Referenzdreieck aus der Vorlesung (anstelle des im Skript abgedruckten Verfahrens). Wenden Sie es auf die Beispieldaten an, die auf einem Dreiecksgitter gegeben sind. Zum Laden der Daten verwenden und kommentieren Sie den Beispielcode.

Beachten Sie auch den Hinweis zur Assemblierung von Matrizen im Skript (Seite 52).

Beispiellösung: FE.m.

01.06.2010, Programmieraufgabe V: Elastizität (Steifigkeits- und Massematrix)

Leiten Sie (genau wie in der Vorlesung für das skalare Problem) die Steifigkeitsmatrix zu

her. Verwenden Sie als Basis für den Finite-Elemente-Raum

wobei

Tipp: Teilen sie die Matrix in vier Blöcke auf,
,
wobei (Mkl)ij der Eintrag der Matrix für die Basisfunktionen ψik und ψjl ist. Danach implementieren Sie die Steifigkeitsmatrix in Matlab.

22.06.2010, Programmieraufgabe VI: Elastizität

Implementieren Sie zusätzlich die Massematrix und schreiben Sie ein Programm, das für eine (in Form einer Triangulierung) vorgegebene Geometrie zu gegebenen Randwerten die Verschiebung berechnet und visualisiert.

Zu den Randwerten:

Testen Sie den Löser an folgenden Beispielen:
  1. Einem Block, an dem an beiden Seiten gezogen wird. Vergleiche Sie das Ergebnis mit der analytischen Lösung aus der Vorlesung.
    Dateien: Gitter, Dirichlet-Randwerte, Neumann-Randwerte.
    Bemerkung: Das Ergebnis aus der Vorlesung erhalten Sie nur für λ=0 und diesen Dirichlet-Randwerten. Können Sie erklären warum?
  2. Einem Bauteil mit und ohne Querverstrebung. Untersuchen Sie verschiedene Werte für μ und λ und vergleichen Sie die Verschiebungen.
    Dateien ohne Querverstrebung: Gitter, Dirichlet-Randwerte, Neumann-Randwerte.
    Dateien mit Querverstrebung: Gitter, Dirichlet-Randwerte, Neumann-Randwerte.
    Bemerkung: Versuchen Sie z.B. λ=1600 und μ=270.

In der Beispiellösung sind λ und μ zwar auf den einzelnen Dreiecken konstant, aber sie können von Dreieck zu Dreieck verschieden sein.

Zum Testen Ihrer Lösung können Sie dieses Programm einmal mit der Beispiellösung und einmal mit Ihrer Lösung laufen lassen.

06.07.2010, Programmieraufgabe VII: Elastizität, Dijkstra

Teil 1 (Elastizität, optional)

Ändern Sie Ihre Implementierung der Steifigkeitsmatrix so ab, dass auf jedem Element andere elastische Koeffizienten μ und λ benutzt werden können (d. h. inhomogene Koeffizienten). Erweitern Sie den Löser auf nicht-konstante Werte für die Volumenkraft f sowie für die Parameter λ und μ. Wenden Sie den Löser auf das Beispiel eines Hauses (hohe Steifigkeit, große Masse) auf einem Hügel (geringere Steifigkeit, niedrigere Masse bzw. Dichte) an. Die Volumenkraft f ist in der Datei name.f für jeden Knoten aufgelistet (Zeile=Nummer des Punktes). Die Parameter λ und μ sind in der Datei name.lm für jedes Dreieck gelistet (Zeile = Nummer des Dreiecks, erster Wert λ, zweiter Wert μ).
Dateien: Gitter, Dirichlet-Randwerte, Volumenkraft, Parameter λ und μ.

Teil 2 (Dijkstra)

Implementieren Sie den Dijkstra-Algorithmus. Gehen Sie in folgenden Schritten vor: