Übungsblatt 3

Werbung
MSE
SS17
Übungsblatt 3
Aufgabe 9 (Schachbrettordnung)
In dieser Aufgabe werden wir den Einfluss der Nummerierung der Punkte in der Diskretisierung des Gebiets analysieren. Betrachten Sie die Laplace-Gleichung auf dem Einheitsquadrat Ω = (0, 1)2 mit homogenen Dirichlet-Randbedingungen
(
−∆u = 1
in Ω,
(1)
u(x, y) = 0 auf ∂Ω.
Für die Diskretisierung des Gebietes verwenden wir einen uniformen Gitter mit Gitterweite h = 1/(N + 1). Zur Approximation des Laplace Operators benutzen wir die das
5-Punkte-Stern Verfahren (vgl. Aufgabe 10)
∆T (xi , yj ) ≈
T (xi+1 , yj ) + T (xi , yj+1 ) − 4T (xi , yj ) + T (xi−1 , yj ) + T (xi , yj−1 )
.
h2
Man erhält ein lineares Gleichungsystem mit N 2 Unbekannten. Die entsprechende Matrix
2
2
A ∈ RN ×N ist dünn besetzt und ihre Struktur hängt von der Nummerierung der Unbekannten ab. Anstatt der lexikographischen Anordnung die wir bis jetzt benutzt haben,
betrachten Sie die sogenannte Schachbrettordnung, siehe Bild unten.
Abbildung 1: Schachbrett-Anordnung für ein 5 × 5 Gitter.
Diese Nummerierung ist wichtig, denn jeder Nebenpunkt von einem roten Punkt ist ein
blauer Punkt und umgekehrt und das führt zu einer Matrix mit folgender Struktur:
1
frot
urot
D H
=
fblau
ublau
h2 H T D
1
Besprechung: 30.05.2017 und 13.06.2017
wobei D = 4I eine Diagonalmatrix der Dimension N 2 /2 ist und H eine Band-Struktur
der gleichen Dimension besitzt und mit 4 nicht-null Diagonalen.
a) Erzeugen Sie in Matlab mit Hilfe von dem Befehl A = gallery(’poisson’,N) die
2
2
klassische Poisson-Matrix A ∈ RN ×N . Finden Sie einen Index-Vektor idxschach,
der die Zahlen 1 bis N 2 in einer geeigneten Reihenfolge enthält, so dass
C = A(idxschach, idxschach)
und die Matrix C der Diskretisierung von (1) mit Schachbrett-Nummerierung entspricht. Überprüfen Sie das Ergebnis für N = 5 anhand von Bild 1 mittels des
Befehls full.
b) Erstellen Sie mittels randperm einen Vektor idxrand der Länge N 2 , der die Zahlen
von 1 bis N 2 in einer zufälligen Reihenfolge enthält; damit entspricht
D = A(idxrand, idxrand)
einer zufälligen Nummerierung der Punkte. Geben Sie A und D für N = 5 mittels
full aus.
c) Berechnen Sie mit Hilfe des Matlab-Befehls lu die LU -Zerlegung der Matrizen
A = LA UA , C = LC UC und D = LD UD für N = 21. Plotten Sie mit spy die
Besetzungsstruktur der Originalmatrizen und der jeweiligen unteren Dreiecksmatrizen.
Hinweis: Verwenden Sie für diese Matrizen kein full mehr!
d) Ermitteln Sie für jedes N = 3 + 4k, k = 0, . . . , 15, mit Hilfe von nnz die Anzahl der
Nicht-Null-Elemente von LA , LC und LD . Erstellen Sie einen Plot, der die Anzahl
der Nicht-Null-Elemente jeweils in Abhängigkeit von N zeigt.
Aufgabe 10 (Finite Differenzen Approximation von elliptischen Operatoren)
Auf das Gebiet Ω = (0, 1)2 seien die elliptischen partiellen Differentialgleichungen:
a) 5uxx + 2uxy + 5uyy = 0.4,
b) −3uxx − 2uyy + 21 u = 0,
c) uxx + 3uyy − 2ux = 1
mit homogenen Dirichlet-Randbedingungen gegeben. Sei nun eine homogene Gitterweite
h = 1/(N + 1) gegeben. Diskretisieren Sie jede PDGL durch geeignete Finite-Differenzen
2. Ordnung. Stellen Sie für jede PDGL den entsprechenden Stern und die dazugehörige
Steifigkeitsmatrix auf.
Aufgabe 11 (1D Finite Differenzen)
Zur Diskretisierung der partiellen Differenzialgleichung −uxx = f für u : [0, 1] → R
verwenden wir für die äquidistanten Gitterpunkte xi = ih für i = 0, ..., n mit konstanter
Gitterweite h den Differenzenansatz
Lh u(xi ) =
2
1
(ui+2 − 16ui+1 + 30ui − 16ui−1 + ui−2 ) ,
12h2
Besprechung: 30.05.2017 und 13.06.2017
wobei ui+a := u(xi+a ) = u(xi + ah) für a = 0, ±1, ±2.
a) Sei u ∈ C 6 ([0, 1]). Zeigen Sie für die Punkte xi mit i = 2, ..., n − 2 die Gültigkeit von
Lh u(xi ) = −uxx (xi ) + O(h4 ),
(Hinweis. Verwenden Sie dazu die Taylorentwicklung.)
Welche Probleme ergeben sich bei Verwendung dieser Diskretisierung für ein Randwertproblem bei der numerischen Umsetzung?
b) Betrachten wir jetzt das homogene Dirichlet-Problem, d.h.
(
−uxx = f
auf Ω = [0, 1],
u(0) = u(1) = 0.
Für den Punkt x1 benutzen wir die folgende approximation
1
1
2
(32u1 − 16u2 ) = h f1 + (f0 + f1 + f2 ) ,
12
9
Zeigen Sie, dass diese Modifikation zur Approximation der randnahen Punkt u(x1 )
ebenfalls Ordnung 4 besitzt.
c) Betrachten Sie das Problem aus b). Wir diskretisieren es an den Punkten xi = ih
mit h = 16 und i = 0, ..., 6 mit dem in Teil a) betrachteten Verfahren. Wie lautet
das lineare Gleichungsystem Auh = b mit A ∈ R5×5 , uh = (u1 , ..., u5 ) und b ∈ R5 ?
Modellierung
Aufgabe 12 (2D-Laplace Gleichung: Matlab)
Die Bedeutung der Laplace-Gleichung umfasst viele Teilbereiche der Physik. Zum Beispiel
kann sie ein zeitlich konstantes Temperaturgefälle beschreiben, d.h. die Laplace-Gleichung
lässt sich auch aus der Wärmeleitungsgleichung im Falle einer stationären Temperatur
erhalten. Sind keine Quellen oder Senken vorhanden, findet also kein weiterer Wärmeaustausch - beispielsweise mit der Umgebung - als der betrachtete statt, so wird die
Wärmeleitungsgleichung zur Laplace-Gleichung.
Um die Lösung der Laplace-Gleichung zu visualisieren, betrachten wir die Verteilung
der Temperatur auf einer 2-dimensionalen Platte. Als Gebiet wählen wir das Rechteck
Ω = (0, 2) × (0, 1). Betrachte die Laplace-Gleichung

