Nummerisches Lösen partieller Differentialgleichungen

Post on 13-Jan-2016

38 views 0 download

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

Transcript of Nummerisches Lösen partieller Differentialgleichungen

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!