Lösung nichtlinearer Gleichungssysteme

Werbung
WIRTSCHAFTSINFORMATIK
Westfälische
Wilhelms-Universität
Münster
WIRTSCHAFTS
INFORMATIK
Lösung nichtlinearer
Gleichungssysteme
Präsentation in Rahmen des Seminars
„Parallele Programmierung“
SS 2003
Referent: Roman Achziger
Datum: 11.06.2003
Einleitung: Motivation
WIRTSCHAFTS
INFORMATIK

Anwendungsgebiete
- Gebiete der Technik, Wirtschafts- und Naturwissenschaften

Lösung nichtlinearen Abhängigkeiten
- Approximation durch lineare Modelle
- Einsatz numerischen Algorithmen

Die Standardform nichtlinearer Gleichungssysteme:
 f1 ( x1 , x2 ..., xn ) 


f
(
x
,
x
...,
x
)
 2 1 2
n 
.




.


f
(
x
,
x
...,
x
)
n 
 m 1 2
0
 
0
=  .  oder kurz F(x)
.
0
 
2
Grundlagen der Iterationsverfahren
WIRTSCHAFTS
INFORMATIK

Fixpunktiteration: Betrachtung des skalaren Falls
- Transformation der vorliegende Gleichung f(x)=0 in eine
äquivalente Fixpunktform  (x) = x
Definition:
Ein Element x* R heißt Fixpunkt der Abbildung  : R R falls
 (x*)=x* gilt.
- Wähle die Abbildung  so, dass x* die Abbildung  (x*) = x* und
f(x*) = 0 erfüllt
- Ausgehend vom Startwert x(0) gilt die Rekursion x(k+1) =  (x(k)), x  0
- Abbildung  verkleinert sukzessive den Abstand zwischen x(k+1)
und x*
3
Grundlagen der Iterationsverfahren
WIRTSCHAFTS
INFORMATIK
y=x
1
0.8
0.6
0.4
 (x) = exp(-x2)
0.2
-0.2 x
(0)=0
0.2
0.4
0.6
0.8
1
- Spinnweb-Diagramm für  (x)= exp(-x2)
- Die Folge oszilliert um den Fixpunkt
4
Grundlagen der Iterationsverfahren
WIRTSCHAFTS
INFORMATIK
- Die Wahl einer gute Iterationsfunktion ist entscheidend
Definition:
Eine auf einer Teilmenge A 
R definierte Abbildung : A A 
heißt
Kontraktion, wenn eine Lipschitz-Konstante 0<L<1 existiert,
so dass für alle Paare x,y A gilt: | (x) - (y)|  L |x-y|.
L = max |  ´(Z)|, mit einem Zwischenwert Z zwischen x und y
Z A
 Die Abbildung konvergiert, wenn dieses Maximum der
ersten Ableitung kleiner als 1
5
.
Grundlagen der Iterationsverfahren: Beispiel
WIRTSCHAFTS
INFORMATIK

Gesucht ist die Nullstelle von f(x) = x3+x-1,5
- Einsetzen: f(0,8) = -0,188 und f(0,9) = 0,129
 Da die Funktion stetig ist, existiert eine Nullstelle x* mit 0,8<x*<0,9
1)  1(x)= -x3+1,5 ; |  1´(x)|=3x2
|  1´(0,8)| <| 1´(x*)|<| 1´(0,9)|<=> 1,92 <|  1´(x*)|< 2,43
 abstoßender Fixpunkt: x(0)=0,9; x(1)=0,77; x(2)=1,04; x(3)=0,37
2)  2(x)=(-x3+x+1,5)/2 ; |  2´(x)| =| (-3x2+1)/2|
|  2´(0,8) |<|  2´(x*)|<| 2´(0,9)| d.h. 0,46<|  2´(x*)|< 0,715
 Die Folge konvergiert
gegen x* für Startwerte aus [0,8; 0,9]
x(0)=0,9; x(1)=0,8355; x(2)=0,8761; x(3)=0,8518; x(4)=0,8667;
x(5)=0,8577; x(5)=0,8633
6

