Upload
wei
View
38
Download
0
Embed Size (px)
DESCRIPTION
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 - PowerPoint PPT Presentation
Citation preview
WIR
TS
CH
AF
TS
INF
OR
MA
TIK
WestfälischeWilhelms-Universität Münster
WIRTSCHAFTSINFORMATIK
Nummerisches Lösen Nummerisches Lösen partieller partieller
DifferentialgleichungenDifferentialgleichungen
Im Rahmen des Seminars „Verteilte und parallele Systeme“
Lehrstuhl für praktische Informatik in der WirtschaftProf. Dr. Herbert Kuchen
Nial Moore
2
WIRTSCHAFTSINFORMATIK
GliederungGliederung
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
WIRTSCHAFTSINFORMATIK
GliederungGliederung
1. Einleitung
2. Differentialgleichungen Partielle Differentialgleichungen Diskretisierung
3. Numerische Lösungsverfahren Direkte Verfahren
Gauß-Elimination
Iterative Verfahren Jacobi-Verfahren Gauß-Seidel-Verfahren
4. Zusammenfassung
4
WIRTSCHAFTSINFORMATIK
EinleitungEinleitung
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
WIRTSCHAFTSINFORMATIK
EinleitungEinleitung
Partielle Differentialgleichungen zur werden oft zur Modellierung herangezogen
Modelle sind recht komplexBenötigen Unterstützung durch Rechner
6
WIRTSCHAFTSINFORMATIK
GliederungGliederung
1. Einleitung
2. Differentialgleichungen Partielle Differentialgleichungen Diskretisierung
3. Numerische Lösungsverfahren Direkte Verfahren
Gauß-Elimination
Iterative Verfahren Jacobi-Verfahren Gauß-Seidel-Verfahren
4. Zusammenfassung
7
WIRTSCHAFTSINFORMATIK
Partielle DifferentialgleichungenPartielle 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
0),...,,,,( 2 yDyDDyyxF n G
8
WIRTSCHAFTSINFORMATIK
Partielle DifferentialgleichungenPartielle 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
WIRTSCHAFTSINFORMATIK
GliederungGliederung
1. Einleitung
2. Differentialgleichungen Partielle Differentialgleichungen Diskretisierung
3. Numerische Lösungsverfahren Direkte Verfahren
Gauß-Elimination
Iterative Verfahren Jacobi-Verfahren Gauß-Seidel-Verfahren
4. Zusammenfassung
10
WIRTSCHAFTSINFORMATIK
DiskretisierungDiskretisierung
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
WIRTSCHAFTSINFORMATIK
DiskretisierungDiskretisierung
Diskretisierung: Temperaturen T1 und T2 bekannt
Gesucht sind die Temperaturen x1,…,x4
Temperaturen x1,…,x4 ergeben sich aus dem Durchschnitt der umgebenden Temperaturen
2
1
4
3
2
1
5,0
0
0
5,0
*
15,000
5,015,00
05,015,0
005,01
T
T
x
x
x
x
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
WIRTSCHAFTSINFORMATIK
GliederungGliederung
1. Einleitung
2. Differentialgleichungen Partielle Differentialgleichungen Diskretisierung
3. Numerische Lösungsverfahren Direkte Verfahren
Gauß-Elimination
Iterative Verfahren Jacobi-Verfahren Gauß-Seidel-Verfahren
4. Zusammenfassung
13
WIRTSCHAFTSINFORMATIK
Numerische LösungsverfahrenNumerische 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
WIRTSCHAFTSINFORMATIK
GliederungGliederung
1. Einleitung
2. Differentialgleichungen Partielle Differentialgleichungen Diskretisierung
3. Numerische Lösungsverfahren Direkte Verfahren
Gauß-Elimination
Iterative Verfahren Jacobi-Verfahren Gauß-Seidel-Verfahren
4. Zusammenfassung
15
WIRTSCHAFTSINFORMATIK
Gauß-EliminationGauß-Elimination
Vorgehen ausgehend von dem LGS der Form Ax = b:
2
1
4
3
2
1
5,0
0
0
5,0
*
15,000
5,015,00
05,015,0
005,01
T
T
x
x
x
x
12
1
1
1
4
3
2
1
125,05,0
61,0
25,0
5,0
*
625,0000
5,06,000
05,075,00
005,01
TT
T
T
T
x
x
x
x
bAx bxA
A
2
1
4
3
2
1
5,0
0
0
5,0
*
15,000
5,015,00
05,015,0
005,01
T
T
x
x
x
x
Schritt 1:LGS transformieren, so dass Matrix A die Form einer oberen Dreieckmatrix annimmt
Bsp.:
16
WIRTSCHAFTSINFORMATIK
Gauß-EliminationGauß-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:
)1( kA )1( kb )(kA )(kb
nkia
al
kkk
kikk
ik ,...,1,)(
)()(
alaak
kjik
k
ij
k
ij
)()()1(*
blbbk
kik
k
i
k
i
)()()1(*
17
WIRTSCHAFTSINFORMATIK
Gauß-EliminationGauß-Elimination
Schritt 2: Durch Rückwärtseinsetzen LGS lösen
12
1
1
1
4
3
2
1
125,05,0
61,0
25,0
5,0
*
625,0000
5,06,000
05,075,00
005,01
TT
T
T
T
x
x
x
x
21
21
21
21
4
3
2
1
8,02,0
6,04,0
4,06,0
2,08,0
*
1000
0100
0010
0001
TT
TT
TT
TT
x
x
x
x
1,...,1,,1
1
)()()(
nnkxaba
xn
kjj
nkj
nkn
kkk
Bsp.:
Rechenvorschrift:
18
WIRTSCHAFTSINFORMATIK
Gauß-EliminationGauß-Elimination
Problem: Sollte ein Element der Hauptdiagonalen der Matrix A Null sein
bricht der Algorithmus ab (Division durch Null )
Partielle PivotisierungErfordert mehr Kommunikation/Rechenaufwand
Koeffizienten, die sich nicht verändern
Koeffizienten, die sich verändern werden
Koeffizienten, die den Wert Null erhalten sollen
Koeffizienten, die bereits den Wert Null haben
Pivot-Zeile i
i
ii+1
n
i+1 n
19
WIRTSCHAFTSINFORMATIK
Gauß-EliminationGauß-Elimination
Sequentielle Implementierung: 3 ineinander geschachtelte Schleifen Θ(n3)
Parallele Implementierung: Erfordert wesentlich mehr Kommunikation
Geringer ‚speed-up‘
nn
knkk
nkkkkk
nkk
nkk
a
aa
aaa
aaaa
aaaaa
A
000
0
0
,1,11,1
221,222
111,11211
20
WIRTSCHAFTSINFORMATIK
Gauß-EliminationGauß-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
WIRTSCHAFTSINFORMATIK
GliederungGliederung
1. Einleitung
2. Differentialgleichungen Partielle Differentialgleichungen Diskretisierung
3. Numerische Lösungsverfahren Direkte Verfahren
Gauß-Elimination
Iterative Verfahren Jacobi-Verfahren Gauß-Seidel-Verfahren
4. Zusammenfassung
22
WIRTSCHAFTSINFORMATIK
Iterative VerfahrenIterative 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
WIRTSCHAFTSINFORMATIK
GliederungGliederung
1. Einleitung
2. Differentialgleichungen Partielle Differentialgleichungen Diskretisierung
3. Numerische Lösungsverfahren Direkte Verfahren
Gauß-Elimination
Iterative Verfahren Jacobi-Verfahren Gauß-Seidel-Verfahren
4. Zusammenfassung
24
WIRTSCHAFTSINFORMATIK
Jacobi-VerfahrenJacobi-Verfahren
Idee: Sind alle bekannt, kann durch Einsetzen der
errechnet werden
, i = 1,…,n , j = 1,…,n
nijijx j ,...,1,, ix jx
ijjiji
iii xab
ax
1
jx
)(kjx
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,…
)1( kix
ij
kjiji
ii
ki xab
ax )()1( 1
25
WIRTSCHAFTSINFORMATIK
Jacobi-VerfahrenJacobi-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=(n i=1|x|2)½ .
)1()()1( kkk xxx
Eigenschaften in Hinblick auf Parallelisierbarkeit Berechnung der einzelnen xi nur von vorherigen Iteration abhängig
Keine Datenabhängigkeiten innerhalb einer Iteration
Leicht parallelisierbar
26
WIRTSCHAFTSINFORMATIK
Jacobi-VerfahrenJacobi-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:
Multibroadcastoperation
A b
P14567
P0
10
23x(0)
x(k+1)
x(k+1)
Iteration kInitialisierung
Abbruch testen
Ausgabe
27
WIRTSCHAFTSINFORMATIK
Jacobi-VerfahrenJacobi-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.
Multibroadcastoperation
A b
P14567
P0
10
23x(0)
x(k+1)
x(k+1)
Iteration kInitialisierung
Abbruch testen
Ausgabe
28
WIRTSCHAFTSINFORMATIK
Jacobi-VerfahrenJacobi-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
Multibroadcastoperation
A b
P14567
P0
10
23x(0)
x(k+1)
x(k+1)
Iteration kInitialisierung
Abbruch testen
Ausgabe
29
WIRTSCHAFTSINFORMATIK
Jacobi-VerfahrenJacobi-Verfahren
3. Schritt:
Abbruchkriterien überprüfen, ggf. Ergebnis ausgeben
Multibroadcastoperation
A b
P14567
P0
10
23x(0)
x(k+1)
x(k+1)
Iteration kInitialisierung
Abbruch testen
Ausgabe
30
WIRTSCHAFTSINFORMATIK
Jacobi-VerfahrenJacobi-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
WIRTSCHAFTSINFORMATIK
Jacobi-VerfahrenJacobi-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
WIRTSCHAFTSINFORMATIK
GliederungGliederung
1. Einleitung
2. Differentialgleichungen Partielle Differentialgleichungen Diskretisierung
3. Numerische Lösungsverfahren Direkte Verfahren
Gauß-Elimination
Iterative Verfahren Jacobi-Verfahren Gauß-Seidel-Verfahren
4. Zusammenfassung
33
WIRTSCHAFTSINFORMATIK
Gauß-Seidel-VerfahrenGauß-Seidel-Verfahren
Iteratives Verfahren Gleicher Ansatz wie Jacobi, jedoch:
Innerhalb einer Iteration wird auf die bereits errechneten Werte zurückgegriffen
Dadurch entsteht folgende Iterationsvorschrift
n
ij
kjij
i
j
kjiji
ii
ki xaxab
ax
1
)(1
1
)1()1( 1
xi von Iteration k+1 xi von Iteration k
- Deutlich bessere Konvergenzrate als das Jacobi-Verfahren
- Aber es entstehen Datenabhängigkeiten
ij
kjiji
ii
ki xab
ax )()1( 1
34
WIRTSCHAFTSINFORMATIK
Gauß-Seidel-VerfahrenGauß-Seidel-Verfahren
Datenabhängigkeiten
44434241
34333231
24232221
14131211
aaaa
aaaa
aaaa
aaaa
A
n
ij
kjij
i
j
kjiji
ii
ki xaxab
ax
1
)(1
1
)1()1( 1
35
WIRTSCHAFTSINFORMATIK
Gute Anwendbarkeit bei dünnbesetzten Matrizen Oft bei Modellen die einer Gitterstruktur entsprechen
xij
xi,j-1
xi-1,j xi+1,j
xi,j+1
Gauß-Seidel-VerfahrenGauß-Seidel-Verfahren
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
WIRTSCHAFTSINFORMATIK
Gauß-Seidel-VerfahrenGauß-Seidel-Verfahren
Bei einem 4x4 Gitter ergibt sich folgendes Bild:
Relative viele Datenabhängigkeiten Durch Rot-Schwarz-Schema in der Berechnung
reduzierbar
a) 4x4 Gitter b) schematische Darstellung der Matrix A
x x xx x x x
x x x xx x x
x x x xx x x x x
x x x x xx x x x
x x x xx x x x x
x x x x xx x x x
x x xx x x x
x x x xx x x
1 3 4
5 6 7 8
9 10 11 12
13 14 15 16
2
37
WIRTSCHAFTSINFORMATIK
Gauß-Seidel-VerfahrenGauß-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
a) 4x4 Gitter in rot- schwarz Anordnung
b) schematische Darstellung der Matrix A´
1 2 10
11 3 12 4
5 13 6 14
15 7 16 8
x x xx x x x
x x x x xx x x x
x x x xx x x x x
x x x xx x x
x x x xx x x
x x x xx x x x x
x x x x xx x x x
x x xx x x x
9
Damit ergibt sich folgende Umordnung:
38
WIRTSCHAFTSINFORMATIK
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
Gauß-Seidel-VerfahrenGauß-Seidel-Verfahren
2
1
ˆ
ˆ
ˆ
ˆ*ˆ*ˆ
b
bx
x
DE
FDxA
S
R
S
R
)(
)(
2
1
)1(
)1(
*00
0*
0k
S
kR
kS
kR
S
R
x
xF
b
b
x
x
DE
D
)(1
)1( ** kS
kRR xFbxD
)1(2
)1( ** kR
kSS xEbxD
)1( kRx )(k
Sx )1( kSx
)1( kRx
)1( kRx )1( k
Sx)1( k
Rx )1( kSx
39
WIRTSCHAFTSINFORMATIK
Gauß-Seidel-VerfahrenGauß-Seidel-Verfahren
Algorithmus:1. Schritt: Berechne auf parallelen Prozessoren
2. Schritt: Mit Multibroadcast-Operation Ergebnisse kommunizieren
3. Schritt: Berechne auf parallelen Prozessoren
4. Schritt: Mit Multibroadcast-Operation Ergebnisse kommunizieren
5. Schritt: Abbruchkriterium überprüfen
6. Schritt: Vektor und zu gemeinsamen Ergebnisvektor zusammenführen
)1( kRx
)1( kSx
)1( kRx )1( k
Sx
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
WIRTSCHAFTSINFORMATIK
GliederungGliederung
1. Einleitung
2. Differentialgleichungen Partielle Differentialgleichungen Diskretisierung
3. Numerische Lösungsverfahren Direkte Verfahren
Gauß-Elimination
Iterative Verfahren Jacobi-Verfahren Gauß-Seidel-Verfahren
4. Zusammenfassung
41
WIRTSCHAFTSINFORMATIK
ZusammenfassungZusammenfassung
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
WIRTSCHAFTSINFORMATIK
ZusammenfassungZusammenfassung
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
WIRTSCHAFTSINFORMATIK
ZusammenfassungZusammenfassung
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
WIRTSCHAFTSINFORMATIK
ZusammenfassungZusammenfassung
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
WIRTSCHAFTSINFORMATIK
LiteraturLiteratur
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
WIRTSCHAFTSINFORMATIK
Vielen dank für Ihre Aufmerksamkeit und ein erholsames Wochenende!