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