Grundlagen der Iterationsverfahren
WIRTSCHAFTS
INFORMATIK
Banachsche Fixpunktsatz:
- Es sei :A A
eine Kontraktion über der abgeschlossenen Menge
A R mit 
der Kontraktionskonstanten L< 1. Dann :
1) existiert ein eindeutiger Fixpunkt x* =  (x*) in A;
2) konvergiert die durch x(k+1) = (x(k)) definierte Folge für jeden
Startwert x(0) A gegen den Fixpunkt;
3) gelten die Abschätzungen:
L
Lk
(k)
(k -1)
| x - x* | 
| x - x |
| x (1) - x (0) |
1 L
1 L
(k)
„ a - posteriori “
„a - priori “
7
Grundlagen der Iterationsverfahren:
Einzugsbereich
WIRTSCHAFTS
INFORMATIK
Definition:
Die Menge E  R heißt Einzugsbereich der Lösung x*, wenn
lim x(k)= x* für alle x(0) E gilt.
k
 

globale Konvergenz:
- Ist der gesamte Definitionsbereich von  Einzugsbereich
 Iterationsfolge konvergiert für alle Startwerte

lokale Konvergenz:
- Iterationsfolge konvergiert nur auf einer Umgebung um x*
8
Grundlagen der Iterationsverfahren:
WIRTSCHAFTS
INFORMATIK
Konvergenzgeschwindigkeit
- Der Fehler (k) := x(k) -x* stellt auf einer kleinen Umgebung von x*
das Konvergenzverhalten der Folge dar

Lineare Konvergenz:
Es gibt eine Konstante q  (0; 1), Konvergenzordnung p=1, so dass
x
( k 1)
 x*  q x
(k )
 x*
1
für alle k=0, 1, 2, . . . gilt.
der Fehler (k+1) nimmt linear mit dem Faktor q ab

Quadratische Konvergenz:
Es gibt eine Konvergenzfaktor K > 0 und eine
Konvergenzordnung
2
( k 1)
 x *  K x ( k )  x * für alle k=0, 1, 2, . . . gilt.
p=2, so dass x
Fehler (k+1) ist proportional zum Quadrat von (k) mit dem Faktor K
9
Grundlagen der Iterationsverfahren:
WIRTSCHAFTS
INFORMATIK
Abbruchkriterien

Kompromiss zwischen der Genauigkeit und der Effizienz

Abbruch der Verfahren beim Erreichen einer geforderten
Genauigkeit
- Fehler-Kriterium: Prozess stoppt, wenn || x(k+1)-x(k)|| < abs
- Residuums-Kriterium: Prozess stoppt, wenn ||F(x)|| < f

Abbruch der Verfahren bei Nicht-Konvergenz
- Kriterien: ||x(k)||>xmax oder || F(x(k))|| > fmax oder
||F(x(k))|| > ||F(x(k-1))||> ||F(x(k-2))||
- sicherste Methode: Beschränkung der maximalen Anzahl der
Iterationsschritte  Verhinderung einer unendlichen Folge
10
Lösung nichtlinearer Gleichungen:
WIRTSCHAFTS
INFORMATIK

Bisektionsverfahren
Nullstellensatz für stetige Funktionen
- Sei eine stetige Funktion f : [a,b] R mit f(a)*f(b) < 0 gegeben.
Dann existiert ein x*  (a,b), so dass f(x*) = 0 gilt.

Algorithmus:
Startintervall: I0 =[x(k-1),x(k)] mit x(k-1) < x(k) und f(x(k-1))f(x(k))< 0
while (Abbruchkriterium nicht erfüllt)
{ (x(k+1) = x(k-1) + x(k)) /2
if (f(x(k-1))f(x(k+1))  0 ) x(k)= x(k+1) else x(k-1)= x(k+1)
} return x(k)
- Lineare Konvergenz mit dem Konvergenzfaktor ½
- Global konvergent
11
Lösung nichtlinearer Gleichungen:
WIRTSCHAFTS
INFORMATIK

