Jacobi-Verfahren - Universität Münster

Werbung
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

Ax  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
Herunterladen