1 / 46

Nummerisches Lösen partieller Differentialgleichungen

Nummerisches Lösen partieller Differentialgleichungen. Im Rahmen des Seminars „Verteilte und parallele Systeme“. Nial Moore. Lehrstuhl für praktische Informatik in der Wirtschaft Prof. Dr. Herbert Kuchen. Gliederung. Einleitung Differentialgleichungen Partielle Differentialgleichungen

wei
Download Presentation

Nummerisches Lösen partieller Differentialgleichungen

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Nummerisches Lösen partieller Differentialgleichungen Im Rahmen des Seminars „Verteilte und parallele Systeme“ Nial Moore Lehrstuhl für praktische Informatik in der Wirtschaft Prof. Dr. Herbert Kuchen

  2. Gliederung • Einleitung • Differentialgleichungen • Partielle Differentialgleichungen • Diskretisierung • Numerische Lösungsverfahren • Direkte Verfahren • Gauß-Elimination • Iterative Verfahren • Jacobi-Verfahren • Gauß-Seidel-Verfahren • Zusammenfassung

  3. Gliederung • Einleitung • Differentialgleichungen • Partielle Differentialgleichungen • Diskretisierung • Numerische Lösungsverfahren • Direkte Verfahren • Gauß-Elimination • Iterative Verfahren • Jacobi-Verfahren • Gauß-Seidel-Verfahren • Zusammenfassung

  4. Einleitung • Viele Problemstellungen in FuE lassen mit Hilfe von Simulationen lösen • Beschreibung realer Systeme durch mathematische Modelle • Mathematischen Modelle ermöglichen Simulationen von Zuständen / Ergebnissen • Beispiele: • Klimasimulation • Crashtest Simulation • 3D-CAD Modellierungen

  5. Einleitung • Partielle Differentialgleichungen zur werden oft zur Modellierung herangezogen • Modelle sind recht komplex • Benötigen Unterstützung durch Rechner

  6. Gliederung • Einleitung • Differentialgleichungen • Partielle Differentialgleichungen • Diskretisierung • Numerische Lösungsverfahren • Direkte Verfahren • Gauß-Elimination • Iterative Verfahren • Jacobi-Verfahren • Gauß-Seidel-Verfahren • Zusammenfassung

  7. Partielle Differentialgleichungen • Differentialgleichungen: • Beschreiben Verhalten realer Systeme • Gesucht: Funktion y, die die Funktion für x = (x1,…,xn) , wobei G Rn erfüllt, dabei sei Dky die k-te Ableitung der Funktion y • y ist stetig und differenzierbar Bsp.: • Beschreibung einer Flugkurve durch eine Parabel

  8. Partielle Differentialgleichungen • Partielle Differentialgleichungen • Mehrdimensional • Von mehreren Variablen abhängig • Komplexe Berechnungen erforderlich • Unterstützung durch Rechner wünschenswert Bsp.: • Modellierung eines Trampolintuchs beim Einsprung • Rechnerunterstützung • Nur bei endlichen Problemen möglich •  Deskritisierung nötig

  9. Gliederung • Einleitung • Differentialgleichungen • Partielle Differentialgleichungen • Diskretisierung • Numerische Lösungsverfahren • Direkte Verfahren • Gauß-Elimination • Iterative Verfahren • Jacobi-Verfahren • Gauß-Seidel-Verfahren • Zusammenfassung

  10. Diskretisierung • Bsp.: Temperaturverlauf in einem Metallstab stetiges Modell: diskretes Modell: • Einteilung in endlich viele Intervalle • Informationsverlust entsteht • Anzahl der Intervalle bestimmt Höhe des Informationsverlusts • Intervallanzahl regelt Komplexität der entstehenden linearen Gleichungssysteme (LGS)

  11. Diskretisierung • Diskretisierung: • Temperaturen T1 und T2 bekannt • Gesucht sind die Temperaturen x1,…,x4 • Temperaturen x1,…,x4 ergeben sich aus dem Durchschnitt der umgebenden Temperaturen • Entstehendes LGS: +x1 - 0,5x2 = 0,5T1 - 0,5x1 + x2 - 0,5x3 = 0 - 0,5x2 + x3 - 0,5x4 = 0 - 0,5x3 + x4 = 0,5T2 • - Matrixschreibweise Ax = b:

  12. Gliederung • Einleitung • Differentialgleichungen • Partielle Differentialgleichungen • Diskretisierung • Numerische Lösungsverfahren • Direkte Verfahren • Gauß-Elimination • Iterative Verfahren • Jacobi-Verfahren • Gauß-Seidel-Verfahren • Zusammenfassung

  13. Numerische Lösungsverfahren • Bezeichnet Verfahren, die Lösungen ‚zahlenmäßig‘ herbeiführen • Durch Algorithmen automatisierbar Zwei Verfahrenstypen: • Direkte Verfahren • Exakte Lösungen • Z.B. Gauß-Elimination, zyklische Reduktion • Iterative Verfahren • Erzeugen Folgen von Vektoren • Näherung der exakten Lösung • Z.B. Jacobi-Verfahren, Gauß-Seidel-Verfahren

  14. Gliederung • Einleitung • Differentialgleichungen • Partielle Differentialgleichungen • Diskretisierung • Numerische Lösungsverfahren • Direkte Verfahren • Gauß-Elimination • Iterative Verfahren • Jacobi-Verfahren • Gauß-Seidel-Verfahren • Zusammenfassung

  15. Gauß-Elimination Vorgehen ausgehend von dem LGS der Form Ax = b: • Schritt 1: LGS transformieren, so dass Matrix A die Form einer oberen Dreieckmatrix annimmt Bsp.:

  16. Gauß-Elimination • Transformation benötigt n-1 Schritte • In jedem Schritt k: und aus und errechnen: • Eliminationsfaktoren l berechnen: • Matrix A(k+1)und Vektor b(k+1)neu berechnen:

  17. Gauß-Elimination • Schritt 2: Durch Rückwärtseinsetzen LGS lösen Bsp.: Rechenvorschrift:

  18. Gauß-Elimination • Problem: • Sollte ein Element der Hauptdiagonalen der Matrix A Null sein bricht der Algorithmus ab (Division durch Null ) • Partielle Pivotisierung • Erfordert mehr Kommunikation/Rechenaufwand

  19. Gauß-Elimination • Sequentielle Implementierung: • 3 ineinander geschachtelte Schleifen Θ(n3) • Parallele Implementierung: • Erfordert wesentlich mehr Kommunikation • Geringer ‚speed-up‘

  20. Gauß-Elimination • Vorteile: • Vorhersagbarkeit der Laufzeit • Vorhersagbarkeit des Speicherbedarfs • exakte Lösung (sofern vorhanden) • Auf jedes LGS anwendbar • Nachteile: • Schlecht parallelisierbar • Bei dünnbesetzten Matrizen entsteht ‚fill-in‘

  21. Gliederung • Einleitung • Differentialgleichungen • Partielle Differentialgleichungen • Diskretisierung • Numerische Lösungsverfahren • Direkte Verfahren • Gauß-Elimination • Iterative Verfahren • Jacobi-Verfahren • Gauß-Seidel-Verfahren • Zusammenfassung

  22. Iterative Verfahren • Liefern nur Näherungen • Aufbauend auf bereits errechnete Näherungen werden weitere Approximationen errechnet • Verfahren erzeugen Folgen von Vektoren {x(k)}k=1,2,…die gegen die gesuchte Lösung x* konvergieren. • Aufwand der Algorithmen nicht ausschließlich abhängig von der Größe des Systems • Für dünnbesetzte Matrizen gut geeignet

  23. Gliederung • Einleitung • Differentialgleichungen • Partielle Differentialgleichungen • Diskretisierung • Numerische Lösungsverfahren • Direkte Verfahren • Gauß-Elimination • Iterative Verfahren • Jacobi-Verfahren • Gauß-Seidel-Verfahren • Zusammenfassung

  24. Jacobi-Verfahren • Idee: • Sind alle bekannt, kann durch Einsetzen der errechnet werden , i = 1,…,n , j = 1,…,n • Problem: • Die sind nicht bekannt • Iterativer Ansatz: • Beliebigen Startvektor als vorläufiges Ergebnis betrachten • Vorläufige Ergebnisse der Iteration k zur Errechnung neuer einsetzen • Iterationsvorschrift: • , i = 1,…,n , j = 1,…,n , k = 1,2,…

  25. Jacobi-Verfahren • Abbruchkriterium: • Anzahl an Iterationen - Abbruch ohne Ergebnis • Lösung ist hinreichend genau: Abbruchkriterium: relativer Fehler ||.|| Vektornorm, z.B. ||x|| = max i=1,...,n|xi| oder ||x||2=(ni=1|x|2)½ . • Eigenschaften in Hinblick auf Parallelisierbarkeit • Berechnung der einzelnen xi nur von vorherigen Iteration abhängig • Keine Datenabhängigkeiten innerhalb einer Iteration •  Leicht parallelisierbar

  26. Jacobi-Verfahren • Parallel Implementierung: • Prozessor Pi mit i = 1,…,p speichert n/p Zeilen von A und die dazu gehörigen Werte von b • Möglichkeit Vektor x entweder lokal als auch global gespeichert • Iterationsablauf:

  27. Jacobi-Verfahren • 1. Schritt: Jeder Prozessor Pi hat alle benötigten Daten aus der Approximation x(k) vorliegen und errechnet der Iterationsvorschrift die nächste Aproximation x(k+1) seiner n/p Elemente.

  28. Jacobi-Verfahren • 2. Schritt: Jeder Prozessor sendet seine n/p lokal gespeicherten Elemente des Vektors x(k+1) z.B. mit einer Multibroadcastoperation an die übrigen Prozessoren

  29. Jacobi-Verfahren • 3. Schritt: Abbruchkriterien überprüfen, ggf. Ergebnis ausgeben

  30. Jacobi-Verfahren • Aufwand einer Iteration: • Schritt 1: n/p Werte werden in quadratischer Zeit errechnet  Θ(n2 * (n/p)) • Schritt 2: n/p Werte an p-1 Prozessoren verschicken  Θ((p-1) * (n/p)) • Schritt 3: Ist abhängig vom Abbruchkriterium, z.B. Θ(n), wenn das globale Maximum verglichen wird

  31. Jacobi-Verfahren • Aufwand des Algorithmus: • (Aufwand einer Iteration) * (Iterationsdurchläufe) • Anzahl der Iterationsdurchläufe abhängig vom Gleichungssystem und der Konvergenzrate • Jacobi-Verfahren hat relativ schlechte Konvergenzrate

  32. Gliederung • Einleitung • Differentialgleichungen • Partielle Differentialgleichungen • Diskretisierung • Numerische Lösungsverfahren • Direkte Verfahren • Gauß-Elimination • Iterative Verfahren • Jacobi-Verfahren • Gauß-Seidel-Verfahren • Zusammenfassung

  33. Gauß-Seidel-Verfahren • Iteratives Verfahren • Gleicher Ansatz wie Jacobi, jedoch: • Innerhalb einer Iteration wird auf die bereits errechneten Werte zurückgegriffen • Dadurch entsteht folgende Iterationsvorschrift • Deutlich bessere Konvergenzrate als das Jacobi-Verfahren • Aber es entstehen Datenabhängigkeiten

  34. Gauß-Seidel-Verfahren • Datenabhängigkeiten

  35. Gauß-Seidel-Verfahren • Gute Anwendbarkeit bei dünnbesetzten Matrizen • Oft bei Modellen die einer Gitterstruktur entsprechen • Bsp.: Temperaturverlauf im Wasserbad • Der Punkt xi,j ist nur von den ihn umgebenden Punkten abhängig: • xi,j = (xi-1,j + xi+1,j + xi,j-1 + xi,j+1)/4

  36. Gauß-Seidel-Verfahren • Bei einem 4x4 Gitter ergibt sich folgendes Bild: • Relative viele Datenabhängigkeiten • Durch Rot-Schwarz-Schema in der Berechnung reduzierbar

  37. Gauß-Seidel-Verfahren • Rot-Schwarz-Schema: • 1. 16 Punkte in rote und schwarze Punkte aufteilen • 2. Punkte so im Gitter angeordnet, dass alle roten Punkte nur schwarze Nachbarn haben und umgekehrt Damit ergibt sich folgende Umordnung:

  38. Gauß-Seidel-Verfahren • Nach der Umordnung: • Damit ergibt sich der Iterationsschritt: • In Vektorschreibweise: Somit ist nur noch von und nur noch von abhängig. - Erst ausrechnen, dann - und sind unabhängig und können daher parallel ausgeführt werden

  39. Gauß-Seidel-Verfahren • Algorithmus: • Schritt: Berechne auf parallelen Prozessoren • Schritt: Mit Multibroadcast-Operation Ergebnisse kommunizieren • Schritt: Berechne auf parallelen Prozessoren • Schritt: Mit Multibroadcast-Operation Ergebnisse kommunizieren • Schritt: Abbruchkriterium überprüfen • Schritt: Vektor und zu gemeinsamen Ergebnisvektor zusammenführen • Aufwand des Rot-Schwarz-Schemas: • Berechnungsaufwand fast identisch mit dem Jacobi-Verfahren • Eine Mulitbroadcast-Operation mehr • Nicht so gut parallelisierbar wie Jacobi • Zusätzlicher Aufwand wird jedoch durch bessere Konvergenzrate kompensiert

  40. Gliederung • Einleitung • Differentialgleichungen • Partielle Differentialgleichungen • Diskretisierung • Numerische Lösungsverfahren • Direkte Verfahren • Gauß-Elimination • Iterative Verfahren • Jacobi-Verfahren • Gauß-Seidel-Verfahren • Zusammenfassung

  41. Zusammenfassung • Differentialgleichungen • Können oft zur mathematischen Modellierung herangezogen werden • Sind stetig • Müssen diskretisiert werden, um numerisch gelöst zu werden • Diskretisierung • Beschreibt den Vorgang ein stetiges Problem in ein diskretes umzuwandeln • Erzeugt lineare Gleichungssysteme, die numerisch lösbar sind

  42. Zusammenfassung Numerische Lösungsverfahren: • Gaus-Eliminations-Verfahren: • Direktes Verfahren • Exakte Lösung wird errechnet • Vorhersagbare Rechenzeit • Vorhersagbarer Speicherbedarf • Auf alle linearen Gleichungssystemen anwendbar • Fill-in kann auftreten • Schlechte Parallelisierbarkeit

  43. Zusammenfassung Numerische Lösungsverfahren: • Jacobi-Verfahren: • Iteratives Verfahren • Kein fill-in • Für dünnbesetzte Matrizen gut geeignet • Rechenzeit nicht vorhersagbar • Laufzeit abhängig von der Komplexität des Gleichungssystem • Schlechte Konvergenzrate

  44. Zusammenfassung Numerische Lösungsverfahren: • Gauß-Seidel-Verfahren: • Iteratives Verfahren • Kein fill-in • Datenabhängigkeiten innerhalb einer Iteration • Nicht so gut parallelisierbar • Für dünnbesetzte Matrizen in Bandstruktur gut geeignet • Rechenzeit nicht vorhersagbar • Laufzeit abhängig von der Komplexität des Gleichungssystem • bessere Konvergenzrate als Jacobi-Verfahren

  45. Literatur • Michael J. Quinn: Parallel Computing, Theory and Practice, 2nd ed., McGraw-Hill, 1994 • Thomas Rauber, Gudula Rünger: Parallele Programmierung, 2. Aufl., Springer, 2007. • Hartmut Schwandt: Parallele Numerik, Eine Einführung, 1. Aufl., Teubner 2003

  46. Vielen dank für Ihre Aufmerksamkeit und ein erholsames Wochenende!

More Related