Bisektionsverfahren
Parallelen Realisierung
- Unterteilung des Intervalls in in p+1 Teilintervalle
- parallelen Berechnung der p Funktionswerte
- Dasjenige mit einen Vorzeichenwechsel wird aus den p+1
Teilintervallen ausgewählt
- wiederhole bis Abbruchkriterium erfüllt
- Nach k-Schritt wird das Anfangsintervall auf das
( p+1)-k –fache reduziert  speed-up von Sp= O(log2 p)
12
Lösung nichtlinearer Gleichungen:
WIRTSCHAFTS
INFORMATIK
Linearisiertes Newton-Verfahren
- Ersetzung der Funktion durch eine lineare Modellfunktion
- Geometrisch: Der Schnittpunkt der Tangente mit der x-Achse gilt
als Näherungswert für die Nullstelle x*
(k )
f
(
x
)
(k+1)
(k)
- Iterationsvorschrift: x = x , k =0,1,2,...,
f ´( x ( k ) )
- Fixpunktiterationen:  (x(k))= x(k)- f ( x )
f ´( x )
- Newton-Iteration: x(k+1) =  (x(k)), k = 0, 1, 2,....,

Eigenschaften:
- quadratische Konvergenz
- lokale Konvergenz
- selbstkorrigierend
13
Lösung nichtlinearer Gleichungssysteme:
WIRTSCHAFTS
INFORMATIK
Fixpunktiteration
- Übertragung des skalaren Falls der Fixpunktiteration auf ein
n-dimensionales Problem
vorliegende Problem:
sind : Rn  Rn und F: Rn  Rn gegeben, finde x* Rn, so dass
(x*) = x*. Für einen Fixpunkt x* von  gilt F(x*) = 0
- Ausgehend von x(0) Rn konvergiert die Iterationsvorschrift
x(k+1) = ( x(k)), für k = 0, 1, 2..... gegen x*
14
Lösung nichtlinearer Gleichungssysteme:
WIRTSCHAFTS
INFORMATIK

Fixpunktiteration
parallele Realisierung
- vergleichbar zur der parallelen Realisierung eines Iterationsverfahrens zur Lösung linearer Gleichungssysteme
- Aufteilung der Komponenten i(x(k)) der Kontraktionsabbildung 
auf n Prozessoren
- blockweise Aufteilung Fixpunktabbildung  auf die Prozessoren
 jeder einzelne Prozessor
berechnet n/p Spalten
des nächsten Iterationsvektors
1 2 3 4 5 6 7 8
1
2
3
4 P1 P2
5
6
7
8
P3 P4
- Verteilung des Iterationsvektor per Multi-Broadcastoperation
15
Lösung nichtlinearer Gleichungssysteme:
Newton-Verfahren
WIRTSCHAFTS
INFORMATIK
-
Linearisierung der Funktion F: Rn  Rn
Iterationsvorschrift: x(k+1)= x(k)-[DF(x(k))]-1 F(x(k)) für k=0, 1, 2, . . ..
Fixpunktproblem: (x) = x(k)-[DF(x(k))]-1 F(x(k))
Fixpunktiteration x(k+1) = (x(k))
F1
 F1

( x ) ....
( x) 

xn
 x1

. 
 .
DF(x)=  .
. 

. 
 .
 Fn

Fn
(
x
)
....
(
x
)



x

x
n
 1


Eigenschaften:
- quadratische Konvergenz
- lokale Konvergenz
16
Lösung nichtlinearer Gleichungssysteme:
WIRTSCHAFTS
INFORMATIK

Newton-Verfahren
Einführung eines Korrekturterms (k):
1) x(k+1) = x(k) + (k)
2) DF(x(k))*(k) = - F(x(k))
Überführung des Problem des Lösens eines Systems nichtlinearer
Gleichungen in das Problem des Lösens eines linearen Gleichungssystems

Rechenaufwand pro Iterationsschritt:
- n2 +n
Komponenten-Funktionsauswertung
- 2n3/3+O(n2)
arithmetischen Operationen
- n2 + O(n)
Speicheroperationen
17
Lösung nichtlinearer Gleichungssysteme:
WIRTSCHAFTS
INFORMATIK
Modifiziertes Newton-Verfahren

Zyklisches Aktualisieren der Jacobimatrix
- LU-Faktorisierung der Jakobimatrix nur alle n Iterationsschritte