in Ω,

 ∆T = 0
∂n T = TN auf ∂ΩN ,
(2)

 T =T
D auf ∂Ω \ ∂ΩN ,
3
Besprechung: 30.05.2017 und 13.06.2017
wobei ∂ΩN = {(x, y) ∈ ∂Ω : x = 2}. Die Neumann- und Dirichlet-Randbedingungen TN
und TD sind durch die Funktionen
TN (x, y) = −1
(
y(1 − y), if x = 0,
TD (x, y) =
0 sonst
definiert. Das bedeutet, die linke Seite des Gebietes ist eine feste Wärmequelle, während
die rechte Seite des Gebietes einen konstanten Wärmefluß darstellt.
Das Gebiet Ω wird durch ein nicht-uniformes Gitter Ωhx ,hy ersetzt, wobei hx und hy die
Gitterweiten in x-Richtung bzw. in y-Richtung sind.
a) Implementieren Sie in Matlab das 5-Punkte-Stern Verfahren zum Lösen der PDGL
(2), d.h. verwenden Sie den Differenzenquotient
∆T (xi , yj ) ≈
T (xi+1 , yj ) − 2T (xi , yj ) + T (xi−1 , yj ) T (xi , yj+1 ) − 2T (xi , yj ) + T (xi , yj−1 )
+
.
h2x
h2y
Wegen der Neumann-Randbedingungen sind die Werte der Funktion T an den Randpunkten (2, yj ) für alle yj auch unbekannt. Zur Approximation der Lösung an diesen
Randpunkten verwenden Sie den Rückwärtsdifferenzenquotient
∂n T (xi , yj ) ≈
T (xi , yj ) − T (xi−1 , yj )
.
hx
Lösen Sie das Problem (2) auf einem nicht-uniformen Gitter mit (2n + 1)-Punkten
in der x-Richtung und (2m + 1)-Punkten in der y-Richtung (einschließlich der Randknoten), wobei n 6= m.
b) Mittels des MATLAB-Befehls spy(A) zeigen Sie die Struktur der Matrix A an, die
aus Teil a) kommt. Was beobachten Sie? Welche Eigenschaft verliert diese Matrix
im Vergleich zu der Laplace-Matrix, die aus das Problem mit nur Dirichlet-Daten
kommt (siehe Seite 67 des Skriptes)?
c) Betrachten Sie nun einen zusätzlichen advektiven Term in der Gleichung (2):
α
· ∇T = 0.
∆T +
β
Modifizieren Sie Ihren Code aus Teil a), indem Sie den neuen Term mittels zentrierten Finiten-Differenzen berücksichtigen. Testen Sie Ihre Lösung für verschiedene
Werte von α und β, wie z.B.
12
α
1
α
.
=
oder
=
1
β
12
β
4
Besprechung: 30.05.2017 und 13.06.2017
Herunterladen