WIRTSCHAFTSINFORMATIK
Westfälische
Wilhelms-Universität
Münster
WIRTSCHAFTS
INFORMATIK
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
WIRTSCHAFTS
INFORMATIK
1. Einleitung
2. Differentialgleichungen
Partielle Differentialgleichungen
Diskretisierung
3. Numerische Lösungsverfahren
Direkte Verfahren
-
Gauß-Elimination
Iterative Verfahren
Jacobi-Verfahren
Gauß-Seidel-Verfahren
4. Zusammenfassung
2
Gliederung
WIRTSCHAFTS
INFORMATIK
1. Einleitung
2. Differentialgleichungen
Partielle Differentialgleichungen
Diskretisierung
3. Numerische Lösungsverfahren
Direkte Verfahren
-
Gauß-Elimination
Iterative Verfahren
Jacobi-Verfahren
Gauß-Seidel-Verfahren
4. Zusammenfassung
3
Einleitung
WIRTSCHAFTS
INFORMATIK
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
4
Einleitung
WIRTSCHAFTS
INFORMATIK
Partielle Differentialgleichungen zur werden oft zur
Modellierung herangezogen
Modelle sind recht komplex
Benötigen Unterstützung durch Rechner
5
Gliederung
WIRTSCHAFTS
INFORMATIK
1. Einleitung
2. Differentialgleichungen
Partielle Differentialgleichungen
Diskretisierung
3. Numerische Lösungsverfahren
Direkte Verfahren
-
Gauß-Elimination
Iterative Verfahren
Jacobi-Verfahren
Gauß-Seidel-Verfahren
4. Zusammenfassung
6
Partielle Differentialgleichungen
WIRTSCHAFTS
INFORMATIK
Differentialgleichungen:
- Beschreiben Verhalten realer Systeme
- Gesucht: Funktion y, die die Funktion
F ( x, y, Dy , D 2 y,..., D n y) 0 für x = (x1,…,xn) G, 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
7
Partielle Differentialgleichungen
WIRTSCHAFTS
INFORMATIK
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
8
Gliederung
WIRTSCHAFTS
INFORMATIK
1. Einleitung
2. Differentialgleichungen
Partielle Differentialgleichungen
Diskretisierung
3. Numerische Lösungsverfahren
Direkte Verfahren
-
Gauß-Elimination
Iterative Verfahren
Jacobi-Verfahren
Gauß-Seidel-Verfahren
4. Zusammenfassung
9
Diskretisierung
WIRTSCHAFTS
INFORMATIK
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)
10
Diskretisierung
WIRTSCHAFTS
INFORMATIK
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,5x1
- 0,5x2
+ x2
- 0,5x2
- 0,5x3
+ x3
- 0,5x3
- 0,5x4
+ x4
= 0,5T1
=0
=0
= 0,5T2
- Matrixschreibweise Ax = b:
0,5
0
0 x1 0,5T1
1
x
0
0
,
5
1
0
,
5
0
2
*
0
x3
0
0,5
1
0,5
0
0
0,5
1 x 4 0,5T2
11
Gliederung
WIRTSCHAFTS
INFORMATIK
1. Einleitung
2. Differentialgleichungen
Partielle Differentialgleichungen
Diskretisierung
3. Numerische Lösungsverfahren
Direkte Verfahren
-
Gauß-Elimination
Iterative Verfahren
Jacobi-Verfahren
Gauß-Seidel-Verfahren
4. Zusammenfassung
12
Numerische Lösungsverfahren
WIRTSCHAFTS
INFORMATIK
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
13
Gliederung
WIRTSCHAFTS
INFORMATIK
1. Einleitung
2. Differentialgleichungen
Partielle Differentialgleichungen
Diskretisierung
3. Numerische Lösungsverfahren
Direkte Verfahren
-
Gauß-Elimination
Iterative Verfahren
Jacobi-Verfahren
Gauß-Seidel-Verfahren
4. Zusammenfassung
14
Gauß-Elimination
WIRTSCHAFTS
INFORMATIK
Vorgehen ausgehend von dem LGS der Form Ax = b:
0,5
0
0 x1 0,5T1
1
1
0,5
0 x2 0
0,5
*
0
0,5
1
0,5 x3 0
0
0
0,5
1 x4 0,5T2
Schritt 1: LGS transformieren, so dass Matrix A die Form
einer oberen Dreieckmatrix A annimmt
Ax b
Ax b
Bsp.:
0,5
0
0 x1 0,5T1
1
x
0
0
,
5
1
0
,
5
0
2
*
0
x3
0
0,5
1
0,5
0
0
0,5
1 x 4 0,5T2
0,5T1
0
0 x1
1 0,5
x
0
,
25
T
0
0
,
75
0
,
5
0
2
1
*
0
x3
0,1 6T1
0
0, 6 0,5
0
0
0
0,625 x4 0,5T2 0,125T1
15
Gauß-Elimination
WIRTSCHAFTS
INFORMATIK
Transformation benötigt n-1 Schritte
In jedem Schritt k:
A( k 1) und b ( k 1) aus A(k ) und b ( k ) errechnen:
- Eliminationsfaktoren l berechnen:
aik( k )
(k )
lik ( k ) , i k 1,..., n
akk
- Matrix A(k+1) und Vektor b(k+1) neu berechnen:
a
( k 1)
ij
( k 1)
b
i
(k )
a
ij
l
ik
*
(k )
a
kj
bi l ik * bk
(k )
(k )
16
Gauß-Elimination
WIRTSCHAFTS
INFORMATIK
Schritt 2: Durch Rückwärtseinsetzen LGS lösen
Bsp.:
0,5T1
0
0 x1
1 0,5
0,25T1
0 x2
0 0,75 0,5
*
0
0,1 6T1
0
0, 6 0,5 x3
0
x 0,5T 0,125T
0
0
0
,
625
4
2
1
1
0
0
0
0 0 0 x1 0,8T1 0,2T2
1 0 0 x2 0,6T1 0,4T2
*
0 1 0 x3 0,4T1 0,6T2
0 0 1 x4 0,2T1 0,8T2
Rechenvorschrift:
n
1 (n)
(n)
xk ( n ) bk akj x j , k n, n 1,...,1
akk
j k 1
17
Gauß-Elimination
WIRTSCHAFTS
INFORMATIK
Problem:
- Sollte ein Element der Hauptdiagonalen der Matrix A Null sein
bricht der Algorithmus ab (Division durch Null )
Partielle Pivotisierung
Erfordert mehr Kommunikation/Rechenaufwand
i i+1
n
Koeffizienten, die sich nicht
verändern
Pivot-Zeile i
i
i+1
Koeffizienten, die bereits
den Wert Null haben
Koeffizienten, die sich verändern
werden
n
Koeffizienten, die den Wert Null erhalten sollen
18
Gauß-Elimination
WIRTSCHAFTS
INFORMATIK
Sequentielle Implementierung:
- 3 ineinander geschachtelte Schleifen Θ(n3)
Parallele Implementierung:
- Erfordert wesentlich mehr Kommunikation
- Geringer ‚speed-up‘
a11 a12
0 a22
A
0
a1,k 1
a1k
a2,k 1
a2 k
ak 1,k 1 ak 1,k
0
akk
0
0
a1n
a2 n
ak 1,n
akn
ann
19
Gauß-Elimination
WIRTSCHAFTS
INFORMATIK
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‘
20
Gliederung
WIRTSCHAFTS
INFORMATIK
1. Einleitung
2. Differentialgleichungen
Partielle Differentialgleichungen
Diskretisierung
3. Numerische Lösungsverfahren
Direkte Verfahren
-
Gauß-Elimination
Iterative Verfahren
Jacobi-Verfahren
Gauß-Seidel-Verfahren
4. Zusammenfassung
21
Iterative Verfahren
WIRTSCHAFTS
INFORMATIK
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
22
Gliederung
WIRTSCHAFTS
INFORMATIK
1. Einleitung
2. Differentialgleichungen
Partielle Differentialgleichungen
Diskretisierung
3. Numerische Lösungsverfahren
Direkte Verfahren
-
Gauß-Elimination
Iterative Verfahren
Jacobi-Verfahren
Gauß-Seidel-Verfahren
4. Zusammenfassung
23
Jacobi-Verfahren
WIRTSCHAFTS
INFORMATIK
Idee:
- Sind alle x , j i j, i 1,..., n bekannt, kann x durch Einsetzen der
j
i
xj
errechnet werden
xi
1
bi aij x j
aii
j i
, i = 1,…,n , j = 1,…,n
Problem:
- Die x sind nicht bekannt
Iterativer Ansatz:
- Beliebigen Startvektor als vorläufiges Ergebnis betrachten
- Vorläufige Ergebnisse x der Iteration k zur Errechnung neuer x
j
(k )
j
( k 1)
i
einsetzen
- Iterationsvorschrift:
( k 1)
i
x
, i = 1,…,n , j = 1,…,n , k = 1,2,…
1
(k )
bi aij x j
aii
j i
24
Jacobi-Verfahren
WIRTSCHAFTS
INFORMATIK
Abbruchkriterium:
- Anzahl an Iterationen - Abbruch ohne Ergebnis
- Lösung ist hinreichend genau:
Abbruchkriterium: relativer Fehler
x ( k 1) x ( k ) x ( k 1)
||.|| Vektornorm, z.B. ||x|| = max i=1,...,n|xi| oder ||x||2=(n i=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
25
Jacobi-Verfahren
WIRTSCHAFTS
INFORMATIK
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:
A
P0
x(0)
P1
b
x(k+1)
x(k+1)
0
1
2
3
Abbruch
testen
4
5
6
7
Ausgabe
Multibroadcastoperation
Initialisierung
Iteration k
26
Jacobi-Verfahren
WIRTSCHAFTS
INFORMATIK
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.
A
P0
x(0)
P1
b
x(k+1)
x(k+1)
0
1
2
3
Abbruch
testen
4
5
6
7
Ausgabe
Multibroadcastoperation
Initialisierung
Iteration k
27
Jacobi-Verfahren
WIRTSCHAFTS
INFORMATIK
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
A
P0
x(0)
P1
b
x(k+1)
x(k+1)
0
1
2
3
Abbruch
testen
4
5
6
7
Ausgabe
Multibroadcastoperation
Initialisierung
Iteration k
28
Jacobi-Verfahren
WIRTSCHAFTS
INFORMATIK
3. Schritt:
Abbruchkriterien überprüfen, ggf. Ergebnis ausgeben
A
P0
x(0)
P1
b
x(k+1)
x(k+1)
0
1
2
3
Abbruch
testen
4
5
6
7
Ausgabe
Multibroadcastoperation
Initialisierung
Iteration k
29
Jacobi-Verfahren
WIRTSCHAFTS
INFORMATIK
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
30
Jacobi-Verfahren
WIRTSCHAFTS
INFORMATIK
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
31
Gliederung
WIRTSCHAFTS
INFORMATIK
1. Einleitung
2. Differentialgleichungen
Partielle Differentialgleichungen
Diskretisierung
3. Numerische Lösungsverfahren
Direkte Verfahren
-
Gauß-Elimination
Iterative Verfahren
Jacobi-Verfahren
Gauß-Seidel-Verfahren
4. Zusammenfassung
32
Gauß-Seidel-Verfahren
WIRTSCHAFTS
INFORMATIK
Iteratives Verfahren
Gleicher Ansatz wie Jacobi, jedoch:
- Innerhalb einer Iteration wird auf die bereits errechneten Werte
zurückgegriffen
- Dadurch entsteht folgende Iterationsvorschrift
x
( k 1)
i
1
aii
i 1
bi aij x (jk 1)
j 1
xi von Iteration k+1
n
a
j i 1
ij
x
(k )
j
xi von Iteration k
- Deutlich bessere
als
1
( k 1Konvergenzrate
)
( k ) das Jacobi-Verfahren
xi
bi aij x j
- Aber es entstehen Datenabhängigkeiten
aii
j i
33
Gauß-Seidel-Verfahren
WIRTSCHAFTS
INFORMATIK
Datenabhängigkeiten
a11 a12
a21 a22
A
a31 a32
a
41 a42
x
( k 1)
i
1
aii
a13
a23
a33
a43
i 1
bi aij x (jk 1)
j 1
a14
a24
a34
a44
n
a
j i 1
ij
x
(k )
j
34
Gauß-Seidel-Verfahren
WIRTSCHAFTS
INFORMATIK
Gute Anwendbarkeit bei dünnbesetzten Matrizen
Oft bei Modellen die einer Gitterstruktur entsprechen
Bsp.: Temperaturverlauf im Wasserbad
xi,j-1
xi-1,j
xij
xi+1,j
xi,j+1
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
35
Gauß-Seidel-Verfahren
WIRTSCHAFTS
INFORMATIK
Bei einem 4x4 Gitter ergibt sich folgendes Bild:
b) schematische Darstellung der
Matrix A
a) 4x4 Gitter
1
2
3
4
x
x
x
x
x
x
x
x
x
x
x
x
x
5
6
7
8
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
9
10
11
12
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
14
15
16
x
x
x
x
x
x
13
x
x
x
x
x
x
x
x
x
Relative viele Datenabhängigkeiten
Durch Rot-Schwarz-Schema in der Berechnung
reduzierbar
36
Gauß-Seidel-Verfahren
WIRTSCHAFTS
INFORMATIK
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:
a) 4x4 Gitter in rotschwarz Anordnung
b) schematische Darstellung der
Matrix A´
x
1
9
2
10
x
x
x
x
x
x
x
x
x
x
x
11
3
12
x
x
x
x
x
x
x
4
x
x
x
x
x
x
x
5
13
6
14
x
x
x
x
x
7
16
8
x
x
x
x
x
x
x
x
x
15
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
37
Gauß-Seidel-Verfahren
WIRTSCHAFTS
INFORMATIK
Nach der Umordnung:
ˆA * xˆ DR
E
Damit ergibt sich der Iterationsschritt:
DR
E
F xˆ R bˆ1
*
DS xˆ S bˆ2
0 xR( k 1) b1 0 F xR( k )
* ( k 1)
* ( k )
DS xS b2 0 0 xS
In Vektorschreibweise:
(k )
DR * x R( k 1) b1 F * x S( k )
DS * x S( k 1) b2 E * x R( k 1)
( k 1)
Somit ist x R( k 1) nur noch von x S und x S nur noch
( k 1)
von x R abhängig.
- Erst x R( k 1) ausrechnen, dann x S( k 1)
- x R( k 1) und x S( k 1) sind unabhängig und können daher
parallel ausgeführt werden
38
Gauß-Seidel-Verfahren
WIRTSCHAFTS
INFORMATIK
Algorithmus:
1. Schritt: Berechne x auf parallelen Prozessoren
2. Schritt: Mit Multibroadcast-Operation Ergebnisse kommunizieren
3. Schritt: Berechne x auf parallelen Prozessoren
4. Schritt: Mit Multibroadcast-Operation Ergebnisse kommunizieren
5. Schritt: Abbruchkriterium überprüfen
6. Schritt: Vektor x und x zu gemeinsamen Ergebnisvektor
( k 1)
R
( k 1)
S
( k 1)
R
( k 1)
S
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
39
Gliederung
WIRTSCHAFTS
INFORMATIK
1. Einleitung
2. Differentialgleichungen
Partielle Differentialgleichungen
Diskretisierung
3. Numerische Lösungsverfahren
Direkte Verfahren
-
Gauß-Elimination
Iterative Verfahren
Jacobi-Verfahren
Gauß-Seidel-Verfahren
4. Zusammenfassung
40
Zusammenfassung
WIRTSCHAFTS
INFORMATIK
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
41
Zusammenfassung
WIRTSCHAFTS
INFORMATIK
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
42
Zusammenfassung
WIRTSCHAFTS
INFORMATIK
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
43
Zusammenfassung
WIRTSCHAFTS
INFORMATIK
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
44
Literatur
WIRTSCHAFTS
INFORMATIK
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
45
WIRTSCHAFTS
INFORMATIK
Vielen dank für Ihre Aufmerksamkeit und ein erholsames
Wochenende!
46