Differenzenapproximation der Jacobimatrix
- Bestimmung einer Näherung der Jacobimatrix durch
n-dimensionale Differenzen
Fi
Fi ( x ( k )  rj e j )  Fi ( x ( k ) )
- Berechne für jeden Eintrag aus DF(x(k)): x (x(k)) 
rj
j
Möglichkeit der Wahl für rj und ej: ||F(x(k) + rjej)- F(x(k))||  F(x(k))
18
Lösung nichtlinearer Gleichungssysteme:
Parallele Implementierung des Newton-Verfahrens
WIRTSCHAFTS
INFORMATIK
- Verwendung des Ergebnisvektors des k-ten Iterationsschrittes als
Datum bei der Berechnung des nächsten Iterationsschrittes
 die Iterationen müssen nacheinender durchgeführt werden

Teilaufgaben pro Schritt:
-
Auswertung der Funktion F
Berechnung der Jacobimatrix
Durchführung der Gauß-Elimination
Berechnung des nächsten Approximationsvektors
Kontrolle der Konvergenz des Verfahrens mit Bestimmung der
Norm des Korrekturterms
19
Lösung nichtlinearer Gleichungssysteme:
WIRTSCHAFTS
INFORMATIK
Parallele Implementierung des Newton-Verfahrens
- Parallelisierung der Teilaufgaben des Iterationsschrittes unter
Beachtung der Datenabhängigkeiten

Datenabhängigkeit in der Newton-Iteration:
x(k)
x(k+1)
x(k)
x(0)
x(final)
x(k)
funktion
F(x(k))
jacobian
DF(x(k))
gauss
F(x(k))
w(k)
||w||
update
norm
w(k)
x(k+1)
20
Lösung nichtlinearer Gleichungssysteme:
WIRTSCHAFTS
INFORMATIK
Parallele Implementierung des Newton-Verfahrens

Bei der parallelen Ausführung auf eine gemeinsame
Datenverteilung achten

Gauß-Elimination verursacht den meisten Rechenaufwand
 Datenverteilung bzgl. Gauß-Elimination optimieren

Durchführung der Gauß-Elimination auf mehreren
Prozessoren:
- zeilenzyklische Berechnung
- gesamtzyklische Berechnung
21
Lösung nichtlinearer Gleichungssysteme:
WIRTSCHAFTS
INFORMATIK
Parallele zeilenzyklische Implementierung
- Verteilung der Jacobimatrix zyklisch auf die vorhandenen
Prozessoren
 Berechnung der Jacobimatrix in der entsprechenden
Verteilung
- Approximation der Jacobimatrix durch:
Fi
x j

(x(k)) 
Fi ( x ( k )  rj e j )  Fi ( x ( k ) )
rj
Berechnung der Jacobimatrix:
- Ein Prozessor Pq speichert und berechnet alle Zeilen i mit q = ((i-1)
mod p) +1  maximal n / p  Zeilen
- Vektor x(k) wird repliziert gehalten  keine Kommunikation
- Gesamtaufwand: T1(n,p)= n / p (n+1) Teval(F)
22
Lösung nichtlinearer Gleichungssysteme:
WIRTSCHAFTS
INFORMATIK

Parallele zeilenzyklische Implementierung
Durchführung der Gauß-Elimination
- Zeilenzyklische Ablage der Jacobimatrix
- Zeilenzyklische Ablage der rechten Seite des zu lösenden
Gleichungssystems
 zeilenzyklischen Variante der Gauß-Elimination ohne
Umverteilung der Daten
a11
. . . . a1n b1
an1
. . . . ann bn
- Ein Prozessor speichert die
benötigten Zeilen der Jacobimatrix und
den entsprechenden Funktionswert ab
23
Lösung nichtlinearer Gleichungssysteme:
WIRTSCHAFTS
INFORMATIK

Parallele zeilenzyklische Implementierung
Berechnung des neuen Iterationsvektors:
- Replizierte Ablage des Iterationsvektors x(k) der Newton-Iteration
 die Prozessoren führen die Berechnung
ohne
Kommunikation durch

Jeder Prozessor p berechnet:
- Werte der gespeicherten Funktion
- Zugehörige Zeilen der Jacobimatrix
- Zugehörige Werte des Vektors (k)
- Zugehörige Werte des Vektors x(k+1)
- Zugehörige Komponenten der Norm ||(k)||
24
Lösung nichtlinearer Gleichungssysteme:
WIRTSCHAFTS
INFORMATIK
Parallele zeilenzyklische Implementierung
double *newton_zyklisch (double *F( ))
{
double *x_neu, *x_alt, *temp, *y, f[MAX_SIZE], fg[MIN_SIZE] ;
int i, j ;
x_neu = x_buf1; x_old= x_buf2;
initialize (x_neu);
do { temp=x_neu ; x_neu= x_alt ; x_alt=temp ;
for (i=me; i<n; i+=p) {
fg[ i ] = -F(i, x_alt);
for (j=0; i<n; i++) {
x_alt[ j ] += r[ j ];
f [ j ] = F(i, x_alt);
x_alt[ j ] - = r[ j ];
DF[ i ][ j ] = ( fg[ i ] + f [ j ] ) /r [ j ];
}
}
y = gauss_zyklisch (DF, fg);
for ( j=0 ; j<n; j++ )
x_neu[ j ] = x_alt[ j ] + y[ j ];
}
while (norm(x_alt, x_neu ) > (1-L) /L );
return x_neu ; }

Berechnung der Jacobimatrix
zeilenzyklische Gauß-Elimination
Berechnung des neuen Iterationsvektors
Überprüfung des Abbruchkriteriums
25
Lösung nichtlinearer Gleichungssysteme:
WIRTSCHAFTS
INFORMATIK

Parallele gesamtzyklische Implementierung
Berechnung der Jacobimatrix:
- Blockzyklische schachbrettartige Datenverteilung der Matrix
1 2 3 4 5 6 7 8
1
2
3
4
5
6
7
8
P1 P2
P1 P2
P3 P4
P3 P4
P1 P2
P1 P2
P3 P4
P3 P4
Bei gleichen Anzahl der Prozessoren in
jeder Dimension berechnet ein
n n
n2

Prozessor etwa
p
p p
Einträge
- Der benötigte Iterationsvektor wird repliziert abgelegt

lokales Arbeiten mit der Funktion F
26
Lösung nichtlinearer Gleichungssysteme:
WIRTSCHAFTS
INFORMATIK
Parallele gesamtzyklische Implementierung
- Vermeidung von Kommunikation bei der Berechnung der
Jacobimatrix zwischen den Prozessoren
 Fi(x(k)) mindestens
p Mal errechnen, da sich an der
Berechnung einer Zeile der Jacobimatrix p Prozessoren
beteiligen
- Es ergibt sich der Gesamtaufwand von:
T2(n,p) = n/p( n 

p )Teval(F)
Durchführung der Gauß-Elimination:
- Allokierung der Jacobimatrix DF vergleichbar mit der
zeilenzyklischen Variante
- Eine allokierte Zeile enthält nur noch
n / p y  +1 Einträge
27
Lösung nichtlinearer Gleichungssysteme :
WIRTSCHAFTS
INFORMATIK
Vergleich der beiden Varianten

Zeilenzyklische Implementierung:
- geringere Anzahl der Funktionsauswertungen

Gesamtzyklische Implementierung:
- besseres Kommunikationsverhalten der Gauß-Elimination

Wahl abhängig davon, welcher der beiden Aspekte
überwiegt
- Auswertungsaufwand der Funktion F
 Zeilenzyklische Implementierung
- Kommunikationsverhalten der Zielmaschine
 Gesamtzyklische Implementierung
28
Zusammenfassung
WIRTSCHAFTS
INFORMATIK





Vielzahl von unterschiedlichen Iterationsverfahren
Beurteilung anhand des Effizienzvergleich
- Anzahl der Iterationsschritte
- Rechenaufwand pro Iterationsschritt
Bisektionsverfahren:
- für skalaren Fall
- einfaches Verfahren mit globaler, lineare Konvergenz
Newton-Verfahren:
- für skalaren und auch mehrdimensionalen Fall
- quadratische, lokale Konvergenz
Parallele Realisierung:
- Verteilung des Berechnungsaufwands auf mehrere Prozessoren
29
WIRTSCHAFTS
INFORMATIK
Herzlichen Dank
für Ihre Aufmerksamkeit!
Noch Fragen?
30
Herunterladen