213 50 2MB
German Pages 204 Year 2019
Ulrich Grebhofer Numerische Verfahren
Weitere empfehlenswerte Titel Numerische Mathematik 1. Eine algorithmisch orientierte Einführung Peter Deuflhard, Andreas Hohmann, 2018 ISBN 978-3-11-061421-3, e-ISBN (PDF) 978-3-11-061432-9, e-ISBN (EPUB) 978-3-11-061435-0
Medientechnisches Wissen. Band 2: Informatik, Programmieren, Kybernetik Stefan Höltgen (Hrsg.), 2018 ISBN 978-3-11-049624-6, e-ISBN (PDF) 978-3-11-049625-3, e-ISBN (EPUB) 978-3-11-049358-0 C-Programmieren in 10 Tagen. Eine Einführung für Naturwissenschaftler und Ingenieure Jan Peter Gehrke, Patrick Köberle, Christoph Tenten, 2019 ISBN 978-3-11-048512-7, e-ISBN (PDF) 978-3-11-048629-2, e-ISBN (EPUB) 978-3-11-049476-1 Numerik gewöhnlicher Differentialgleichungen. Band 1: Anfangswertprobleme und lineare Randwertprobleme Martin Hermann, 2017 ISBN 978-3-11-050036-3, e-ISBN (PDF) 978-3-11-049888-2, e-ISBN (EPUB) 978-3-11-049773-1 Numerik gewöhnlicher Differentialgleichungen. Band 2: Nichtlineare Randwertprobleme Martin Hermann, 2018 ISBN 978-3-11-051488-9, e-ISBN (PDF) 978-3-11-051558-9, e-ISBN (EPUB) 978-3-11-051496-4
Ulrich Grebhofer
Numerische Verfahren | zur Lösung großer linearer Gleichungssysteme
Author Dr.-Ing. Ulrich Grebhofer Bochum
ISBN 978-3-11-064362-6 e-ISBN (PDF) 978-3-11-064417-3 e-ISBN (EPUB) 978-3-11-064433-3 Library of Congress Control Number: 2019947119 Bibliografische Information der Deutschen Nationalbibliothek Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.dnb.de abrufbar. © 2019 Walter de Gruyter GmbH, Berlin/Boston Umschlaggestaltung: monsitj/iStock/Getty Images Plus Satz: le-tex publishing services GmbH, Leipzig Druck und Bindung: CPI books GmbH, Leck www.degruyter.com
| Für meine Eltern Margot und Walter
Vorwort In Anbetracht geradezu der Überflutung des Büchermarktes mit neuen Druckerzeug nissen stellt sich mit Berechtigung die Frage, weshalb nun auch noch ein weiteres Buch über lineare Gleichungssysteme erscheint. Zu diesem Teilbereich der Mathema tik gibt es bereits sehr gute Literatur, welche dieses Thema ausführlich behandelt (sie he die Literaturverweise im Anhang dieses Buches). Sie richtet sich vorrangig an Stu dierende und Fachleute, die sich exklusiv mit der mathematischen Theorie beschäfti gen und die daher mit der Denk- und Schreibweise der modernen Mathematik bestens vertraut sind. Da die Mengentheorie und ihre Symbolik Einzug in sämtliche anderen Teildisziplinen der Mathematik gehalten hat, hat die Darstellung mathematischer Zu sammenhänge in allen Bereichen der Mathematik, und das betrifft auch die Theorie der linearen Gleichungssysteme, eine schon recht abstrakte Form angenommen. Dies erschwert denjenigen, die die Mathematik lediglich als Werkzeug für die Lösung der in Wirtschaft und Technik gestellten Aufgaben benötigen, den Zugang zu dem Thema in nicht unerheblichem Maße. Wie ich in meinen Vorlesungen feststellen konnte, die ich zu Beginn der 1980er Jahre an der Ruhr-Universität Bochum und an der TU Wien in ingenieurwissenschaftlichen Fakultäten gehalten habe, besteht gerade bei der Aus bildung in praxisnahen und anwendungsbezogenen Fächern die Gefahr, dass durch eine stark abstrahierte Darstellung der theoretischen Grundlagen häufig der Blick für das eigentliche Problem und seine Lösung verstellt oder zumindest erschwert wird. Die als Alternative gern genutzte Vorgehensweise, mathematische Lösungswege nach dem Muster von „Kochrezepten“ zu suchen, führt meistens allerdings auch nicht zum Ziel und verhindert kreative Lösungsansätze und Innovationen auf wissenschaftli chem Neuland. Gerade bei komplexen naturwissenschaftlichen und technischen Auf gaben, die sich nur mit ausgefeilten mathematischen Methoden lösen lassen, wird den Voraussetzungen und Rahmenbedingungen für das jeweils verwendete mathe matische Verfahren häufig nicht genügend Beachtung geschenkt, so dass entweder das Verfahren versagt oder die Interpretation der Ergebnisse fehlerhaft ist und die Re sultate letztlich falsch und unbrauchbar sind. Die Vermeidung solcher elementaren Fehler setzt jedoch tiefergehende Kenntnisse über die mathematischen Zusammen hänge voraus. Es ist daher ein Beweggrund für dieses Buch gewesen, eine Brücke zwi schen der abstrakten mathematischen Theorie und der Umsetzung der Theorie bei praxisnahen Aufgabenstellungen zu schlagen. Hierbei ist allerdings ein Kompromiss zwischen der Vollständigkeit der mathematischen Theorie, für die eine stringente und alle Singularitäten umfassende Beweisführung eine Grundvoraussetzung ist, und den für die problemorientierte Umsetzung erforderlichen bzw. relevanten und hierauf be schränkten Grundlagen für die jeweiligen mathematischen Verfahren einzugehen. In diesem Sinn wird jeder Gedanke Schritt für Schritt entwickelt, wobei jede Aussage in logischer Konsequenz aus vorangehenden Überlegungen hergeleitet wird. Hierdurch lässt sich die Klarheit und Übersichtlichkeit in der Darstellung der Herleitungen und https://doi.org/10.1515/9783110644173-201
VIII | Vorwort
Beweise verbessern und die Zusammenhänge zwischen den einzelnen Verfahren so wie die unterschiedlichen Rahmenbedingungen und Grenzen für ihre Anwendbar keit werden so deutlicher erkennbar. Ferner wird auf eine lückenlose Stringenz bei den Ansätzen und Folgerungen geachtet. Durch eine weniger abstrakte Darstellungs form ist die Verständlichkeit für mathematisch interessierte, aber mit der Schreibwei se der modernen Mathematik nicht so vertraute Leser größer. So wird für ein besseres Verständnis auf die Verwendung allgemeiner und besonders abstrakter Begriffe wie z. B. auf eine auf jedem Prä-Hilbert-Raum erklärte Norm ‖x‖ verzichtet, wenn sie sich für den konkreten Einzelfall durch anschaulichere Begriffe aus der Schulmathema tik – das wäre hier die Wurzel aus dem Skalarprodukt bzw. die Länge des Vektors |x| – ersetzen lassen. Zur Verbesserung der Übersichtlichkeit und leichteren Unterschei dung von Skalaren werden Mehrkomponentengrößen wie Vektoren und Matrizen mit unterstrichenen Buchstaben und im Fall, dass die Komponentenanzahl für die mathe matischen Überlegungen von Belang sind, auch mit ihren Dimensionen gekennzeich net. Somit wird die in der Mengentheorie sonst etwas umständlichere Schreibweise umgangen und der Blick wegen der komprimierten Darstellung unmittelbar auf die relevanten Größen gerichtet. In der dem ersten Kapitel vorangestellten Nomenklatur werden alle neuen, von den Konventionen abweichenden Bezeichnungen zusammen gestellt. Die mathematischen Grundlagen für die behandelten Verfahren werden in einfa cher, leicht verständlicher Schreibweise dargelegt und bauen auf nur wenigen mathe matischen Grundkenntnissen auf, die z. B. bei den Ingenieurwissenschaften bereits in den ersten Semestern vermittelt werden. Das erleichtert praxisorientierten Anwen dern den Zugang zu dem ansonsten recht abstrakten Part dieses Themenkomplexes. Zudem werden durch die Abfolge der Herleitungen, die zum Teil auf bereits voran gehenden Herleitungen aufbauen, die Gemeinsamkeiten und Unterschiede zwischen den Verfahren und so auch die jeweiligen Rahmenbedingungen für ihre Einsetzbar keit deutlicher. Die Umsetzung der Verfahren in Softwarefunktionen, die zu einer Pro grammbibliothek zusammengestellt werden, erfolgt in der Programmiersprache C++, welche heute neben Java und C# am meisten verbreitet ist und bei technischen An wendungen häufig zum Einsatz kommt. Die in dem Buch behandelten Verfahren dienen der Lösung von linearen Glei chungssystemen, wobei der Einsatz von direkten Verfahren auf Systeme mit ver gleichsweise wenigen Unbekannten begrenzt ist. Solche Systeme werden der Voll ständigkeit halber auch thematisiert, jedoch stehen im Fokus dieses Buches Systeme mit einer sehr großen Anzahl an Gleichungen, die sich in der Regel nicht mit einem direkten Verfahren auflösen lassen. Die hierfür zum Einsatz kommenden iterativen Verfahren stehen im Mittelpunkt der Ausführungen, wobei das Hauptaugenmerk auf die Krylov-Unterraum-Verfahren gerichtet ist, welche historisch betrachtet zu den letzten neu entwickelten Verfahren und somit zu den modernsten Methoden zäh len. Sicherlich trifft dieses auch auf die sogenannten Mehrgitterverfahren zu, welche auf der Splitting-Methode aufbauen. Da die Anwendung solcher Gitterverfahren zu
Vorwort
| IX
nächst auf spezielle Systemmatrizen beschränkt ist, wie sie z. B. bei der Aufbereitung von partiellen Differentialgleichungen für die numerische Lösung auftreten, werden sie in diesem Buch nicht behandelt. Bochum, im März 2019
Ulrich Grebhofer
Inhalt Vorwort | VII Nomenklatur | XIII 1
Vektorräume und der Krylov-Raum als Spezialfall | 1
2
Lösung einer linearen Matrizengleichung als Optimierungsaufgabe | 3
3
Basissysteme in Krylov-Unterräumen | 7
4 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8
Lösung einer linearen Matrizengleichung mit direkten Verfahren | 19 Gauß’scher Algorithmus | 19 Cholesky-Verfahren | 21 QR-Zerlegung nach Gram-Schmidt | 23 QR-Zerlegung nach Givens | 26 Householder-Algorithmus | 29 Takahashi-Verfahren | 32 Zerlegung von Tridiagonalmatrizen | 34 Pivotisierung | 35
5
5.7 5.8
Lösung einer linearen Matrizengleichung mit Krylov-Unterraum-Verfahren | 37 Das Generalized-Minimal-Residual-Verfahren (GMRES-Verfahren) | 37 Das Bi-Conjugate-Gradient-Verfahren (BiCG-Verfahren) | 39 Das Verfahren der konjugierten Gradienten (CG-Verfahren) | 44 Das Conjugate-Gradient-Squared-Verfahren (CGS-Verfahren) | 45 Das Bi-Conjugate-Gradient-Stabilized-Verfahren (BiCGSTAB-Verfahren) | 47 Das Transpose-Free-Quasi-Minimal-Residual-Verfahren (TFQMR-Verfahren) | 51 Das QMRCGSTAB-Verfahren | 59 Ergänzungen zu den Krylov-Unterraum-Verfahren | 63
6
Lösung einer linearen Matrizengleichung mit der Splitting-Methode | 67
7 7.1 7.2 7.3 7.4
Konvergenzverhalten von iterativen Lösungsverfahren | 71 Banach’scher Fixpunktsatz | 71 Normen, Spektralradius und Konditionszahl | 73 Konvergenz von Splitting-Verfahren | 78 Konvergenz von Krylov-Unterraum-Verfahren (GMRES-Verfahren) | 85
5.1 5.2 5.3 5.4 5.5 5.6
XII | Inhalt
8 8.1 8.2 8.3 8.4 8.5 8.6 8.7
Präkonditionierung | 89 Die Transponierte der Systemmatrix als Präkonditionierer | 90 Skalierungen als Präkonditionierer | 91 Polynomiale Präkonditionierer | 92 Präkonditionierer auf Basis unvollständiger Zerlegung | 94 Präkonditionierung bei Splitting-Verfahren | 97 Präkonditionierung beim CG-Verfahren | 99 Präkonditionierung beim BiCGSTAB-Verfahren | 100
9 9.1 9.2
Vergleich der Verfahren | 103 Laufzeit | 103 Speicherbedarf | 110
10 10.1 10.2 10.3
Spezielle Problemlösungen | 115 Lineare Differentialgleichungen | 115 Partielle Differentialgleichungen | 120 Fehlerausgleichsrechnung | 127
11
Funktionsbibliothek in C++ | 129
Anhang | 183 Quellennachweise und Literaturverzeichnis | 187 Stichwortverzeichnis | 189
Nomenklatur Skalare Größen: Bezeichnung mit großen und kleinen lateinischen und griechischen Buchstaben. Komplement einer komplexen Zahl a: a = R(a) − iI(a) Kronecker-Delta: δjk = 1 für j = k
und
δjk = 0 für j ≠ k
Zeigergrößen (Vektoren): Bezeichnung mit kleinen lateinischen und griechischen Buchstaben mit Unterstrich: a Vektorkomponente: (a)k = ak Spaltendarstellung: a1 [.] [n] ] a=[ [ .. ] = a [an ] Zeilendarstellung (transponierter Vektor): aT = [a1
...
an
]
Skalarprodukt: n
n
(a, b)2 = ∑ ak ⋅ bk ;
für reelle Vektoren : bT ⋅ a = ∑ ak ⋅ bk
k=1
k=1
Einheitsvektor: 1 [0] [ ] ] e1 = [ [ .. ] , d. h. (ej )k = δjk [.] [0] Vektorlänge (Betrag eines reellen Vektors): n
|a| = √ ∑ a2k k=1 https://doi.org/10.1515/9783110644173-203
XIV | Nomenklatur
Feldgrößen (Matrizen): Bezeichnung mit großen lateinischen und griechischen Buchstaben mit Unterstrich: A Matrixelement: (A)jk = ajk Felddarstellung: a11 [ . A=[ [ .. [am1
⋅⋅⋅ .. . ⋅⋅⋅
Einheitsmatrix:
a1n .. ] [m,n] ] . ]=A amn ]
1 [. [ I = [ .. [0
⋅⋅⋅ .. . ⋅⋅⋅
0 .. ] ] .] 1]
0 [. 0=[ [ .. [0
⋅⋅⋅ .. . ⋅⋅⋅
0 .. ] ] .] 0]
Nullmatrix:
Transponierte Matrix (reelle Matrixelemente): a11 [ . [ A = [ .. [a1n T
⋅⋅⋅ .. . ⋅⋅⋅
Determinante einer Matrix: det(A) = |A|
am1 .. ] ] . ] amn ]
1 Vektorräume und der Krylov-Raum als Spezialfall Wenn eine Matrix A mit der Dimension n ⋅ n, also eine Matrix A[n,n] , diagonalähnlich ist und s ≤ n verschiedene (bei s < n teilweise mehrfache) Eigenwerte aufweist, kann ein Vektorsystem mit folgenden Eigenschaften errichtet werden [1]: [n]
[n]
z k = A[n,n] ⋅ zk−1 = Ak ⋅ z0
mit 1 ≤ k ≤ s ≤ n .
(1.1)
Die Vektoren zj und z k hierbei sind paarweise linear unabhängig und spannen für j, k ≤ m ≤ s ≤ n den m-dimensionalen Krylov-Raum span{A ⋅ z 0 , . . . , Am ⋅ z 0 } = K m auf. Definiert man die Basisvektoren m
vk = ∑ cik ⋅ Ai z0 = Pm (A)z 0 ,
(1.2)
i=1
wobei Pm (A) ein Matrizenpolynom m-ten Grades ist, derart, dass alle vj und vk paar weise linear unabhängig sind, wobei wiederum j, k ≤ m ≤ s ≤ n gilt, sind alle hierauf aufgebauten Vektoren m
m
m
z = ∑ α k vk = ∑ ( ∑ α k ⋅ cik ) ⋅ Ai z0 k=1
i=1
(1.3)
k=1
ebenfalls Vektoren des m-dimensionalen Krylov-Raums. Orthogonale Vektoren sind linear unabhängig [2]. Wenn zusätzlich ihre Länge auf 1 normiert wird, erhält man ein orthonormales Vektorsystem, das sich als Raumbasis besonders eignet. Diese Forderung führt für die Basisvektoren zu der Bedingung (vTj ⋅ vk ) = δjk m
bzw.
(1.4)
m
z T0 ( ∑ ∑ cpj ⋅ cqk ⋅ ApT Aq ) z 0 = δjk
für
1 ≤ j, k ≤ m .
(1.5)
p=1 q=1
Hiermit stehen m2 Gleichungen zur Bestimmung der m2 Unbekannten cjk zur Verfü gung. Die besondere Eigenschaft eines Vektors in einem Krylov-Raum ist charakterisiert durch m+1
m
A ⋅ z = ∑ ( ∑ α k ⋅ c(i−1)k ) ⋅ Ai z0 , i=2
(1.6)
k=1
d. h., der Vektor A ⋅ z ist ebenfalls ein Vektor des Krylov-Raums mit der Dimension m. Dieser unterscheidet sich allerdings in zwei Basisvektoren von dem m-dimensionalen Krylov-Raum, zu dem z gehört. Beide m-dimensionalen Krylov-Räume sind Unterräu me des gesamten Vektorraums Rn , dem z0 angehört. Die beiden Vektoren z und A ⋅ z gehören zu einem (m + 1)-dimensionalen Krylov-Unterraum. Unterstellt man m < n und ist n
z[n] = ∑ α k vk k=1 https://doi.org/10.1515/9783110644173-001
2 | 1 Vektorräume und der Krylov-Raum als Spezialfall
ein Vektor in einem n-dimensionalen Raum, kann er als Linearkombination m
n
k=1
k=m+1
z [n] = ∑ α k vk + ∑ α k vk = ẑ
[n]
+ ∆z [n]
(1.7)
[n] auf den dargestellt werden. Hierin ist ẑ[n] = ∑m k=1 α k vk eine Projektion des Vektors z n m [n] m-dimensionalen Unterraum R . Der Differenzvektor ∆z = ∑k=m+1 α k vk gehört dem Unterraum Rn−m an, welcher bei Erfüllung von (1.4) bzw. (1.5) orthogonal zum Unter raum Rm ist. Mit der Festlegung cik = 0 für i > k kann für (1.2) auch geschrieben werden: k
vk = ∑ cik ⋅ Ai z0 = Pk (A)z 0 .
(1.8)
i=1
Hierbei ist jeder Basisvektor vk ∈ K k also Element eines Krylov-Unterraums, der von der Dimension k ist. Da sich somit alle Basisvektoren in unterschiedlichen Unterräu men befinden, sind sie linear unabhängig, was auch der Forderung an ihre Grundei genschaften entspricht. Die Wahl des Ausgangsvektors z 0 ist völlig frei und kann z. B. mit dem im nächsten Kapitel eingeführten Startvektor x0 in Beziehung gesetzt werden: z0 = A−1 b − x0 = A−1 (b − A x0 ) = A−1 r0 .
(1.9)
Wie sich später zeigen wird, stellt z 0 die Differenz zwischen dem Startvektor und dem exakten Lösungsvektor x der linearen Matrizengleichung A x = b dar. Wegen Ak z0 = Ak−1 r 0 gilt dann für den m-dimensionalen Krylov-Unterraum: span{r0 , A r0 , . . . , Am−1 r0 } = K m . Einsetzen von (1.9) in (1.8) führt zur Definitionsgleichung eines Basisvektors im K k : k
k−1
vk = ∑ cik ⋅ Ai−1 r0 = ∑ c(i+1)k ⋅ Ai r0 = Pk−1 (A)r 0 . i=1
(1.10)
i=0
Aus (1.3) folgt damit für einen beliebigen Vektor im m-dimensionalen Krylov-Unter raum: m
m−1
z = ∑ α k Pk−1 (A)r0 = ∑ α k+1 Pk (A)r0 . k=1
(1.11)
k=0
Setzt sich ein Vektor aus einer Summe gemäß k
z = A vk − ∑ γi vi
für k > 0 ,
wobei v1 = c11 ⋅ A z 0 = c11 ⋅ r0
ist ,
(1.12)
i=1
zusammen, kann bei Verwendung von (1.10) geschrieben werden: k
k
i
k+1
z = ∑ cjk Aj+1 z0 − ∑ ∑ γi cji Aj z0 = ∑ cj(k+1) Aj z0 j=1
i=1 j=1
mit c(k+1)(k+1) = ckk .
j=1
Damit ist z ∈ K (k+1) also ein Element des (k + 1)-dimensionalen Krylov-Raums.
(1.13)
2 Lösung einer linearen Matrizengleichung als Optimierungsaufgabe Gegeben sei ein lineares Gleichungssystem von n Gleichungen für n Unbekannte x1 bis xn , das in Form einer Matrizengleichung A ⋅ x = b dargestellt wird. Es wird eine reguläre, reelle Matrix mit n verschiedenen Eigenwerten unterstellt. Das Lösungsver fahren erfolgt in iterativen Schritten, wobei von einer beliebig gewählten Anfangslö sung x0 ausgehend in jedem, hier z. B. im m-ten, Schritt ein neuer Näherungsvektor xm bestimmt wird, für den der Residuenvektor r m = b − A ⋅ xm
(2.1)
vom Betrag kleiner wird. Bei dem Betrag 0 für das Residuum entspricht xm der exakten Lösung. Die Minimierung des Residuumbetrags von r(x) = b−A⋅x kann über 2 Ansätze erfolgen: Q1 (x) = r(x)T ⋅ r(x) → Min, 1 2. Q2 (x) = xT ⋅ A x − xT ⋅ b → Min (Vor.: A positiv definit, symmetr.). 2 1.
(2.2) (2.3)
Während der Ansatz 1 für Q1 offensichtlich ist, ergibt sich der Ansatz 2 für Q2 bei einer positiv definiten Matrix aus folgendem Gedankengang: Der Gradient der quadratischen Form Q2 (x) ist im Extremalpunkt xmin gleich 0, also gemäß [3] und [4]: ∇Q2 (x) = A x − b = −r(x) , ∇Q2 (xmin ) = 0
⇒
r(xmin ) = 0
und A ⋅ xmin = b .
(2.4) (2.5)
Die exakte Lösung der Matrizengleichung entspricht also dem Extremalpunkt xmin . Da die Matrix A positiv definit ist, ist stets Q2 ≥ 0 und somit der Extremalpunkt ein Minimum. Addiert man zur rechten Seite von (2.3) den konstanten Wert bT ⋅ A−1 b/2, wirkt sich dies nicht auf die Lage des Minimums aus. Durch Umformung der Gleichung ergibt sich 1 T 1 1 1 x ⋅ A x − xT ⋅ b + bT ⋅ A−1 b = (A x − b)T ⋅ x − bT ⋅ (x − A−1 b) 2 2 2 2 1 1 T −1 T −1 = (A x − b) ⋅ A (A x − b) = r(x) ⋅ A r(x) 2 2
Q3 (x) =
(2.6)
mit ∇Q3 (x) = ∇Q2 (x) = −r(x) .
(2.7)
Für xm ≠ xmin gilt also Qk (xm ) > Qk (xmin ) (k = 1, 2, 3). Bei Anwendung eines KrylovUnterraum-Verfahrens ist der Differenzvektor xm − x0 Element eines m-dimensionalen Unterraums. Für kleine m ist mit xm nur selten das absolute Minimum der quadrati schen Form schon erreicht. Allerdings ist in der Menge aller denkbaren Näherungslö https://doi.org/10.1515/9783110644173-002
4 | 2 Lösung einer linearen Matrizengleichung als Optimierungsaufgabe sungen xm ein Vektor xm enthalten, für den Qk (xm ) einen vergleichsweise niedrigsten Wert annimmt. Man kann in diesem Fall von einem relativen Minimum auf K m spre chen, für das formal geschrieben werden kann: Qk (xm ) < Qk (xm + λm ⋅ y ) = Qk (xm ) m
mit beliebigem
y ∈ K m
und beliebigem
m
λm ≠ 0 .
Für das Auffinden des absoluten Minimums muss das Suchgebiet auf einen KrylovUnterraum mit mindestens der Dimension m + 1 ausgedehnt werden. Ein Suchvektor y mit der Eigenschaft y ∈ K m+1 soll hierbei die folgende Ungleichung erfüllen: m+1
Qk (xmin ) ≤ Qk (xm+1 ) = Qk (xm + λm ⋅ y
m+1
) < Qk (xm ) .
(2.8)
Geht man von der Annahme aus, dass der exakte Lösungsvektor, also der Vektor xmin , für das absolute Minimum der quadratischen Form Qk ein Vektor des m-dimensiona eingesetzt len Krylov-Raums K m ist, kann für den Suchvektor y anstelle von y m m+1 werden. Die quadratische Form Qk ist hierbei eine Funktion auch von λm und muss im Extremalpunkt der Bedingung d d Qk (xm+1 ) = Qk (xm + λm ⋅ y ) = 0 m dλm dλm
(2.9)
genügen. Die Auflösung der Bedingungsgleichung nach λm liefert eine Aussage, wel cher Zusammenhang zwischen λm und y im Extremalpunkt besteht, aber auch nicht m mehr, da bis hierher y noch völlig beliebig festgesetzt werden kann und der Korrek m turvektor λm y nicht zwingend zum Extremum führt. Neben der zutreffenden Annah m me xmin ∈ K m ist also auch die Festlegung der richtigen Suchrichtung, also ein ge eigneter Suchvektor y , wesentliche Voraussetzung für das Auffinden des Extremal m punktes. Sind diese Bedingungen erfüllt, folgt aus (2.9) für das Optimum (Extremum) von Qk und somit für den Lösungsvektor xmin : Im Fall k = 1: d d r(x + λm ⋅ y )T ⋅ r(xm + λm ⋅ y ) = 2r(xm + λm ⋅ y )T ⋅ r(x + λm ⋅ y ) = 0 m m m m dλm m dλm m d dQ1 = 2r(xm+1 )T ⋅ (b − A xm − λm ⋅ A y ) = −2rTm+1 ⋅ A y = 0 . (2.10) ⇒ m m dλm dλm Die Erfüllung von (2.9) führt zu rTm+1 ⋅ A y = 0 , d. h. m
rm+1 ⊥A y . m
(2.11)
Setzt man rm+1 = rm − λm A y ein, ergibt sich hieraus m
λm =
rTm ⋅ A y
m
(A y )T (A y ) m
m
.
(2.12)
2 Lösung einer linearen Matrizengleichung als Optimierungsaufgabe |
5
Aus (2.10) folgt: d2 Q1 = 2 (A y )T (A y ) ≥ 0 . m m dλ2m
(2.13)
Im Fall k = 2 (für symmetrische, positiv definite Matrizen): d 1 ( (x + λm ⋅ y )T ⋅ A(xm + λm ⋅ y ) − (xm + λm ⋅ y )T ⋅ b) m m m dλm 2 m = yT ⋅ A(xm + λm ⋅ y ) − yT ⋅ b m
⇒
m
m
dQ2 = yT ⋅ (A xm+1 − b) = −yT ⋅ rm+1 = λm ⋅ (yT ⋅ A y ) − yT ⋅ rm . m m m m m dλm
(2.14)
Die Erfüllung von (2.9) führt zu rTm+1 ⋅ y = 0 ,
rm+1 ⊥y .
d. h.
m
m
(2.15)
Bei Anwendung von (2.9) und Auflösung von (2.14) nach λm ergibt sich λm =
rTm ⋅ y
m
yT ⋅ (A y ) m
.
(2.16)
m
Aus (2.14) folgt, da A laut Voraussetzung positiv definit ist: d2 Q2 = yT ⋅ A y ≥ 0 . m m dλ2m
(2.17)
Nach (2.13) und (2.17) ist die quadratische Form Qk von konvexer Gestalt, d. h., dass es nur einen Extremalpunkt, also ein einziges, absolutes Minimum mit dem Lösungs vektor xmin gibt.
3 Basissysteme in Krylov-Unterräumen Ungleichung (2.8) legt folgenden Ansatz für eine Rekursionsgleichung nahe: m
[m] xm = xm−1 + α m vm = x0 + ∑ α k vk = x0 + V [n,m] ⋅ αm m
(m > 0) ,
(3.1)
k=1
worin alle vk Basisvektoren darstellen, die hier jeweils einem k-dimensionalen Raum angehören. Unterstellt man, dass A y ein Vektor ebenfalls in einem m-dimensionalen m−1 Raum ist, der von den Basisvektoren wk (1 ≤ k ≤ m) aufgespannt wird, kann hierfür geschrieben werden: m
Ay
m−1
= ∑ β k wk = W [n,m] ⋅ β [m] . m
(3.2)
m
k=1
Die Bedingung (2.11) für eine optimale Suchrichtung führt somit zu rm ⊥wk für 1 ≤ k ≤ m, also für m > 0 : W Tm rm = W Tm (b − A xm ) = W Tm (b − A x0 − A V m ⋅ α m ) = 0 ⇒
W Tm (b −
A x0 ) =
W Tm r0
=
W Tm A V m
⋅ αm −1
⇒ wenn W Tm A V m regulär ist, gilt α m = (W Tm A V m ) −1
und damit xm = x0 + V m (W Tm A V m )
(3.3)
W Tm r0 ,
W Tm r0 .
(3.4)
Da die Basisvektoren vk und wk linear unabhängig sind, sind V n und W n reguläre Ma trizen. Daher kann für (3.4) im Fall m = n geschrieben werden: −1
−1−1 xn = x0 + V n V −1 (W Tn ) n A
W Tn r0 = x0 + A−1 b − x0 = A−1 b .
(3.5)
Spätestens im n-ten Iterationsschritt erhält man also die exakte Lösung xn = x = A−1 b. In den vorangehenden Überlegungen wurde unterstellt, dass sowohl y als auch m Ay Vektoren in jeweils m-dimensionalen Unterräumen sind. Damit weist y gemäß m−1 m Kapitel 1 die Eigenschaft von Vektoren in einem Krylov-Raum auf. Die Spalten von V m und W m stellen damit die Basisvektoren der beiden voneinander unabhängigen, je weils m-dimensionalen Krylov-Unterräume dar. Die beiden Unterräume sind lediglich über die Orthogonalitätsbedingung (3.3) verknüpft. Es sollen im Folgenden Verfahren entwickelt werden, mit denen die Basisvektoren in iterativen Schritten so ermittelt werden, dass die für sie geforderten Eigenschaften – Orthogonalität oder zumindest lineare Unabhängigkeit – erfüllt werden. Außerdem sollen sie Krylov-Unterräume aufspannen. Ein möglicher Ansatz ist die Definition: k
zk = A vk − ∑ hik vi
für k > 0 ,
wobei
v1 = c11 ⋅ A z 0
und vi ∈ K (i)
(i ≤ k) .
i=1
(3.6) https://doi.org/10.1515/9783110644173-003
8 | 3 Basissysteme in Krylov-Unterräumen Gemäß (1.12) gilt zk ∈ K (k+1) . Setzt man vk+1 ∼ zk , ist also auch vk+1 ∈ K (k+1) . Mit zk 1 h(k+1)k = |zk | , vk+1 = und c11 = h(k+1)k |A z 0 |
(3.7)
erhält man normierte Basisvektoren der Länge 1. Durch vollständige Induktion kann nun bewiesen werden, dass für hjk = vTj A vk (3.8) alle Basisvektoren orthogonal und somit linear unabhängig sind. Dazu wird zunächst angenommen, dass alle vi für i ≤ k paarweise orthogonal sind, also vTj vi = δji für i, j ≤ k, k
⇒
vTj zk = vTj A vk − ∑ hik vTj vi = hjk −hjk = 0
⇒
zk ⊥vj
⇒
vk+1 ⊥vj
für j ≤ k,
i=1
d. h. also, wenn vTj vi = δji für i, j ≤ k, dann gilt auch vTj vi = δji für i, j ≤ k + 1. Wegen z1 = A v1 − h11 v1 = |z1 | ⋅ v2
⇒
vT1 A v1 − h11 vT1 v1 = |z1 | ⋅ (vT1 v2 ) = h11 − h11 = 0
gilt die Orthogonalität für k ≤ 2 und somit dann für alle nach (3.6) konstruierten Ba sisvektoren: hjk = vTj A vk ⇔ vTj vk = δjk . (3.9) Für j > k + 1 folgt aus (3.6) in Verbindung mit (3.9): k
k
vTj z k = vTj A vk − ∑ hik vTj vi = hjk − ∑ 0 . i=1
Für j > k + 1 gilt jedoch: vj ⊥vk+1
⇒
hjk = 0
i=1
vTj zk = 0, und somit für diesen Fall: für
j>k+1.
(3.10)
Bei einem m-dimensionalen Krylov-Raum können die Basisvektoren zu einer Ma [n,m] trix V m zusammengestellt werden. Für sie gilt unter Verwendung von (3.8) die Beziehung: H [m,m] = V Tm A V m m
mit
)jk = hjk (H [m,m] m
(Hessenberg-Matrix) .
(3.11)
Wegen (3.10) hat H m die Gestalt einer Dreiecksmatrix mit einer unteren Nebendiago nalen. Gleichung (3.11) inspiriert zur Festlegung Wm = Vm ,
(3.12)
xm = x0 + V m (H m )−1 V Tm r0 .
(3.13)
womit für (3.4) folgt:
3 Basissysteme in Krylov-Unterräumen
| 9
Die Erfüllung der Bedingung (2.11), in diesem Fall V Tm rm = 0, ist aufgrund der Herlei tung von xm gemäß (3.13) bzw. (3.4) aus (3.3) sichergestellt. Bei Wahl von v1 =
r0 |r0 |
(3.14)
ergibt sich wegen (3.9) V Tm r0 = |r0 | ⋅ V Tm v1 = |r0 | ⋅ e1
mit e1 = [1
0
T
0] ,
...
(3.15)
womit für (3.13) folgt: xm = x0 + |r0 | ⋅ V m (H m )−1 e1
und
α m = |r0 | (H m )−1 e1 .
(3.16)
Anstelle der aufwendigen Inversion einer beliebigen Matrix A ist zur Auflösung der li nearen Matrizengleichung nur noch die wesentlich einfachere Inversion der Fastdrei ecks-Matrix H m durchzuführen, auf deren verschiedene Verfahren im Kapitel 4 einge gangen wird. Die Matrixstruktur vereinfacht sich für symmetrische Matrizen, also wenn AT = A ist: T (3.17) H Tm = (V Tm A V m ) = V Tm AT V m = V Tm A V m = H m ⇒ hjk = hkj . Wegen (3.10) gilt dann auch hjk = 0 für j < k − 1 ,
(3.18)
d. h., dass H m eine Tridiagonalmatrix mit einer Haupt- und zwei Nebendiagonalen ist, welche im Vergleich zu Hessenberg-Matrix weitere Vorteile speziell bei der Inversion bietet. Um die Vorteile der Tridiagonalstruktur auch bei nichtsymmetrischen Matrizen nutzen zu können, werden anstelle des Ansatzes (3.6), für den auch A vk = ∑k+1 i=1 hik vi geschrieben werden kann, folgende Gleichungen zur Konstruktion von zwei Basissys temen aufgestellt: k+1
A vk = ∑ hik vi
für k > 0 mit v0 = 0 und v1 =
i=k−1
r0 , |r0 |
k+1
AT wk = ∑ hki wi i=k−1
für k > 0
mit w0 = 0
und w1 =
r0 . |r0 |
(3.19)
(3.20)
Hierbei wurde der Ansatz (3.14) für beide Systeme übernommen. In Analogie zu (3.9) wird hjk = wTj A vk für 1 ≤ j , k ≤ m (3.21) gesetzt. Es wird bewiesen, dass die Vektoren vk und wj biorthonormal sind, d. h., dass für sie gilt: wTj vk = vTj wk = δjk . (3.22)
10 | 3 Basissysteme in Krylov-Unterräumen Offensichtlich ist (3.22) für j = k = 1 zutreffend. Es bleibt mittels vollständiger Indukti on zu zeigen, dass dies auch für k + 1 und 1 ≤ j ≤ k + 1 zutrifft, wenn (3.22) für 1 ≤ j ≤ k erfüllt wird. Durch Umstellen der Gleichung (3.19) nach vk+1 und Multiplikation mit wTj erhält man wTj vk+1 = ⇒
k
1 h(k+1)k
(wTj A vk − ∑ hik wTj vi ) = i=k−1
wTj vk+1 = 0 für k − 1 ≤ j ≤ k
k
1 h(k+1)k
und wTj vk+1 =
(hjk − ∑ hik δji ) (3.23) i=k−1
hjk h(k+1)k
für j < k − 1 .
(3.24)
Durch Transponieren von (3.21) und Einsetzen von (3.20) ergibt sich für j < k − 1: j+1
j+1
hjk = vTk AT wj = vTk ⋅ ∑ hji wi = ∑ hji wTi vk i=j−1
i=j−1
j+1
= ∑ hji δik = 0 ,
da k > j + 1 ≥ i
(3.25)
i=j−1
wTj vk+1 = 0 für j ≤ k .
⇒
(3.26)
Wird nun Gleichung (3.20) nach wk+1 umgestellt und mit vTj multipliziert, erhält man vTj wk+1 =
k
1 hk(k+1)
(vTj AT wk − ∑ hki vTj wi ) = i=k−1
⇒ vTj wk+1 = 0 für k − 1 ≤ j ≤ k
k
1 hk(k+1)
und vTj wk+1 =
(hkj − ∑ hki δji ) (3.27)
hkj hk(k+1)
i=k−1
für j < k − 1 .
(3.28)
Aus (3.21) folgt mit (3.19) für j < k − 1 j+1
j+1
hkj = wTk A vj = wTk ⋅ ∑ hij vi = ∑ hij vTi wk i=j−1
i=j−1
j+1
= ∑ hij δik = 0 ,
da i ≤ j + 1 < k
(3.29)
i=j−1
⇒
vTj wk+1 = 0
für
j≤k.
(3.30)
Für j = k + 1 ergibt sich gemäß (3.21) bei Verwendung von (3.30) und (3.19) k
h(k+1)k = wTk+1 A vk = wTk+1 ⋅ (A vk − ∑ hik vi ) = h(k+1)k wTk+1 vk+1 ⇒
i=k−1 wTk+1 vk+1 = 1
(3.31)
.
Die linke Gleichung in (3.31) wird auch von h(k+1)k = 0 erfüllt. Diese Lösung bedeu tet aber, dass wk+1 ⊥A vk , und stellt damit einen Sonderfall dar, bei dem die Matrix H
3 Basissysteme in Krylov-Unterräumen
|
11
die Struktur einer Dreicksmatrix mit einer Haupt- und einer oberen Nebendiagona len aufweist. Bei der Gleichung (3.19) zur Erzeugung eines Basissystems wird jedoch vorausgesetzt, dass h(k+1)k beliebige Werte ≠ 0 annimmt, so dass diese spezielle Ein zellösung für (3.31) nicht in Betracht kommt. Mit den Gleichungen (3.26), (3.30) und (3.31) ist also bewiesen, dass die Vekto ren vk und wj biorthonormal sind. Als nächstes wird bewiesen, dass biorthonormale Vektoren linear unabhängig sind. Für die lineare Unabhängigkeit der Vektoren vk gilt die Bedingung ∑ ck vk = 0 ⇔ ck = 0 für alle k . Multiplikation der linken Gleichung mit wTj und Einsetzen von (3.22) ergibt ∑ ck ⋅ wTj vk = ∑ ck ⋅ δjk = cj = wTj ⋅ 0 = 0 ,
also cj = 0 für alle j .
Analog ist der Beweis für alle wk zu führen. So erhält man das gewünschte Resultat, dass die durch (3.19) und (3.20) generierten Basissysteme biorthonormal und daher auch linear unabhängig sind, womit sie die Grundanforderung an Basisvektoren tat sächlich erfüllen. Dass die Basisvektoren Elemente von Krylovräumen sind, kann durch vollständi ge Induktion bewiesen werden: Es wird angenommen, dass vj ∈ K (j−1) , also vj = Pj−1 (A)r 0 für 1 ≤ j ≤ k richtig ist. Dann gilt vk+1 = =
k
1
(A vk − ∑ hik vi )
h(k+1)j
i=k−1
1 h(k+1)k
⇒ vk+1 ∈ K k ,
((A − hkk ⋅ I)Pk−1 (A) − h(k−1)k Pk−2 (A)) r0 = Pk (A)r0
und somit vj ∈ K (j−1)
für
1≤j≤ k+1.
Da wegen (3.19) v1 = P0 (A)r 0 und v2 = P1 (A)r0 gilt, ist vj ∈ K (j−1) für jedes j richtig. Der Beweis für wk ist hierzu völlig analog zu führen. Mit (3.25) und (3.29) wurde gezeigt, dass hjk = 0 für j < k −1 und für j > k +1. Damit wird belegt, dass H m eine Tridiagonalmatrix ist, wenn die Konstruktion der Basisvek toren mittels (3.19) und (3.20) erfolgt. Zwischen den Elementen der Tridiagonalmatrix h(k−1)k und hk(k−1) besteht folgender Zusammenhang: Mit den Definitionen k
z vk = h(k+1)k vk+1 = A vk − ∑ hik vi ;
k
z wk = hk(k+1) wk+1 = AT wk − ∑ hki wi
i=k−1
(3.32)
i=k−1
ergibt sich wegen (3.31): zTwk zvk = (hk(k+1) wTk+1 ) (h(k+1)k vk+1 ) = hk(k+1) h(k+1)k ⇒
hk(k+1) =
1 zT z . h(k+1)k wk vk
(3.33)
12 | 3 Basissysteme in Krylov-Unterräumen
Hierin ist h(k+1)k frei wählbar. Durch die Zuweisung eines bestimmten Wertes wird auch vk+1 endgültig festgelegt. Damit aber alle Basisvektoren biorthonormal sind, muss (3.33) erfüllt werden. Damit ist die Länge von wk+1 abhängig von der Länge des Vektors vk+1 = zvk /h(k+1)k . Im Fall, dass zTwk zvk > 0 ist, bietet sich folgende Festlegung an: h(k+1)k = √zTwk zvk . Wegen (3.33) ergibt sich hierbei h(k+1)k = hk(k+1) , d. h., die Tri diagonalmatrix ist symmetrisch. Damit die Definitionsgleichung auch bei negativem Vektorprodukt genutzt werden kann, wird endgültig h(k+1)k = (zTwk z vk ) 2 festgelegt. Mit (3.33) und (3.34) erhält man für die Basisvektoren z vk zwk und wk+1 = . vk+1 = h(k+1)k hk(k+1) 1
(3.34)
(3.35)
Die Gleichungen (3.6) bis (3.18) bilden die Grundlage für den Arnoldi-Algorithmus, die Gleichungen (3.19) bis (3.31) die Grundlage für den Bi-Lanczos-Algorithmus. Beide Verfahren dienen dem Zweck, für das Matrizenprodukt in (3.4) eine möglichst günstige Struktur für die Inversion zu erzeugen, d. h. H m = W Tm A V m in Fastdreiecks- oder in Tridiagonalform zu überführen. Damit wird der Iterationsprozess effizienter, bei dem in jedem Schritt die Gleichung xm = x0 + V m (H m )−1 W Tm r0
(3.36)
neu zu berechnen ist. Die Optimierungsbedingung (2.11) bzw. die hieraus resultieren de Orthogonalitätsbedingung (3.3) wird bei dieser Iterationsgleichung erfüllt, wie dies bei der Herleitung von (3.4) gezeigt wurde. Die Optimierungsbedingung (2.2) wird aber auch direkt erfüllt, wenn mit Verwendung von (2.1), (3.1) und (3.14) die Forderung r m = b − A xm = b − A x0 − A V m ⋅ α m = r 0 − A V m ⋅ α m = 0 ⇒
A V m ⋅ α m = r 0 = |r0 | ⋅ v1
(3.37)
befriedigt wird. Erweitert man die quadratische Hessenberg-Matrix weitere Zeile mit den Zuordnungen )(m+1) m = h(m+1) m (H [m+1,m] m
um eine
)(m+1)k = 0 für k < m sowie (3.38) (H [m+1,m] m
und
)jk = (H [m,m] )jk (H [m+1,m] m m
[m,m] Hm
für j ≤ m und 1 ≤ k ≤ m ,
so gilt wegen der Konstruktionsvorschrift (3.6) für das Basissystem [n,m+1]
A vk = V m+1
⋅ [h1k ⇒
h2k
...
h(k+1)k
= A V [n,m] m
0
...
[n,m+1] V m+1 H [m+1,m] m
T
0]
für 1 ≤ k ≤ m
.
(3.39)
Einsetzen von (3.39) in (3.37) ergibt wegen (3.9) [n,m+1]
V m+1
H [m+1,m] ⋅ α m = |r0 | ⋅ v1 m
⇒
V Tm+1 V m+1 H [m+1,m] ⋅ α m = |r0 | ⋅ V Tm+1 v1 m
⇒
H [m+1,m] ⋅ α m = |r0 | ⋅ e1 m
[m+1]
.
(3.40)
3 Basissysteme in Krylov-Unterräumen
| 13
Die Auflösung nach α m verlangt nach einer geeigneten Methode für die Inversion von Matrizen mit der Struktur einer Hessenberg-Matrix oder Tridiagonalmatrix. Diesem Thema ist daher das nachfolgende Kapitel 4 gewidmet. Die im Kapitel 5 hergeleiteten Verfahren wurzeln im Wesentlichen auf Algorith men von Arnoldi und Lanczos zur Ermittlung eines Basissystems, das einen KrylovUnterraum aufspannt. Der Arnoldi-Algorithmus soll an dieser Stelle bei Verwendung obiger Gleichungen gezeigt werden: v1 :=
r0 ; |r0 |
j=0
s. (3.14)
j := j + 1 für i = 1, . . . , j hij := vTi A vj
s. (3.8)
j
z j := A vj − ∑ hij vi ;
h(j+1)j := |z j |
s. (3.6), (3.7)
i=1
h(j+1)j = 0 n vj+1 =
j zj h(j+1)j
vj+1 = 0
s. (3.7)
Ende
Arnoldi-Algorithmus Mit dem Berechnungsergebnis h(m+1) m = 0 wird der Arnoldi-Algorithmus im Iterati onsschritt j = m beendet. Werden direkt anschließend die Gleichungen (3.16) ausge wertet, spricht man von der Full Orthogonalization Method (FOM). Hierbei können sich Rundungsfehler jedoch so stark auf das Endergebnis auswirken, dass entweder der Arnoldi-Algorithmus keinen Abschluss findet oder das Residuum vom letzten Ite rationsschritt |rm | einen zulässigen Toleranzwert weiterhin überschreitet. Unter an derem führen die Rundungsfehler auch dazu, dass die Basisvektoren die Orthogona litätsbedingung nicht erfüllen. Zur Dämpfung dieses Effekts ersetzt man die innere Schleife durch z j := A vj für i = 1, . . . , j hij := vTi A vj z j := z j − hij vi Trotz dieser Maßnahmen sind immer noch inakzeptable Abweichungen von der exak ten Lösung möglich. Ein weiterer Verbesserungsversuch besteht darin, anstelle des zu
14 | 3 Basissysteme in Krylov-Unterräumen
Beginn willkürlich festgesetzten Anfangswerts für x0 nun den zuletzt berechneten Nä herungsvektor x m als Startvektor für den erneuten Durchlauf des gesamten Verfahrens heranzuziehen. Man nennt diese Variante die Restarted Version der Full Orthogona lization Method, kurzum Restarted FOM. Hierbei werden die Operationsschritte in der dargestellten Abfolge durchlaufen: Beliebige Wahl von x0 , m und ε r0 := b − A x0 |r0 | < ε
n
j
r v1 := 0 |r0 | j = 1, . . . m zj := A vj für i = 1, . . . , j hij := vTi A vj zj := zj − hij vi h(j+1)j := |zj | h(j+1)j = 0
n vj+1 :=
zj h(j+1)j
j
vj+1 := 0
α j := |r0 |(H j )−1 e1 xj := x0 + V j αj x0 := xj Restarted FOM Zur Vervollständigung des Verfahrens muss noch die Inverse von H j ermittelt werden. Beim GMRES-Verfahren in Abschnitt 5.1 wird gezeigt, wie mit Anwendung des GivensAlgorithmus das Problem gelöst werden kann. Während der Arnoldi-Algorithmus aus der Optimierungsbedingung (2.11) resul tiert, basiert das Verfahren der konjugierten Gradienten für symmetrische, positiv definite Matrizen auf der Optimierungsbedingung (2.15) und der hiermit verknüpften Beziehung (2.16). Die Suchrichtung y ist hierbei frei wählbar und kann z. B. folgen m dermaßen festgelegt werden: m−1
y = r0 ; 0
y = rm + ∑ ck ⋅ y m
k=0
k
für m > 0 .
(3.41)
3 Basissysteme in Krylov-Unterräumen
| 15
Hiermit gilt Q2 (xm+1 ) = Q2 (xm + λm ⋅ y ) ≤ Q2 (xm + λ ⋅ y ) mit λ ∈ R und λm gemäß m m (2.16). Nach (3.41) ist y ein Vektor in einem Raum, der von den vorausgehenden Such m vektoren y für k = 1, . . . , m − 1 aufgespannt wird, d. h. y ∈ U mit U = span{y , y , k m 0 1 }. Definiert man mit u einen beliebigen Vektor im Raum U, so nennt man den ...,y m−1 Vektor x optimal bezüglich eines Unterraums U ⊂ Rn , wenn Q2 (x) ≤ Q2 (x + u) für die Gesamtheit aller u erfüllt wird. Dazu muss der Unterraum über entsprechende Wahl der ck so konstruiert werden, dass lim
λ→0
d Q2 (x + λ ⋅ u) = 0 . dλ
(3.42)
Diese Vorgehensweise entspricht der in Kapitel 2 und analog zur Herleitung von (2.15) folgt aus Gleichung (3.42) die Bedingung für den Unterraum U: r⊥u
(A x − b)T ⋅ u = 0 .
bzw.
Mit y als Vektor, der ebenfalls im Unterraum U liegt, gilt für die Optimalität des Sum menvektors (x + y) in Bezug auf den Unterraum U die Bedingung (A(x + y) − b)T ⋅ u = 0. Unterstellt man, dass x optimal bezüglich U ist, folgt hieraus als Bedingung für die Optimalität des Summenvektors A y⊥u, d. h. also A y⊥y für k = 0, . . . , m − 1. Für die k Suchrichtung im m-ten Iterationsschritt bedeutet dies: yT A y = 0 für k ≠ m . k
(3.43)
m
Verwendet man diese Optimalitätsbedingung, welche auch als A-Orthogonalität be zeichnet wird, in der mit (A y ) faktorisierten Gleichung (3.41), erhält man für k ≠ m k
m−1
0 = yT A y = yT A rm + ∑ cj ⋅ yT A y = yT A rm + ck ⋅ yT A y k
m
k
j=1
⇒
ck = −
k
k
j
yT A rm k
yT A y k
.
k
k
(3.44)
k
Mit (2.16), den Rekursionsformeln xm+1 = xm + λm ⋅ y und rm+1 = rm − λm ⋅ A y so m m wie (3.41) für m + 1 bei Verwendung von (3.44) ist die Grundlage für das Verfahren der konjugierten Gradienten gegeben. Zwecks Vereinfachung der Berechnung von y m+1 können (2.16) und (3.44) noch modifiziert werden. Hierauf wird allerdings nicht wei ter eingegangen, da das Endergebnis auch auf andere Weise hergeleitet werden kann. Dieser Weg wird in Abschnitt 5.3 beschrieben. Bei symmetrischen Matrizen kann der Arnoldi-Algorithmus vereinfacht werden. Für diesen Fall ergibt sich aus (3.6) und (3.7) mit (3.17), (3.18) und (3.9) z k = h(k+1)k vk+1 = A vk −h(k−1)k vk−1 −hkk vk = A vk −h(k−1)k vk−1 −vTk (A vk − h(k−1)k vk−1 ) vk .
16 | 3 Basissysteme in Krylov-Unterräumen
Mit y = A vk − h(k−1)k vk−1 k
folgt
z k = y − (vTk y ) vk k
h(k−1)k = hk(k−1)
k
und vk+1 =
zk |z k |
sowie
und h(k+1)k = |z k | .
Diese fünf letzten Gleichungen sind Basis für den Lanczos-Algorithmus gemäß dem nächsten Ablaufdiagramm [6]. Die obigen Gleichungen können ergänzt werden um die aus (5.6) und (5.8) abge leiteten Beziehungen (s. Abschnitt 5.2) xk = xk−1 + Λk ⋅ uk
und uk =
sowie gemäß (5.9) um
1 (v − h(k−1)k ⋅ uk−1 ) ckk k
Λk = −bk(k−1) ⋅ Λk−1 .
Da im vorliegenden Fall die Matrix H k Tridiagonalstruktur besitzt und symmetrisch ist, folgt nach Abschnitt 4.7: c11 = h11 ;
bk(k−1) =
h(k−1)k c(k−1)(k−1)
;
ckk = hkk − bk(k−1) ⋅ h(k−1)k
für k > 1 .
Die Ergänzung des Lanczos-Algorithmus um diese Beziehungen führt zum DirectLanczos-Algorithmus (D-Lanczos-Algorithmus), dessen Ablauf im Blockdiagramm unten dargestellt ist [6]. v1 :=
r0 ; |r0 |
v0 := 0 ;
h10 := 0
k = 1, . . . , m y := A vk − hk(k−1) ⋅ vk−1 k
hkk := vTk y
k
y := y − hkk vk k
k
h(k+1)k := |y | k
h(k+1)k = 0
n vk+1 :=
y
k
h(k+1)k
Lanczos-Algorithmus
vk+1 := 0 Ende
j
3 Basissysteme in Krylov-Unterräumen
h10 := b10 := 0 ; Λ1 = |r0 | ; r v1 := 0 ; u0 := v0 := 0 |r0 |
k := 1
y := A vk − hk(k−1) ⋅ vk−1 k
hkk := vTk y
k
k > 1
j bk(k−1) :=
n
hk(k−1) c(k−1)(k−1)
Λk := −bk(k−1) ⋅ Λk−1 ckk := hkk − bk(k−1) ⋅ hk(k−1) 1 (v − hk(k−1) ⋅ uk−1 ) ckk k xk := xk−1 + Λk ⋅ uk uk :=
j y := y − hkk vk k
|b − A xk | > ε
k
h(k+1)k := |y | k
h(k+1)k := 0
n vk+1 :=
y
k
h(k+1)k
k := k + 1 D-Lanczos-Algorithmus
j vk+1 := 0 Ende
n
| 17
4 Lösung einer linearen Matrizengleichung mit direkten Verfahren Die in Kapitel 2 beschriebenen Ansätze zur Lösung einer linearen Matrizengleichung mittels iterativer Verfahren gehören zu den modernen Ergebnissen in diesem mathe matischen Teilgebiet. Davor wurden bereits direkte Verfahren entwickelt, wobei der Gauß-Algorithmus das älteste und bekannteste ist. Sämtliche direkten Verfahren lau fen auf eine Zerlegung der Matrix A in ein Matrizenprodukt hinaus, dessen Faktoren unitär sind oder Dreiecksform aufweisen: Ax = b
mit A = B C
⇒
Cx = y
und B y = b .
(4.1)
Ist C eine Dreiecksmatrix, in der die obere Hälfte Elemente ≠ 0 aufweist, kann der Lösungsvektor x einfach aus dem Zwischenergebnis y ermittelt werden, indem die Auflösung mit der letzten Zeile beginnt und sukzessive zu den niedrigeren Zeilen vor anschreitet (Rückwärtselimination). Auf ähnliche Weise kann zuvor der Zwischenvek tor y aus B und b ermittelt werden, wenn B beispielsweise eine untere Dreiecksma trix ist, wobei die Auflösung mit der ersten Zeile beginnt (Vorwärtselimination). Diese Matrixstruktur liegt z. B. den Algorithmen von Gauß und Cholesky zugrunde. Die Be rechnung von y ist aber auch dann unproblematisch, wenn B keine Dreiecksmatrix, sondern eine unitäre Matrix ist. In diesem Fall gilt y = BT b. Hierauf beruhende Ver fahren sind nach ihren Entwicklern Gram-Schmidt, Givens und Householder benannt. Grundsätzlich kann eine lineare Matrizengleichung mit allen direkten Verfahren kom plett gelöst werden. Die in Kapitel 3 angesprochenen iterativen Verfahren haben dem gegenüber aber den Vorteil, dass lediglich eine Nebendiagonale mittels direkter Ver fahren eliminiert werden muss. Ob ein iteratives Verfahren insgesamt effizienter, d. h. schneller und genauer, im Vergleich zu einem direkten Verfahren ist, hängt u. a. davon ab, wie aufwendig die Generierung von Basisräumen ist und wie viele Iterationsschrit te bis zu einem zufriedenstellenden Ergebnis erforderlich sind. Ein anderes Merkmal für die Effizienz ist die Anforderung an das Speichervolumen bei der Ausführung der Algorithmen auf einem Rechnersystem. Vergleichsbetrachtungen hierzu sind einem abschließenden Kapitel vorbehalten.
4.1 Gauß’scher Algorithmus Da dieser Algorithmus mit der bekannteste ist und entsprechende Würdigung in der mathematischen Literatur erfährt (s. auch [5]), soll an dieser Stelle nur auf das Wesentliche eingegangen werden. Das Gaußverfahren ist gekennzeichnet durch die Zerlegung in zwei Dreiecksmatrizen B und C entsprechend (4.1) mit folgenden Ei
https://doi.org/10.1515/9783110644173-004
20 | 4 Lösung einer linearen Matrizengleichung mit direkten Verfahren
genschaften: bjk = ckj = 0 für
1 ≤ j < k ≤ n und
bkk = 1 für
1≤k≤n.
(4.2)
Wegen der Anordnung der Nicht-Null-Elemente in einem unteren (low) und einem oberen (up) Dreieck hat sich in der mathematischen Literatur der Begriff LU-Zerle gung durchgesetzt, wobei B = L und C = U gleichzusetzen sind. Gelegentlich findet sich auch die Schreibweise LR-Zerlegung wieder. Um eine Verwechselungsgefahr mit unitären Matrizen später zu vermeiden, soll die oben eingeführte Bezeichnung für die beiden Zerlegungsmatrizen beibehalten werden. Mit der Festlegung (4.2) folgt gemäß (4.1) für die Matrixzerlegung min(j,k)
ajk =
∑ bji ⋅ cik i=1 j
k
⇒ ajk = ∑ bji ⋅ cik für j ≤ k
und ajk = ∑ bji ⋅ cik für j > k
i=1
i=1 j−1
⇒ c1k = a1k ;
cjk = ajk − ∑ bji ⋅ cik
für k = 1, . . . , n und j = 2, . . . , k
(4.3)
i=1
bk1 =
ak1 ; c11
bjk =
k−1 1 ⋅ (ajk − ∑ bji ⋅ cik ) ckk i=1
(4.4)
für k = 2, . . . , n und j = k + 1, . . . , n und für die Vorwärtselimination k−1
k−1
yk + ∑ bki yi = bk
⇒
y1 = b1 ;
yk = bk − ∑ bki yi
i=1
für k = 2, . . . , n
(4.5)
i=1
sowie für die Rückwärtselimination n
∑ cki xi = yk i=k
⇒
xn =
yn ; cnn
xk =
n 1 (yk − ∑ cki xi ) ckk i=k+1
(4.6)
für k = n − 1, . . . 2, 1 . Wegen der Divisionen in (4.4) und (4.6) ist bei diesem Algorithmus zu prüfen, ob ckk ≠ 0 ist. Trifft dies nicht zu, muss eine Umstellung von Zeilen und Spalten vorgenom men werden, wobei bestimmte Kriterien zu beachten sind, die verhindern sollen, dass unvermeidliche Rundungsfehler zu nicht tolerierbaren Abweichungen vom richtigen Ergebnis führen. Diese mit dem Begriff Pivotisierung bezeichnete Vorgehensweise ist auch sinnvoll bei von Null abweichenden Werten anzuwenden. Sie soll aber hier aus eingangs erwähntem Grund nicht weiter vertieft werden. Die Abfolge der einzelnen Operationsschritte des Gauß-Algorithmus ist im Block diagramm unten aufgeführt. Sie beinhaltet keine Pivotisierung und nutzt die Bezeich
4.2 Cholesky-Verfahren | 21
nung der Matrixelemente von A zur Kennzeichnung der Speicherplätze. Wie hier zu sehen ist, werden die Ergebnisse der Zerlegung auf denselben Speicherplätzen abge legt, die die Matrix A aufnehmen. Die obere Dreieckshälfte dient der Aufnahme der von 0 verschiedenen Elemente von C, die untere Dreieckshälfte der von 0 verschiede nen Elemente von B, wobei die aus 1-Elementen bestehende Hauptdiagonale nicht gespeichert werden muss. Dieses Verfahren ist somit besonders Speicherplatz spa rend und erlaubt die Bearbeitung von im Verhältnis zum verfügbaren Speichervolu men sehr umfangreichen Gleichungssystemen. Wenn nach der Pivotisierung ein Dia gonalelement den Wert 0 aufweist, ist die Systemmatrix singulär und das Verfahren wird beendet. für i = 1, . . . , n − 1 für j = i + 1, . . . , n aji aji := aii für k = i + 1, . . . , n ajk := ajk − aji ⋅ aik für k = 2, . . . , n für i = 1, . . . , k − 1 bk := bk − aki bi für k = n, . . . , 1 für i = k + 1, . . . , n bk := bk − aki xi bk xk := akk Gauß-Algorithmus (ohne Pivotisierung)
4.2 Cholesky-Verfahren Für symmetrische Matrizen kann der Gauß-Algorithmus abgewandelt werden, da A = B C = A T = C T BT .
(4.7)
Dies legt den Ansatz C = BT nahe, womit aus (4.7) folgt: A = CT C min(j,k)
⇒
ajk =
∑ cij ⋅ cik i=1
(4.8)
k
⇒
ajk = ∑ cij ⋅ cik i=1
für j ≥ k
22 | 4 Lösung einer linearen Matrizengleichung mit direkten Verfahren
⇒
c1j =
aj1 ; c11
ckj =
k−1 1 (ajk − ∑ cij ⋅ cik ) ckk i=1
(4.9)
für k = 2, . . . , n − 1 und j = k + 1, . . . , n c11 = √a11 ;
1 2
k−1
ckk = (akk − ∑
c2ik )
für k = 2, . . . , n .
(4.10)
i=1
Hiermit folgt für die Vorwärtselimination: k−1
ckk ⋅ yk + ∑ cik yi = bk
⇒
y1 =
i=1
b1 ; c11
yk =
k−1 1 (bk − ∑ cik yi ) ckk i=1
(4.11)
für k = 2, . . . , n und für die Rückwärtselimination n
∑ cki xi = yk
⇒
i=k
xn =
yn ; cnn
xk =
n 1 (yk − ∑ cki xi ) ckk i=k+1
(4.12)
für k = n − 1, . . . , 2, 1 . Die beim Gauß-Algorithmus dargestellten Besonderheiten gelten im übertragenen Sinn auch hier und müssen an dieser Stelle nicht wiederholt werden. Wird ckj auf dem Speicherplatz von ajk abgelegt, ist für die Blockdiagrammdarstellung des Ope rationsablaufs die Speicherplatzbezeichnung ajk anstelle der ckj in obigen Formeln einzusetzen: aj1 :=
aj1 ; c11
ajk :=
k−1 1 (ajk − ∑ aji ⋅ aki ) akk i=1
(4.13)
für k = 2, . . . , n − 1 und j = k + 1, . . . , n a11 := √a11 ;
k−1
1 2
akk := (akk − ∑ a2ki )
für k = 2, . . . , n
(4.14)
i=1 k−1 1 (bk − ∑ aki yi ) akk i=1
y1 :=
b1 ; a11
xk :=
n 1 (yk − ∑ aik xi ) akk i=k+1
yk :=
für k = 2, . . . , n
für k = n, . . . , 2, 1 .
(4.15) (4.16)
Hiermit ergibt sich die Abfolge der Operationsschritte gemäß nachfolgendem Block diagramm [6]:
4.3 QR-Zerlegung nach Gram-Schmidt |
23
für k = 1, . . . , n für i = 1, . . . , k − 1 akk := akk − aki ⋅ aki akk := √akk für j = k + 1, . . . , n für i = 1, . . . , k − 1 ajk := ajk − aji ⋅ aki ajk ajk := akk für k = 1, . . . , n für i = 1, . . . , k − 1 bk := bk − aki bi bk bk := akk für k = n, . . . , 1 für i = k + 1, . . . , n bk := bk − aik xi bk xk := akk Ablauf des Cholesky-Verfahrens (ohne Pivotisierung)
4.3 QR-Zerlegung nach Gram-Schmidt Wenn die Matrix B in (4.1) unitär ist, also wenn gilt B BT = I, kann der Zwischenvektor y sehr einfach gemäß y = B−1 b = BT b
(4.17)
berechnet werden. Man spricht hier von einer QR-Zerlegung der Matrix A, wobei Q für die unitäre Matrix U = B und R für die obere/rechte Dreiecksmatrix R = C steht. Die Entwicklung der Spaltenvektoren von U erfolgt hier auf ähnliche Weise wie die der Basisvektoren vk in Kapitel 3. Analog zu (3.6) wird der Ansatz k
ak = ∑ cik ui i=1
⇒
uk+1 =
1 c(k+1)(k+1)
k
⋅ (ak+1 − ∑ ci(k+1) ui )
für 1 ≤ k < n (4.18)
i=1
gemacht mit ak+1 als (k + 1)-tem Spaltenvektor der Matrix A. Demnach wird ein Spal tenvektor von A durch Basisvektoren ui dargestellt, wobei die Spaltennummer iden tisch mit der Dimension des Raums ist, der von den Basisvektoren aufgespannt wird:
24 | 4 Lösung einer linearen Matrizengleichung mit direkten Verfahren ak ∈ span(u1 , . . . , uk ). Man kann die rechte Gleichung von (4.18) auch so deuten: eliminiert man die Projektion von ak+1 auf den k-dimensionalen Raum, ergibt sich die Komponente von ak+1 , welche proprotional zum Basisvektor uk+1 ist. Setzt man für k = 1 a u1 = 1 , (4.19) |a1 | so ist durch vollständige Induktion zu beweisen, dass bei geeigneter Wahl der cjk ein Basissystem konstruiert werden kann, das orthonormal ist, für das also gilt: uTj uk = δjk . Für den Beweis wird die Annahme getroffen, dass für 1 ≤ j ≤ k alle uj orthonormal sind. Hiermit folgt aus (4.18) für j ≤ k: uTj uk+1 = = = ⇒
k
1 c(k+1)(k+1)
⋅ (uTj ak+1 − ∑ ci(k+1) uTj ui ) i=1 k
1 c(k+1)(k+1) 1 c(k+1)(k+1)
⋅ (uTj ak+1 − ∑ ci(k+1) δij ) i=1
⋅ (uTj ak+1 − cj(k+1) )
für cj(k+1) = uTj ak+1
ist
uTj uk+1 = 0 .
(4.20)
c(k+1)(k+1) = |zk+1 | ,
(4.21)
Setzt man zudem k
zk+1 = ak+1 − ∑ ci(k+1) ui ;
uk+1 =
i=1
zk+1 ; |zk+1 |
ist unter obiger Annahme auch uk+1 orthonormal, womit der Schluss von k auf k + 1 bestätigt wird. Wegen uT1 u2 =
1 ⋅ (uT1 a2 − c12 uT1 u1 ) = 0 c21
ist damit allgemein bewiesen, dass die mit (4.20) und (4.21) konstruierten Vektoren uk ein orthonormales System darstellen. Schreibt man für die linke Gleichung von (4.17) ak+1 = ∑ni=1 ci(k+1) ui , wird somit ci(k+1) = 0 für i > k + 1 vereinbart, und es kann hierfür die Matrixschreibweise A = U C = QR
(4.22)
herangezogen werden, in der U eine orthonormale und C eine obere/rechte Dreiecks matrix darstellen. Gemäß (4.1) gilt dann n
y = UTb
⇒
yk = ∑ ujk ⋅ bj
für k = 1, . . . , n
(4.23)
j=1
und C x = y
⇒
xk =
n 1 ⋅ (y − ∑ ckj ⋅ xj ) k ckk j=k+1
für k = n, . . . , 1 .
(4.24)
4.3 QR-Zerlegung nach Gram-Schmidt |
25
In dem mit nachfolgendem Blockdiagramm dargestellten Operationsablauf werden die Elemente der unitären Matrix U auf den nicht mehr benötigten Speicherplätzen von A abgelegt und erhalten die Bezeichnung der ursprünglichen Elemente von A. D. h., die Elemente ajk des k-ten Spaltenvektors von A werden mit den Elementen ujk des k-ten Spaltenvektors von U überschrieben, wobei die Speicherplatzbezeichnung von A übernommen wird [6]. für k = 1, . . . , n für j = 1, . . . , k − 1 cjk := 0 für i = 1, . . . , n cjk := cjk + aij ⋅ aik
s. (4.20)
für i = 1, . . . , k − 1 für j = 1, . . . , n ajk := ajk − cik ⋅ aji
s. (4.21)
ckk = 0 für i = 1, . . . , n ckk := ckk + aik ⋅ aik ckk := √ckk für i = 1, . . . , n aik aik := ckk für k = 1, . . . , n yk := 0 für j = 1, . . . , n yk := yk + ajk bj für k = n, . . . , 1 für j = k + 1, . . . , n yk := yk − ckj xj yk xk := ckk Gram-Schmidt-Algorithmus
s. (4.21)
= uik
s. (4.23)
s. (4.24)
26 | 4 Lösung einer linearen Matrizengleichung mit direkten Verfahren
4.4 QR-Zerlegung nach Givens Bei der Givens-Methode werden alle Subdiagonalelemente spaltenweise eliminiert. Hierzu werden Drehmatrizen bezüglich A definiert, für die folgende Schreibweise gilt: qp
Gqp = [gjk ]
qp
gjk
mit q > p und für j = k = p oder j = k = q für j = p und k = q sonst für j = k ≠ {p, q}
1 { { { { { app { { { { { 2 2 { { { √app + aqp ={ { aqp { qp { = −gkj { { { 2 2 { √app + aqp { { { { { {0
(4.25)
Für das Matrizenprodukt Aqp = Gqp A ergibt sich dann
qp
ajk
⇒
qp
aqp
{ajk { { { { { { app ⋅ apk + aqp ⋅ aqk { { n { { qp = ∑ gji aik = { √a2pp + a2qp { { i=1 { { { app ⋅ aqk − aqp ⋅ apk { { { { { √a2pp + a2qp { =0.
für j ≠ {p, q} für j = p für j = q > p
(4.26)
(4.27)
Ausgehend von (p − 1) Spalten, deren Elemente unter der Hauptdiagonalen eliminiert wurden, also ausgehend von ajk = 0 für k < j ≤ n und 1 ≤ k ≤ p − 1 und somit von qp apk = aqk = 0 für 1 ≤ k ≤ p − 1, folgt aus (4.26) ajk = 0 für k < j ≤ n und 1 ≤ k ≤ p − 1, also auch für j = p und j = q. Das bedeutet, dass bei Multiplikation von A mit Gqp alle bereits eliminierten Elemente in den vorangehenden Spalten nicht verändert werden. Die sukzessive Elimination aller Subdiagonalelemente in der p-ten Spalte erzielt man aufgrund von (4.27) durch mehrfache Anwendung der Drehmatrix: p+1
Gnp G(n−1)p ⋅ . . . ⋅ G(p+1)p ⋅ A = ∏ Gjp A .
(4.28)
j=n
Anwendung von (4.28) auf jede Spalte p < n führt zur Dreiecksmatrix C: 1
p+1
C = ∏ ∏ Gjp A . p=n−1 j=n
(4.29)
4.4 QR-Zerlegung nach Givens
|
27
Das Produkt der p-ten Spalte mit der q-ten Spalte von Gqp ergibt qp
qp
qp
qp
qp
qp
qp
qp
gpp ⋅ gpq + gqq ⋅ gqp = gpp ⋅ gpq − gpp ⋅ gpq = 0 . Multipliziert man Spalte p bzw. q mit sich selbst, erhält man qp 2
qp 2
(gpp ) + (gqp ) = 1 und
qp 2
qp 2
(gpq ) + (gqq ) = 1 .
Jeder Spaltenvektor j ≠ {p, q} ist orthogonal zu den anderen Spaltenvektoren, sein Skalarprodukt ergibt 1. Somit ist bewiesen, dass Gqp unitär ist, also dass gilt: GTqp Gqp = I . Bezeichnet man
(4.30)
p+1
1
∏ ∏ Gjp = U = QT , p=n−1 j=n
so gilt 1
p+1
T
p+1
1
T
Q Q = ( ∏ ∏ Gjp ) ( ∏ ∏ Gjp ) p=n−1 j=n 1
p+1
p=n−1 j=n n
n−1
= ( ∏ ∏ Gjp ) (∏ ∏ GTjp ) p=n−1 j=n 1
=( ∏
p=1 j=p+1
p+1=2 ̸
n−1
n
∏ Gjp ) I (∏ ∏ GTjp ) p=1 j=p+1=2 ̸
p=n−1 j=n
= ⋅⋅⋅ = I ⇒
R = C = U A = QT A = Q−1 A
⇒
A = QR .
Die mehrfache Anwendung der Drehmatrix entspricht also einer QR-Zerlegung der Matrix A, wobei man die obere/rechte Dreiecksmatrix C = R als Resultat direkt erhält, ohne dass eine weitere Operation mit der orthonormalen Matrix U = QT wie beim Gram-Schmidt-Algorithmus erforderlich ist. Da 1
p+1
1
p+1
C x = ∏ ∏ Gjp A x = ∏ ∏ Gjp b = U b , p=n−1 j=n
(4.31)
p=n−1 j=n
ergibt sich die Lösung durch Rückwärtselimination gemäß xn =
n 1 ⋅ ∑ uni ⋅ bi ; cnn i=1
xk =
n n 1 ⋅ (∑ uki ⋅ bi − ∑ cki ⋅ xi ) ckk i=1 i=k+1
(4.32)
für k = n − 1, . . . , 1 . Die unitäre Matrix wird aus Platzgründen nicht abgespeichert. Daher kann die Be rechnung von uTk b nicht direkt erfolgen. Hierzu wird der Algorithmus gemäß (4.29)
28 | 4 Lösung einer linearen Matrizengleichung mit direkten Verfahren
gleichermaßen auf jede Spalte von A und auch auf b angewendet. So kann man den Vektor b als (n+1)-te Spalte der Matrix A hinzugefügen und die Zerlegung gemäß (4.26) auf die auf (n + 1) Spalten erweiterte Matrix anwenden. Hierbei gilt dann aj(n+1) = bj für j = p und j = q. für p = 1, . . . , n − 1 für q = p + 1, . . . , n j
aqp = 0
n
t := 1/√a2pp + a2qp s := t ⋅ aqp c := t ⋅ app für k = p, . . . , n + 1 t := c ⋅ apk + s ⋅ aqk k = p
n aqk := c ⋅ aqk − s ⋅ apk
j
apk := t aqp = 0 für k = n, . . . , 1 für i = k + 1, . . . , n ak(n+1) := ak(n+1) − aki xi ak(n+1) xk := akk Ablauf des Givens-Verfahrens Das obige Blockdiagramm zeigt den Operationsablauf des Givens-Verfahrens für je de beliebige Matrixstruktur [6], wobei die Anwendung des Givens-Algorithmus zeilen weise erfolgt. Die Matrix A wird auf den Speicherplätzen ajk abgelegt, die Zerlegung erfolgt auf denselben Speicherplätzen, d. h., dass die Elemente cjk von C den Spei cherplätzen ajk zugewiesen werden. Analoges gilt für die Elemente des Vektors b, mit denen die Speicherplätze aj(n+1) überschrieben werden. Hat A die Struktur einer Hessenberg- oder auch Tridiagonalmatrix, vereinfacht sich das Givens-Verfahren, da als Ergebnis die Erfüllung von (4.27) nur für q = p + 1 bei p = 1, . . . , n − 1 angestrebt werden muss, womit C Dreiecksstruktur erhält: 1
1
C = ∏ G(p+1)p A mit U = ∏ G(p+1)p . p=n−1
(4.33)
p=n−1
Hierbei werden in dem Programmablauf gemäß dem obigen Blockdiagramm die mit q indizierten Schleifen übersprungen. Alternativ kann der Givens-Algorithmus spalten
4.5 Householder-Algorithmus | 29
weise angewendet werden, d. h., es erfolgt der Aufbau einer Spalte k nach folgenden Operationen, die ersatzweise für (4.26) und (4.27) aufgestellt werden: mit
τj := √b2jj + a2(j+1)j ;
κ j :=
cjk := κ j ⋅ bjk + σ j ⋅ a(j+1)k b1k := a1k ;
bjj ; τj
für
σ j :=
a(j+1)j τj
1≤j k .
Dann ergibt sich für das Matrizenprodukt W = U V mit wjk = ∑ni=1 uji ⋅ vik : j
wjk = ∑ uji ⋅ vik
Fall a)
i=k
⇒
wjk = 0
für j < k ;
wkk = ukk ⋅ vkk ,
(4.53)
wkk = ukk ⋅ vkk .
(4.54)
k
wjk = ∑ uji ⋅ vik
Fall b)
i=j
⇒
wjk = 0
für j > k ;
4.6 Takahashi-Verfahren | 33
Wenn zunächst nur ujk = 0 für j < k oder j > k vorausgesetzt wird, und dabei V = U −1 gelten soll, folgt wegen der Forderung wjk = 0 für j ≠ k, dass auch vik = 0 für i ≤ j < k oder i ≥ j > k erfüllt werden muss. Also hat auch die Inverse von U dieselbe Drei ecksstruktur wie U. Generell hat das Matrizenprodukt also dieselbe Dreiecksstruktur wie seine Faktoren. Diese Eigenschaft macht sich das Takahashi-Verfahren zunutze. Ausgehend vom Gauß’schen Algorithmus, speziell von (4.1), kann einerseits C−1 − A−1 B = 0 ⇔
A−1 = C−1 − A−1 (B − I)
und andererseits Z −1 = A = (B D)(D−1 C) ⇔
(B D)−1 − (D−1 C)Z = 0
⇔
A−1 = Z = (B D)−1 − (D−1 C − I)Z
abgeleitet werden. Zusammengefasst kann hierfür geschrieben werden: A−1 = Z = P − Z Q
mit P = C−1
und Q = B − I
(4.55)
A−1 = Z = R − S Z
mit R = (B D)−1
und S = D−1 C − I .
(4.56)
Wird mit D eine Diagonalmatrix mit den Elementen dkk = ckk festgelegt, ergeben sich bei Anwendung von (4.53) und (4.54) folgende Beziehungen: für j < k :
qjk = rjk = pkj = skj = 0 ;
pkk = rkk =
1 ; ckk
(4.57)
qkk = skk = 0 für j < k :
qjk = bjk ;
sjk =
cjk cjj
(4.58)
n
für 1 ≤ j < k ≤ n :
cji zik ; c i=j+1 jj
zjk = − ∑
zkk =
n
zkj = − ∑ bij zki
n 1 − ∑ bik zki ; ckk i=k+1
(4.59)
i=j+1
znn =
1 . cnn
(4.60)
Mit den obigen Gleichungen (4.59) und (4.60) für die Elemente der Inversen von A wird der Gauß’sche Algorithmus, der aus den Basisgleichungen (4.2) bis (4.4) besteht, zum Takahashi-Verfahren vervollständigt. Damit ergibt sich folgender Operationsab lauf:
34 | 4 Lösung einer linearen Matrizengleichung mit direkten Verfahren für i, j = 1, . . . , n : zij := aij für i = 1, . . . , n − 1 für j = i + 1, . . . , n aji aji := aii für k = i + 1, . . . , n ajk := ajk − aji ⋅ aik
s. (4.4)
s. (4.3),(4.4)
1 für i = 1, . . . , n : aii := aii für i = 1, . . . , n − 1 ; j = i + 1, . . . , n : aij := aij aii für k = n, . . . , 1 zkk := akk für j = k + 1, . . . , n zkk := zkk − ajk zkj
s. (4.60) s. (4.60)
für j = k − 1, . . . , 1 zjk = zkj := 0 für i = n, . . . , j + 1 zjk := zjk − aji zik zkj := zkj − aij zki
s. (4.59) s. (4.59)
Takahashi-Verfahren (ohne Pivotisierung)
4.7 Zerlegung von Tridiagonalmatrizen Eine Matrix, die die Struktur der Hessenberg-Matrix aufweist, lässt sich mit dem Givens-Algorithmus problemlos in eine reine Dreiecksmatrix umwandeln. Zur Trans formation einer Tridiagonalmatrix auf Dreiecksstruktur eignet sich dieses Verfahren jedoch nicht, da Null-Elemente rechts der Diagonalen hierbei durch Nicht-Null-Ele mente ersetzt werden können. Für diese Matrixstruktur bietet sich jedoch die LU-Zer legung auf Basis des Gauß-Algorithmus an. Ausgehend von der Tridiagonalmatrix A, für die also ajk = 0 für k < j − 1 und k > j + 1 gilt, werden zwei bidiagonale Matrizen B = L mit bjk = 0 für k < j − 1 und k > j sowie C = U mit cjk = 0 für k < j oder k > j + 1 als Ergebnismatrizen der Zerlegung angesetzt. Vorausgesetzt, dass eine Zerlegung möglich ist, folgt hiermit aus (4.4) a(k+1)k b(k+1)k = für 1 ≤ k ≤ n (4.61) ckk und aus (4.3) c(k−1)k = a(k−1)k c11 = a11 ;
für
1k,
d. h., C[(m),m] ist eine obere/rechte Dreiecksmatrix. Aus (5.1) folgt somit αk =
m 1 ⋅ (qk − ∑ ckj ⋅ α j ) ckk j=k+1
für k = m, . . . , 1 .
(5.2)
Gemäß (4.35) kann für das Matrixelement cmm := κ m ⋅bmm +σ m ⋅a(m+1) m nach Einsetzen von (4.34) noch einfacher geschrieben werden: cmm =
τ2 1 ⋅ (b2mm + a2(m+1) m ) = m = τ m . τm τm
(5.3)
Die Anwendung von (4.35) und (4.36) auf q, also die (m + 1)-Spalte der Operationsma (m+1)(m+1) [m+1] e1
trix H, führt wegen qj+1 = 0 im j-ten Schritt, also für ∏1k=j G(k+1)k qj := κ j ⋅ qj + σ j ⋅ q(j+1) = κ j ⋅ qj , q(j+1) := κ j ⋅ q(j+1) − σ j ⋅ qj = −σ j ⋅ qj .
zu (5.4) (5.5)
Wenn qj ≠ 0 und hierbei q(j+1) = 0 gilt, dann muss also σ j = 0 und folglich auch h(j+1)j = 0 sein. Weil alle folgenden Berechnungen dann auch zu Null-Elementen füh ren, bricht das Verfahren im Schritt m ab und liefert die entsprechende Lösung für x gemäß (3.1). Das Ergebnis q(j+1) = 0 stellt somit das Abbruchkriterium des GMRES-Ver fahrens dar. Wenn sich mit h(j+1)j = 0 gleichzeitig auch hjj = 0 ergibt, führt dies zu τ j = 0 für 1 ≤ j ≤ m und damit zu verschwindenden Divisoren in (4.34). Hier bricht der Iterati onsvorgang ab, ohne dass ein Ergebnis erzielt werden konnte. Werden die Ergebnisse https://doi.org/10.1515/9783110644173-005
38 | 5 Lösung einer linearen Matrizengleichung mit Krylov-Unterraum-Verfahren
bei jedem Zwischenschritt des Givens-Algorithmus wiederum auf den Speicherplät zen der Elemente von H m abgelegt, durchläuft das GMRES-Verfahren die im Blockdia gramm dargestellten Operationsschritte [6]: Beliebige Wahl von x0 für r0 := b − A x0 r0 := 0
j x := x0
r v1 := 0 ; |r0 |
n q1 := |r0 |
s. (5.1)
für m = 1, . . . , n für j = 1, . . . , m hjm := vTj A vm
s. (3.8)
m
z m := A vm − ∑ hjm vj ;
h(m+1)m := |zm |
s. (3.6), (3.7)
j=1
für j = 1, . . . , m − 1 τj := √h2jj + h2(j+1)j ;
κ j :=
hjj ; τj
σ j :=
h(j+1)j τj
s. (4.34)
t := κ j ⋅ hjm + σ j ⋅ h(j+1)m
s. (4.35)
h(j+1)m := κ j ⋅ h(j+1)m − σ j ⋅ hjm
s. (4.36)
hjm := t τm := √h2mm + h2(m+1)m ; h(m+1)m τm hmm := τm qm+1 := −σ m ⋅ qm ;
κ m :=
hmm ; τm
σ m :=
qm+1 = 0
n vm+1 :=
zm
s. (5.3) s. (5.4), (5.5)
qm := κ m ⋅ qm j
für j = m, . . . , 1
h(m+1)m α j :=
m 1 ⋅ (qj − ∑ hjk ⋅ α k ) hjj k=j+1
s. (5.2)
m
x = x0 + ∑ α j ⋅ vj j=1
Ende Ablauf des GMRES-Verfahrens
Ende
s. (3.1)
5.2 Das Bi-Conjugate-Gradient-Verfahren (BiCG-Verfahren) |
39
5.2 Das Bi-Conjugate-Gradient-Verfahren (BiCG-Verfahren) CG-Verfahren sind speziell für symmetrische Matrizen konzipiert, deren HessenbergMatrix Tridiagonalstruktur aufweist. Bei nicht-symmetrischen Matrizen kann die Hes senberg-Matrix ebenfalls in Tridiagonalform überführt werden, wenn die Konstrukti on auf dem Bi-Lanczos-Algorithmus nach (3.19) bis (3.31) beruht. Ausgehend von (3.36) und (3.20) xm = x0 + V m (H m )−1 W Tm r0 = x0 + V m (H m )−1 |r0 |e1 mit der Tridiagonalmatrix H m folgt bei Anwendung der LU-Zerlegung gemäß Ab schnitt 4.7, also für H m = B[m,m] C[m,m] , [m]
C−1 B−1 |r0 |e1 ⇒ xm = x0 + V [n,m] m mit Z [n,m] C[m,m] = V [n,m] m
m
= x0 + Z [n,m] Λ [m] = x0 + ∑ Λk ⋅ z k
und B[m,m] Λ[m] =
(5.6)
k=1 [m] |r0 |e1 .
(5.7)
B und C sind jeweils bidiagonal, wobei bkk = 1 und c(k−1)k = h(k−1)k für alle k gilt. Demgemäß ergibt sich aus (5.7) für 1 < k ≤ m c11 ⋅ z1 = v1 ; Λ1 = |r0 | ;
h(k−1)k ⋅ zk−1 + ckk ⋅ zk = vk ;
(5.8)
Λk = −bk(k−1) ⋅ Λk−1 .
(5.9)
Einsetzen von (3.39) und der rechten Gleichung von (3.16) in (3.37) führt zu [n,m+1]
rm = r0 − A V m ⋅ α m = r0 − V m+1 [n,m+1]
= r0 − V m+1
H [m+1,m] ⋅ αm m −1
H [m+1,m] (H [m,m] ) m m
|r0 |e1 .
(5.10)
Mit Einführung eines dyadischen Produkts kann auch geschrieben werden: [n,m+1]
V m+1
H [m+1,m] = V [n,m] H [m,m] + h(m+1) m ⋅ vm+1 ⋅ eTm m m m −1
⇒ rm = r0 − (V [n,m] H [m,m] + h(m+1) m ⋅ vm+1 ⋅ eTm ) (H [m,m] ) m m m ⇒ rm = r0 − V [n,m] |r0 |e1 + h(m+1) m |r0 | ⋅ m [n,m]
Wegen V m
|r0 |e1 −1 (eTm (H [m,m] ) e1 ) ⋅ vm+1 . m [m,m] −1 ) e
|r0 |e1 = t|r0 |v1 = r 0 und mit ξm = h(m+1) m |r0 | ⋅ (eTm (H m rm = ξm ⋅ vm+1
und
ξ0 = |r0 | .
1 ) folgt
(5.11)
Verwendet man (5.11) mit dem Index k in (5.8), ergibt sich für 1 ≤ k < m |r0 | ⋅ c11 ⋅ z1 = r0 ;
ξk ⋅ hk(k+1) ⋅ zk + ξk ⋅ c(k+1)(k+1) ⋅ z k+1 = rk .
Mit den Definitionen y
k−1
= ξk−1 ⋅ ckk ⋅ z k
und
λk−1 =
Λk ξk−1 ⋅ ckk
(5.12)
40 | 5 Lösung einer linearen Matrizengleichung mit Krylov-Unterraum-Verfahren
gilt für die vorausgehenden Beziehungen r0 = y ;
rk = y + ηk−1 ⋅ y
0
k
ηk−1 =
mit
k−1
ξk ⋅ hk(k+1) ; ξk−1 ⋅ ckk
(5.13)
m−1
xm = x0 + ∑ λ k ⋅ y ; y = |r0 |v1 ;
y
0
λ0 =
1 ; c11
(5.14)
k
k=0
k−1
= ξk−1 ⋅ vk − ηk−2 ⋅ y
λk−1 = −
k−2
1 0 mit w0 = 0 und w1 =
i=k−1
r0
|r0 |
(5.30)
und damit wk = vk .
(5.31)
42 | 5 Lösung einer linearen Matrizengleichung mit Krylov-Unterraum-Verfahren Wegen H m = B C = H Tm = CT BT ergibt sich gemäß (5.6) m
xm = x0 + W m (BT )−1 (CT )−1 |r0 |e1 = x0 + Z Λ = x0 + ∑ Λk ⋅ zk .
(5.32)
k=1
Setzt man nun y
k−1
= (Λk /λk−1 )⋅z k , kann für (5.24) bis (5.26) auch geschrieben werden: m−1
xm = x0 + ∑ λk ⋅ y = xm−1 + λm−1 ⋅ y k
k=0
m−1
rm = rm−1 − λm−1 ⋅ AT y
m−1
k+1
y = ∑ β kj ⋅ wj k
,
(5.33)
,
(5.34) k+1
und rk = ∑ γkj ⋅ wj .
j=1
(5.35)
j=1
Überträgt man auch (5.11) und (5.13) auf das zweite Gleichungssystem, so gilt: rk = ξk ⋅ wk+1 r 0 = y ; 0
ξ0 = |r0 | ,
und
rk = y + ηk−1 ⋅ y k
k−1
(5.36)
.
(5.37)
Wegen (5.35), (5.11) und (3.24) gilt: k+1
T k
y rk+1 = ξk+1 ⋅ ∑ β kj ⋅ wTj vk+2 = 0 .
(5.38)
j=1
Hiermit und wegen (5.37) ergibt sich T k
T
T r k−1 k
y rk = rk rk − ηk−1 ⋅ y
T
= rk rk .
(5.39)
Mit (5.19) und beiden vorausgehenden Beziehungen kann aber auch geschrieben wer den: T r m−1 m
y
T r m−1 m−1
= y
T Ay m−1 m−1
− λm−1 ⋅ y
T
T Ay m−1 m−1
= rm−1 rm−1 − λm−1 ⋅ y
=0
T
⇒
λm−1 =
rm−1 rm−1 y T A y m−1
.
(5.40)
m−1
Das Skalarprodukt der auf (5.36) und (5.23) basierenden Vektoren führt wegen (3.30) zu m+1
T
rm+1 rm = ξm+1 ⋅ ∑ γmj ⋅ wTm+2 vj = 0 .
(5.41)
j=1 T m
Verwendung von (5.37), (5.19), (5.41) und y rm+1 = 0 [ s. (5.40) für λm ] führt zu T Ay m+1 m
y
=
1 1 T T T T ⋅ (rm+1 − ηm ⋅ y ) (rm − rm+1 ) = ⋅ (−rm+1 rm+1 − ηm ⋅ y rm ) m m λm λm (5.39)
⇒
T
T
T Ay m+1 m
rm+1 rm+1 + ηm ⋅ rm rm = −λm ⋅ y
.
(5.42)
5.2 Das Bi-Conjugate-Gradient-Verfahren (BiCG-Verfahren) | 43
Die Forderung, dass y
m+1
T Ay m m+1
⊥(A y ), dass also y m
= 0 sein soll, ergibt
T
ηm = −
rm+1 rm+1 r mT rm
.
Aufgrund des dualen Charakters dieser Beziehung kann geschrieben werden: T
η m = ηm = −
rm+1 rm+1 rmT r m
.
(5.43)
Diese Identität von η m und ηm ist der eigentliche Grund für die zunächst willkürlich er scheinende Festlegung y ⊥(A y ). Indirekt wird somit über (5.37) eine Regel für die m+1 m Konstruktion von y festgelegt. Mit Ausführung von (5.37) wird sichergestellt, dass m+1 der neu konstruierte Vektor y stets senkrecht auf A y , also senkrecht auf der Vek m m+1 tordifferenz (rm − rm+1 ) steht. Wenn damit auch keine der Optimierungsregel (2.11) ad äquate Bedingung erfüllt wird, besteht der Vorteil in einer zeitlichen Beschleunigung des Verfahrens, da anstelle von zwei Werten für ηm lediglich nur noch einer gemäß (5.43) berechnet werden muss. Da das BiCG-Verfahren im Gegensatz zum GMRES-Ver fahren keine Minimierungsregel befolgt, ist das Konvergenzverhalten durch Oszilla tionen charakterisiert (s. Kapitel 8). Das Verfahren konvergiert nicht mehr, wenn wegen λk = 0 aus (5.18) xk+1 = xk T folgt. Dieser Fall tritt für r k rk = 0 ein und führt zum Abbruch des Verfahrens. Der T Iterationsprozess muss auch bei y A y = 0 abgebrochen werden, damit in (5.40) kein k k Divisor Null auftritt. Beliebige Wahl von x0 für r0 := b − A x0 y = y = r0 := r 0 ; 0
k := 0
0
Solange |rk | > ε T
λk :=
rk rk
s. (5.40)
y T A y k
k
xk+1 := xk + λk ⋅ y
s. (5.18)
k
rk+1 := rk − λk ⋅ A y
k
s. (5.19)
rk+1 := rk − λk ⋅ AT y
s. (5.34)
T rk+1 rk+1 T rk r k
s. (5.43)
k
ηk := y
k+1
y k+1
:= rk+1 + ηk ⋅ y :=
rk+1
+ ηk ⋅
k
s. (5.13)
y k
s. (5.37)
k := k + 1 Ablauf des BiCG-Verfahrens (ohne weitere Abbruchbedingungen)
44 | 5 Lösung einer linearen Matrizengleichung mit Krylov-Unterraum-Verfahren
5.3 Das Verfahren der konjugierten Gradienten (CG-Verfahren) Das CG-Verfahren kann als ein Sonderfall des BiCG-Verfahrens betrachtet werden, wel cher für den Fall einer symmetrischen Matrix, also wenn AT = A gilt, zur Anwendung kommt. Da das zweite GLS A x = b hier identisch mit dem ersten GLS ist, können ei nige Gleichungen aus Abschnitt 5.2 mit den gestrichenen Größen entfallen. Außerdem können die gestrichenen Größen durch die ihnen entsprechenden Größen des ersten GLS ersetzt werden. Diese Vereinfachung führt zu folgendem Ablauf der Operations schritte [6]: Beliebige Wahl von x0 für r0 := b − A x0 y := r0 ; 0
ρ 0 := rT0 r 0
für k = 0, 1, . . . , n − 1 ρk > ε
j zk := A y ; k
n
ρk λk := T y zk
s. (5.40)
k
xk+1 := xk + λk ⋅ y
s. (5.18)
rk+1 := rk − λk ⋅ zk
s. (5.19)
k
ρ k+1
:= rTk+1 rk+1
y
ρ := rk+1 + k+1 ⋅ y k ρk
k+1
s. (5.43) Ende
s. (5.13)
Ablauf des CG-Verfahrens (ohne weitere Abbruchbedingungen) Wie der Vergleich von (5.40) mit (2.16) zeigt, basiert das CG-Verfahren auf der Optimie rungsregel (2.14). Diese setzt allerdings neben der Symmetrie auch eine positiv definite Matrix voraus. Ergibt sich bei einem Iterationsschritt die Gleichung yT zk = yT A y = 0, k k k ist gemäß [3] die Systemmatrix nicht positiv definit und das Verfahren muss wegen nicht erfüllter Anwendungsbedingung abgebrochen werden. Wenn darüber hinaus |zk | = 0 berechnet wird, gilt yT (AT A)y = 0, was gemäß [3] gleichbedeutend mit k
k
|AT | |A| = 0 ist. Die Systemmatrix ist also hierbei singulär. Der Anwendungsbereich dieses Verfahrens kann auch auf nichtsymmetrische Ma trizen erweitert werden, indem man zuvor das GLS modifiziert: A T A x = AT b .
(5.44)
In dem Verfahren wird ersatzweise für die nichtsymmetrische Matrix A das symmetri sche Matrizenprodukt AT A herangezogen. Entsprechend ist b durch die rechte Seite von (5.44) zu ersetzen. Voraussetzung hierfür ist, dass A eine reguläre Matrix ist, da nur dann die Inverse von AT existiert und somit die Lösung von (5.44) mit der des ur sprünglichen GLS identisch ist.
5.4 Das Conjugate-Gradient-Squared-Verfahren (CGS-Verfahren) |
45
5.4 Das Conjugate-Gradient-Squared-Verfahren (CGS-Verfahren) Das CGS-Verfahren baut auf dem BiCG-Verfahren auf, wobei die Polynomdarstellung von (1.8) in (5.20), (5.23) und (5.37) mit Anwendung von (1.9) und (5.27) eingesetzt wird: y = Yk (A) ⋅ r0
k y k
= Yk (AT ) ⋅ r0
und rk = Rk (A) ⋅ r0 ,
(5.45)
und rk = Rk (AT ) ⋅ r0 .
(5.46)
Wegen (5.13) und (5.19) bzw. (5.34) und (5.37) ergeben sich für die Polynome folgende Beziehungen: (5.47) Rk (z) = Yk (z) + ηk−1 ⋅ Yk−1 (z) , Rk+1 (z) = Rk (z) − λk ⋅ zYk (z) . T
(5.48)
T
Da y = (Yk (AT ) ⋅ r 0 )T = rT0 ⋅ Yk (A) und rk = (Rk (AT ) ⋅ r0 )T = rT0 ⋅ Rk (A) gilt, kann mit k (5.45) und (5.46) für (5.40) und (5.43) geschrieben werden: λk =
rT0 R2k (A)r0 r T0 AYk2 (A)r 0
;
rT0 R2k+1 (A)r 0
ηk =
rT0 R2k (A)r0
.
(5.49)
Mit den Definitionen ŷ = Yk (A) ⋅ y = Yk2 (A) ⋅ r0 ; k
k
rk̂ = Rk (A) ⋅ rk = R2k (A) ⋅ r0
(5.50)
vereinfacht sich (5.49) zu λk =
rT0 rk̂ rT0 A ŷ
;
ηk =
k
̂ rT0 rk+1 rT0 r k̂
.
(5.51)
Aus (5.47) und (5.48) folgt: 2 Yk2 (z) = R2k (z) + 2ηk−1 ⋅ Rk (z)Yk−1 (z) + η2k−1 ⋅ Yk−1 (z) ,
R2k+1 (z)
= =
Rk+1 (z)Yk (z) =
R2k (z) − λk ⋅ z (2Rk (z)Yk (z) − λk ⋅ zYk2 (z)) R2k+1 (z) = R2k (z) − λk ⋅ z (2R2k (z) + 2ηk−1 ⋅ Rk (z)Yk−1 (z) −λk ⋅ zYk2 (z)) , R2k (z) + ηk−1 ⋅ Rk (z)Yk−1 (z) − λk ⋅ zYk2 (z) .
(5.52)
(5.53) (5.54)
Hiermit folgen die weiteren Definitionen: pk = Rk (A)y = Rk (A)Yk (A)r 0 ; k
qk = Rk+1 (A)y = Rk+1 (A)Yk (A)r0 . k
(5.55)
Aus obigen Definitionen und Beziehungen lässt sich herleiten: pk qk
(5.50),(5.55)
(5.47)
R2k (A)r 0 + ηk−1 ⋅ Rk (A)Yk−1 (z)r 0
(5.54)
R2k (A)r0 + ηk−1 ⋅ Rk (A)Yk−1 (A)r 0 − λk ⋅ AYk2 (A)r0
=
=
(5.56),(5.50)
=
qk = pk − λk ⋅ A ŷ , k
=
rk̂ + ηk−1 ⋅ qk−1 ,
(5.56)
(5.57)
46 | 5 Lösung einer linearen Matrizengleichung mit Krylov-Unterraum-Verfahren
̂ rk+1
(5.50),(5.53)
R2k (A)r0 − λk ⋅ A (2R2k (A)r 0 + 2ηk−1 ⋅ Rk (A)Yk−1 (A)r 0 − λk ⋅ AYk2 (A)r 0 )
̂ rk+1
(5.56),(5.50)
rk̂ − λk ⋅ A(pk + pk − λk ⋅ A ŷ ) = rk̂ − λk ⋅ A(pk + qk ) ,
ŷ
(5.50),(5.52)
R2k+1 (z)r 0 + 2ηk ⋅ Rk+1 (z)Yk (z)r 0 + η2k ⋅ Yk2 (z)r 0
(5.50),(5.54)
ŷ
=
(5.57)
=
k
=
k+1
⇒
k+1
̂ = rk+1 + 2ηk ⋅ qk + η2k ⋅ ŷ
(5.56) k
= p̂ k+1 + ηk ⋅ (ηk ⋅ ŷ + qk ) . k
(5.58)
(5.59)
Besteht zwischen der neu definierten Variablen x̂ und dem Residuenvektor r ̂ die Be ziehung r ̂ = b − A x,̂ so führt die Minimierung von r ̂ zur Lösung x̂ = A−1 b. Dazu setzt man als Anfangswert x̂ 0 = x0 ein, also r0̂ = r0 . Für die Lösung des GLS kann wegen (5.58) geschrieben werden: x̂k+1 = x̂k + λk ⋅ (pk + qk ) .
(5.60)
Das Verfahren konvergiert nicht mehr, wenn wegen λk = 0 aus (5.60) x̂k+1 = x̂k folgt. Dieser Fall tritt für rT0 rk = 0 ein und führt zum Abbruch des Verfahrens. Der Iterations vorgang muss auch bei rT0 zk = 0 abgebrochen werden, da der Divisor in (5.51) nicht gegen Null streben darf. In der bisher gebräuchlichen Schreibweise ohne das Super skript̂ergibt sich für den Operationsablauf folgendes Blockdiagramm [6]: Beliebige Wahl von x0 für p0 := y := r0 := b − A x0 ; 0 k=0 |rk | > ε
j zk := A y ; k
λk :=
n
rT0 rk rT0 zk
s. (5.51)
qk := pk − λk ⋅ zk
s. (5.57)
xk+1 := xk + λk ⋅ (pk + qk )
s. (5.60)
rk+1 := rk − λk ⋅ A(pk + qk )
s. (5.58)
ηk :=
rT0 rk+1
pk+1
rT0 r k := rk+1 + ηk q k
y
:= p
k+1
s. (5.51) s. (5.56)
+ ηk (ηk y + qk ) k+1
k := k + 1
s. (5.59)
k
Ende
Ablauf des CGS-Verfahrens (ohne weitere Abbruchbedingungen)
5.5 Das Bi-Conjugate-Gradient-Stabilized-Verfahren (BiCGSTAB-Verfahren) | 47
5.5 Das Bi-Conjugate-Gradient-Stabilized-Verfahren (BiCGSTAB-Verfahren) Das CGS-Verfahren wurde aus dem BiCG-Verfahren hergeleitet, indem die aus Glei chung (5.35) hervorgehenden Polynome Rk (A) und Yk (A) mit Rk (AT ) und Yk (AT ) gleich gesetzt wurden. In ähnlicher Weise wird hier das BiCGSTAB-Verfahren ausgehend vom CGS-Verfahren hergeleitet, indem ein neues Polynom Zk (A) definiert wird, dessen be sondere Eigenschaft die Orthogonalität zum Residuenvektor rk+1 ist. Dass ein solches Polynom existiert, kann über eine der Gleichung (5.41) adäquate Beziehung bewiesen werden. Es gilt mit (5.11) und (5.31) j+1
(3.30)
rTk+1 rj = ∑ ξk+1 γji ⋅ vTk+2 wi = 0 für i − 1 ≤ j ≤ k i=1 (5.46)
⇒
rj = Rj (AT ) ⋅ r0 ⊥rk+1 = Rk+1 (A) ⋅ r0
für j ≤ k .
(5.61)
Mit (5.61) ist also dargelegt, dass man Polynome Zj (AT ) finden kann, für die gilt: T
(Zj (AT ) ⋅ r0 ) ⋅ (Rk+1 (A) ⋅ r0 ) = 0 für j ≤ k
(5.62)
(rT0 ⋅ Zk (A)) ⋅ (Rk (A) ⋅ r0 ) = (rT0 ⋅ Zk (A)) ⋅ (Rk (A) − Rk+1 (A)) ⋅ r0
⇒ (5.48)
⇒
rT0 ⋅ (Zk (A) ⋅ Rk (A)) ⋅ r0 = λk rT0 ⋅ (Zk (A)AYk (A)) ⋅ r0
⇒
λk =
rT0 ⋅ (Zk (A)Rk (A)r0 ) rT0 ⋅ (Zk (A)AYk (A)r 0 )
mit rk̂ = Zk (A)Rk (A)r 0
=
rT0 ⋅ r k̂
(5.63)
rT0 ⋅ (A ŷ ) k
und ŷ = Zk (A)Yk (A)r 0 .
(5.64)
k
Für das neu eingeführte Polynom Zk (AT ) kann analog zu (5.48) die Beziehung Zk+1 (A) = Zk (A) − μ k ⋅ AZk (A) = (I − μ k ⋅ A)Zk (A)
(5.65)
aufgestellt werden. Hiermit folgt für (5.64) und k + 1: ̂ = (I − μk ⋅ A)Zk (A)Rk+1 (A)r 0 = (I − μk ⋅ A)qk rk+1
(5.66)
(5.48)
mit qk = Zk (A)Rk+1 (A)r 0 = Zk (A)Rk (A)r 0 − λk ⋅ Zk (A)AYk (A)r 0 (5.64)
⇒
qk = rk̂ − λk ⋅ A ŷ .
(5.67)
k
Für k + 1 folgt aus (5.64) mit (5.47) ŷ (5.64),(5.65)
⇒
ŷ
k+1
= Zk+1 (A)Rk+1 (A)r 0 − ηk Zk+1 (A)Yk (A)r 0
k+1
̂ ̂ − ηk (I − μ k ⋅ A)ŷ . (5.68) = rk+1 − ηk (I − μk ⋅ A)Zk (A)Yk (A)r 0 = r k+1 k
48 | 5 Lösung einer linearen Matrizengleichung mit Krylov-Unterraum-Verfahren
Setzt man (5.47) in (5.48) ein und dekrementiert den Index jedes Terms, erhält man Rk (z) = Rk−1 (z) − λk−1 ⋅ z(Rk−1 (z) − ηk−2 ⋅ Yk−2 (z)) = −λk−1 ⋅ zRk−1 (z) + Rk−1 (z) + ηk−2 λk−1 ⋅ z ⋅ Yk−2 (z) = −λk−1 ⋅ zRk−1 (z) + P̂ k−1 (z) , worin P̂ k−1 (z) = Rk−1 (z) + ηk−2 λk−1 ⋅ z ⋅ Yk−2 (z) ein Polynom vom Grad (k − 1) darstellt. Da die Gleichung bezüglich Rk (z) rekursiv ist, wird folgender Ansatz gemacht: k−1
Rk (z) = (−1)k ∏ λj ⋅ zk ⋅ R0 (z) + Pk−1 (z) .
(5.69)
j=0
Die Richtigkeit dieses Ansatzes kann durch vollständige Induktion bewiesen werden, indem (5.69) für k − 1 in obige Formel eingesetzt wird: k−2
Rk (z) = −λk−1 ⋅ z ((−1)k−1 ∏ λj ⋅ zk−1 ⋅ R0 (z) + Pk−2 (z)) + P̂ k−1 (z) j=0 k−1
= (−1)k ∏ λj ⋅ zk ⋅ R0 (z) + Pk−1 (z)
mit Pk−1 (z) = −λk−1 ⋅ zPk−2 (z) + P̂ k−1 (z) .
j=0
Wenn (5.69) für k − 1 gilt, so ist (5.69) also auch für k richtig. Aus (5.45) folgt R0 (z) = 1. Somit erhält man für (5.69) k−1
Rk (z) = (−1)k ∏ λj ⋅ zk + Pk−1 (z)
(5.70)
j=0
⇒
R1 (z) = −λ0 z + c0 .
Aus (5.45) und (5.19) kann R1 (z) = 1 − λ0 z hergeleitet werden. Somit ist (5.70) auch für k = 1 und damit für jedes k gültig. Wegen der Analogie von (5.65) mit (5.48) ist neben (5.70) k−1
Zk (z) = (−1)k ∏ μ j ⋅ zk + Qk−1 (z)
(5.71)
j=0
eine adäquate Beziehung mit Qk−1 (z) als Polynom (k − 1)-ten Grades. Die Übertragung der Gleichungen (1.8) bis (1.10) auf das simultane GLS A x = b mit A = AT führt zu der Darstellung k
k
Pk−1 (AT )r 0 = ∑ κ kj wj
bzw.
Qk−1 (AT )r0 = ∑ κ kj wj .
j=1
j=1
Bei Anwendung von (5.11) und (3.26) hierauf folgt k
k
rTk ⋅ ∑ κ kj wj = ∑ ξk κ kj ⋅ vTk+1 wj = 0 j=1
j=1 k−1
⇒ rTk ⋅ rk = r Tk ⋅ Rk (AT )r 0 = (−1)k ∏ λj ⋅ r Tk Ak ⋅ r0 + rTk Pk−1 (A)r 0 j=0 k−1
⇒ rTk ⋅ rk = (−1)k ∏ λj ⋅ (rT0 Rk (AT )Ak r0 ) . j=0
(5.72)
5.5 Das Bi-Conjugate-Gradient-Stabilized-Verfahren (BiCGSTAB-Verfahren) |
49
Die identische Herleitung mit der Vektordefinition z k = Zk (AT )r 0 ergibt. k−1
T
rTk ⋅ z k = zk ⋅ rk = rT0 Zk (A)Rk (A)r 0 = rT0 ⋅ rk̂ = (−1)k ∏ μ j ⋅ (rT0 Rk (AT )Ak r0 )
(5.73)
j=0
rTk ⋅ rk
⇒
rTk
⋅
zk
=
rTk ⋅ rk rT0
⋅ rk̂
k−1
=∏ j=0
λj . μj
(5.74)
Aus (5.43) folgt mit obigen Gleichungen T
ηk = − ⇒
ηk = −
rk+1 rk+1 r kT r k λk ⋅ μk
T
rk+1 rk+1
=−
r Tk+1 z k+1
rTk+1 zk+1 rTk zk
Definiert man analog zu (2.1)
=−
⋅
rTk+1 z k+1 rTk zk
⋅
rTk z k rkT rk
k
= −∏ j=0
λj rTk+1 zk+1 k−1 μ j ⋅ ⋅∏ μj λ r Tk zk j=0 j
̂ ⋅ r k+1
(5.75)
̂ = b̂ − Â x̂k+1 , rk+1
(5.76)
rT0
λk ⋅ . μ k rT0 ⋅ rk̂
̂ so führt die Minimierung von rk+1 zur Lösung x̂ der Gleichung  x̂ = b.̂ Hierzu wird (2.10) auf (5.66) angewendet, d. h., es wird der Wert von μk gesucht, für den |(I − μ k ⋅ A)qk | minimal ist. Die Optimierungsbedingung gemäß (2.10) lautet in diesem Fall d d ((I − μk ⋅ A)qk )T ⋅ ((I − μk ⋅ A)qk ) = 2((I − μk ⋅ A)qk )T ⋅ ((I − μ k ⋅ A)qk ) = 0 dμ k dμ k ⇒ ((I − μk ⋅ A)qk )T A qk = 0 ⇒ myk =
qTk A qk (A qk )T (A qk )
⇒
μk ⋅ qTk AT A qk = qTk A qk
.
(5.77)
Umstellung von (5.76) und Einsetzen von (5.66) und (5.67) ergibt für  = A und b̂ = b: ̂ ) = A−1 (b − q ) + μk q = A−1 (b − rk̂ + λk ⋅ A ŷ ) + μk q x̂ k+1 = A−1 (b − rk+1 k k k k
⇒
x̂ k+1 = A−1 (b − rk̂ + λk ⋅ A ŷ ) + μk qk = x̂ k + λk ŷ + μk qk . k
k
(5.78)
̂ = 0 die Lösung des Wegen der Gleichsetzung von  und b̂ mit A und b ist x̂m bei rm GLS A x̂ = b. Im folgenden Ablaufdiagramm wird daher für sämtliche Größen wieder die bisher gebräuchliche Schreibweise ohne das Superskript̂ verwendet [6]. Das Verfahren neigt allerdings zu instabilem Verhalten und führt zu keinem brauchbaren Ergebnis, wenn die Divisoren in (5.63) und (5.77) zu kleine Werte anneh men. Um dies für λk zu vermeiden, wird der Iterationsprozess neu gestartet, wenn das Skalarprodukt rT0 z k einen bestimmten Wert unterschreitet. Dieser Wert wird über eine geeignet gewählte Konstante ϵ festgelegt und ist proportional zu dem Betrag des Vektors r0 sowie zk . Bei k ≥ 1 wird für den Restart der zuletzt errechnete Näherungs vektor xk als neuer Startvektor x0 eingesetzt. Im Fall k = 0 muss der bereits zu Beginn
50 | 5 Lösung einer linearen Matrizengleichung mit Krylov-Unterraum-Verfahren
des Iterationsprozesses angesetzte Näherungsvektor x0 verändert werden, damit sich die Iterationsergebnisse nicht wiederholen. Um einen zu kleinen Wert von μ k zu verhindern, wird der Betrag von qk über wacht. Wird dieser zu klein, werden bei der Berechnung von xk+1 und rk+1 im nächsten Iterationsschritt die mit μ k faktorisierten Summanden nicht einbezogen. Außerdem wird auf die Neuberechnung von ρ k+1 , ηk und y verzichtet. Das BiCGSTAB-Verfah k+1 ren muss auch abgebrochen werden, wenn der Divisor in (5.77) gegen Null strebt, also wenn sich im Iterationsverlauf pTk pk = 0 ergibt. In den Fällen qTk pk = 0 bzw. rT0 rk+1 = 0 muss das Verfahren ebenfalls abgebrochen werden, da wegen μ k = 0 bzw. λk+1 = 0 und daher xk+1 = xk die Konvergenz schwindet. Mittels einer Proberechnung kann festgestellt werden, ob die richtige Lösung gefunden wurde oder ob das Verfahren nicht konvergierte. Beliebige Wahl von x0 y := r0 := b − A x0 0
ρ 0 := rT0 r0 ;
k := 0
Solange |rk | > ε1 zk := A y
k
|rT0 zk | ≤ ε2 ⋅ |r0 | ⋅ |z k |
n λk :=
r T0 zk
s. (5.63)
qk := rk − λk ⋅ zk
s. (5.67) |qk | ≤ ε3
n pk := A qk ;
μ k :=
j
qTk pk pTk pk
s. (5.77)
xk+1 := xk + λk ⋅ y + μ k qk
xk+1 := xk +λk ⋅y
rk+1 := qk − μk ⋅ pk
rk+1 := qk
k
ρ k+1 := rT0 rk+1 ; y
j
ρk
k+1
ηk :=
s. (5.78)
k
s. (5.66)
λk ρ k+1 ⋅ μk ρk
s. (5.75)
:= rk+1 + ηk ⋅ (y − μ k z k )
k := k + 1
s. (5.68)
k
x0 := xk
Ablauf des BiCGSTAB-Verfahrens (ohne weitere Abbruchbedingungen)
5.6 Das Transpose-Free-Quasi-Minimal-Residual-Verfahren (TFQMR-Verfahren) |
51
5.6 Das Transpose-Free-Quasi-Minimal-Residual-Verfahren (TFQMR-Verfahren) Die Vorteile der CG-Verfahren mit denen des GMRES-Verfahrens zu verknüpfen war Auslöser für die Entwicklung des sogenannten TFQMR-Verfahrens. Hierbei werden die Beziehungen des CGS-Verfahrens durch die Einführung von neuen Größen derart umgeformt, dass sich hierauf die Herleitungen für den GMRES-Algorithmus einfach übertragen lassen. Bezugnehmend auf die Gleichungen und Vektoren in Abschnitt 5.4 werden die neuen Vektoren v2k+1 = pk ;
v2k+2 = qk
(5.79)
definiert. Setzt man die aus der Umstellung von (5.48) gewonnene Beziehung AYk (A) =
1 (Rk (A) − Rk+1 (A)) λk
(5.80)
in (5.55) ein und verwendet diese in den mit A multiplizierten Gleichungen (5.79), er hält man 1 A v2k+1 = A pk = Rk (A)AYk (A)r0 = (R2 (A)r 0 − Rk (A) ⋅ Rk+1 (A)r0 ) , (5.81) λk k 1 A v2k = A qk−1 = Rk (A)AYk−1 (A)r 0 = (Rk (A)Rk−1 (A)r 0 − R2k (A)r 0 ) . (5.82) λk−1 Mit Hilfe der unteren Gaußklammer ⌊x ∈ R⌋ = max{k ∈ Z | k ≤ x} kann geschrieben werden: (5.79)
⇒
(5.81)
⇒
vj = p
⌊j−1 2 ⌋
A vj =
für ungerade j ;
vj = q
⌊j−1 2 ⌋
für gerade j
1 (R2j−1 (A)r0 − R⌊(j+1)−1⌋ (A) ⋅ R⌊j+1⌋ (A)r 0 ) ⌊2⌋ 2 2 λ⌊j−1⌋
für ungerade j
2
(5.82)
⇒
A vj =
1 (R⌊ j ⌋ (A)R⌊j−1⌋ (A)r0 − R2(j+1)−1 (A)r0 ) ⌊ 2 ⌋ 2 2 λ⌊j−1⌋
für gerade j .
2
Definiert man die Vektoren wk = R2⌊k−1⌋ (A)r 0
für ungerade k ,
(5.83)
2
wk = R⌊k ⌋ (A)R⌊k−1⌋ (A)r 0 2
2
für gerade k ,
(5.84)
so kann für gerade und ungerade j, also für jedes ganzzahlige j, geschrieben werden: A vj =
1 (w − wj+1 ) . λ⌊j−1⌋ j
(5.85)
2
Hieraus kann für j = m = 2k − 1 die Vorschrift für die Konstruktion von wj abgeleitet werden: wm+1 = wm − λk−1 ⋅ A vm . (5.86)
52 | 5 Lösung einer linearen Matrizengleichung mit Krylov-Unterraum-Verfahren
Darüber hinaus gilt wegen (5.50) und (5.51): w2k+1 = rk λk−1 =
und w1 = r0 ;
rT0 w2k−1 rT0 zk−1
ηk−1 =
;
mit zk = A y ⇒
(5.88)
(5.59)
= A pk + ηk−1 ⋅ (ηk−1 ⋅ A y
k
(5.79)
(5.87)
rT0 w2k+1 rT0 w2k−1 k−1
+ A qk−1 )
zk = A v2k+1 + ηk−1 ⋅ (ηk−1 ⋅ zk−1 + A v2k ) .
(5.89)
Für (5.79) gilt mit (5.56) und (5.57) v2k+1 = pk = rk + ηk−1 ⋅ qk−1 = w2k+1 + ηk−1 ⋅ v2k ,
(5.90)
v2k = qk−1 = pk−1 − λk−1 ⋅ zk−1 = v2k−1 − λk−1 ⋅ zk−1 .
(5.91)
Aus (5.55) und (5.50) folgt für die Startvektoren: v1 = r0 ;
z 0 = A r0 .
(5.92)
Gleichung (5.85) lässt sich auch in Matrixschreibweise überführen: A[n,n] V [n,m] = W [n,m+1] B[m+1,m] . m m m
(5.93)
Die Spalten von V und W entsprechen obigen Vektoren, für die Elemente bjk der Ma trix B gilt: bkk = −b(k+1)k = λ−1 k−1 ⌊
2
⌋
für
1≤k ≤ m;
bij = 0 sonst .
(5.94)
Die Einführung der Vektoren v und w hat zum Ziel, für den Iterationsvektor xm eine der Darstellung (3.1) gleichlautende Beziehung zu finden. Wie bei der Herleitung von (5.81) und (5.82) bereits zu sehen ist, können v2k und v2k+1 als Matrizenpolynome vom Grad 2k − 1 bzw. 2k geschrieben werden: v2k = Rk (A)Yk−1 (A)r 0 = Z2k−1 (A)r0
und v2k+1 = Rk (A)Yk (A)r 0 = Z2k (A)r0 .
Gemäß (1.10) stellt somit vj auch hier einen Basisvektor in einem (j − 1)-dimensionalen Krylov-Raum dar, d. h., dass die mit (5.79) definierten Vektoren v1 bis vm einen m-di mensionalen Krylov-Raum aufspannen: span{v1 , v2 , . . . , vm } = K m . Deshalb ist es zu lässig, Gleichung (3.1) auch hier, jedoch mit den Basisvektoren nach Definition gemäß (5.79), für die Iterierte xm anzusetzen. Dementsprechend gilt für den Residuenvektor bei Anwendung von (5.93) [n]
[n]
[n] [n,n] [n,m] [m] [m] r[n] − A[n,n] x[n] V m α m = r0 − W [n,m+1] B[m+1,m] αm . m =b m m m = r0 − A [n]
[n]
[n,m+1] [m+1] e1 , ergibt
Setzt man für (5.87) r0 = w1 = W m [m+1]
[n,m+1] r[n] (e1 m = Wm
sich [m+1]
[m] − B[m+1,m] αm D−1 ) = W [n,m+1] m m m (Dm e1
[m] − Dm B[m+1,m] αm ) , m
5.6 Das Transpose-Free-Quasi-Minimal-Residual-Verfahren (TFQMR-Verfahren) |
[m+1,m+1]
wobei als Vorkonditionierer die Diagonalmatrix Dm Diagonalelemente gilt:
eingeführt wird, für deren
(D[m+1,m+1] )kk = dkk = |wk | m [m+1]
[n,m+1]
(5.95)
[m+1]
⇒ D[m+1,m+1] e1 m
= |w1 | ⋅ e1
[m+1]
⇒ r[n] m = Wm
53
[m] − H [m+1,m] αm ) m
(|w1 | ⋅ e1
(5.96)
mit [n,m+1]
Wm
w
w2 |w2 | ,
1 , = W [n,m+1] D−1 m m = [ |w | 1
H [m+1,m] = D[m+1,m+1] B[m+1,m] m m m hkk =
⇒
⇒
|wk | ; λ⌊k−1⌋
wm+1 |wm+1 | ]
...,
,
(5.97)
)jk = hjk = |wj | ⋅ bjk (H [m+1,m] m
h(k+1)k = −
2
|wk+1 | ; λ⌊k−1⌋
(5.98)
hjk = 0 .
(5.99)
2
[n]
Setzt man (5.87) in (5.96) ein, so ergibt sich aus der Minimierungsbedingung für rm dieselbe Beziehung, die schon zur Vorbereitung des GMRES-Verfahrens mit (3.40) for muliert wurde: [m+1]
[m] αm = |r0 | ⋅ e1 H [m+1,m] m
r[n] m =0
⇒
⇒
[n] A[n,n] x[n] . m =b
(5.100)
[m+1,m]
wird das Givens-Verfahren Zur Elimination der unteren Nebendiagonalen in H m gemäß Abschnitt 4.4 angewendet. Wie in Abschnitt 5.1 gilt hier für k = m: [(k+1),k] [k] αk
Ck [(k+1),k]
mit Ck
[(k+1),(k+1)]
= Uk
(k+1)(k+1)
= Uk
[(k+1),k]
[k+1]
|r0 | ⋅ e1
= g[k+1]
[(k+1),(k+1)]
Hk
und U k
(5.101)
k
1
(k+1)(k+1)
= ∏ G(j+1)j
. (5.102)
j=k
[n]
[k+1,k]
Für k < m ist nach obigen Annahmen |rk | > 0. In diesem Fall sind auch (H k
[k+1,k] )(k+1)k (Ck
[k+1] (g k )(k+1)
)(k+1)k ,
und gk(k+1) = von Null verschieden und (5.101) ist nicht gültig. Eine hinreichende und notwendige Bedingung für einen verschwindenden [n] [m+1,m] Residuenvektor im m-ten Iterationsschritt, also für |rm | = 0, ist (H m )(m+1) m = [m+1,m] [m+1,m] )(m+1) m = gm(m+1) = 0. Dann gilt (Cm )(m+1)j = 0 für alle j, also für (Cm 1 ≤ j ≤ m. Die Auswertung der Beziehungen in Abschnitt 4.4 liefert für k ≤ m [(m+1),(m+1)]
Uk
1
(m+1)(m+1)
= ∏ G(j+1)j j=k
(m+1)(m+1)
= G(m+1) m ⇒ U [(m+1),(m+1)] m
[(k+1),(k+1)]
Uk = [ [(m−k),(k+1)] 0 1
0[(k+1),(m−k)] ] I [(m−k),(m−k)]
(5.103)
(m+1)(m+1)
⋅ ∏ G(j+1)j j=m−1
[(m−1),(m−1)]
I [ = [ (0[m−1] )T [m−1] T ) [ (0
0[m−1] κm −σ m
0[m−1] [m,m] ] U σ m ] ⋅ [ m−1 (0[m] )T κm ]
0[m] ] 1
(5.104)
54 | 5 Lösung einer linearen Matrizengleichung mit Krylov-Unterraum-Verfahren
⇒ C[(m+1),m] =[ m
C[m,m] m ] (0[m] )T
I [(m−1),(m−1)] [ = [ (0[m−1] )T [m−1] )T [ (0 (4.30)
⇒
I [(m−1),(m−1)] [ [ (0[m−1] )T [m−1] T ) [ (0
0[m−1] κm σm
I [(m−1),(m−1)] [ (0[m−1] )T
⇒
⇒ C[m,m] =[ m
0[m−1] κm −σ m
0[m−1] [m,m] [m,m] U m−1 ⋅ H m ] ] σ m ] ⋅ [ [m−1] T (0 ) h(m+1) m κm ]
(5.105)
0[m−1] [m,m] [m,m] [m,m] U m−1 ⋅ H m ] C ] −σ m ] ⋅ [ m[m] T ] = [ [m−1] T (0 ) (0 ) h(m+1) m κm ]
0[m−1] [m,m] = U m−1 H [m,m] ] ⋅ C[m,m] m m κm
I [(m−1),(m−1)] (0[m−1] )T
0[m−1] [m,m] ] ⋅ U m−1 H [m,m] . m κ −1 m
(5.106)
Aus (5.98) ergibt sich H [m+1,m] m (5.106)
⇒
(5.104)
⇒
0[m−1] ] hmm ] h(m+1) m ]
[m,m−1]
[H = [ m−1 [m−1] T ) [(0
⇒
[m,m−1]
= [H m−1 H [m,m] m
C[m,m] =[ m
I [(m−1),(m−1)] (0[m−1] )T
0[m−1] [m,m−1] ] ⋅ [U [m,m] m−1 ⋅ H m−1 κ −1 m
=[
I [(m−1),(m−1)] (0[m−1] )T
0[m−1] ] ⋅ [C[m,m−1] m−1 κ −1 m
=[
I [(m−1),(m−1)] (0[m−1] )T
[m−1,m−1] 0[m−1] C ] ⋅ [ m−1 −1 κm (0[m−1] )T
C[m,m] m
[m−1,m−1]
[C = [ m−1 [m−1] T ) [ (0
0[m−1] ] hmm
[m] hmm ⋅ um ]
[m] hmm ⋅ um ] [m]
hmm ⋅ um ]
0[m−2] ] c(m−1) m ] . cmm ]
(5.107)
Mit der Definition nach (5.101) und Anwendung von (5.104) ergibt sich (k+1)(k+1)
g[k+1] = Uk k
[k+1]
|r0 | ⋅ e1
I [(k−1),(k−1)] [ = [ (0[k−1] )T [k−1] )T [ (0
0[k−1] κk −σ k
0[k−1] [k,k] ] U k−1 σ k ] ⋅ [ [k] (0 )T κk ]
I [(k−1),(k−1)] [k] gk [ ] = [ (0[k−1] )T =[ (gk )k+1 [k−1] )T [ (0
0[k−1] κk −σ k
|r0 | 0[k] ] ⋅ [ [k] ] (0 ) 1
[k−1] 0[k−1] g ] [ k−1 ] σ k ] ⋅ [(gk−1 )k ] κk ] [ 0 ]
[k−1]
gk−1 ] [ = [ κ k ⋅ (gk−1 )k ] . [−σ k ⋅ (gk−1 )k ]
(5.108)
5.6 Das Transpose-Free-Quasi-Minimal-Residual-Verfahren (TFQMR-Verfahren) |
55
Die Umstellung von (5.101) und Einsetzen von (5.108) führt für k = m zu −1
[m] = (C[m,m] αm ) m
−1
⋅ g [m] = (C[m,m] ) m m
−1
= (C[m,m] ) m
−1
⋅[
⇒
[m] αm = (C[m,m] ) m
⇒
[m] αm = κ 2m (C[m,m] ) m
[m−1,m−1]
+ (1 −
(κ 2m ⋅ [
[m−1]
⋅[
[m−1,m−1] [m−1] [m−1] g m−1 Cm−1 ⋅ α m−1 2 + − κ ]) ] (1 ) [ m 0 κ −1 m ⋅ (gm−1 )m
g [m−1] m−1 ] κ −1 m ⋅ (gm−1 )m
−1 (C[m,m] ) m
(5.107)
[m−1] g m−1 ] κ m ⋅ (gm−1 )m
Cm−1 ⋅ α m−1 ] κ m ⋅ (gm−1 )m
−1
κ 2m )
⋅[
0[m−2] [m−1] ] α c(m−1) m ] [ m−1 ] 0 cmm ]
[m−1,m−1]
[Cm−1 [ [m−1] )T [ (0
[m] [m] αm = κ 2m ν m + (1 − κ2m ) [
⇒
mit −1
[m] = (C[m,m] ) νm m
⋅[
κ −1 m
[m−1]
α m−1 ] 0
(5.109)
g[m−1] m−1 ] . ⋅ (gm−1 )m
(5.110)
Gleichung (5.110) lässt sich in eine andere Form bringen: −1
[m] = (C[m,m] νm ) m
[
I [(m−1),(m−1)] = ([ (0[m−1] )T (5.106)
⇒
0[m−1] [m,m] ] Cm ) κm
−1
= (U m−1 H [m,m] ) m ⇒
−1
[m] gm−1
0[m−1] I [(m−1),(m−1)] ][ κm (0[m−1] )T
I [(m−1),(m−1)] [m] νm = ([ (0[m−1] )T [m,m]
[m−1] g m−1 0[m−1] ] [ ] κ −1 (gm−1 )m m
I [(m−1),(m−1)] (0[m−1] )T
−1
0[m−1] [m,m] [m] ] ⋅ U m−1 H [m,m] ) g m−1 m κ −1 m
[m] g m−1 [m,m] −1
[m] H [m,m] νm = (U m−1 ) m
g[m]
(5.101)
m−1
[m]
= |r0 | ⋅ e1 .
(5.111)
Mit (5.99) folgt hieraus für k = 1 : ⇒
|w1 | ν1 = |r0 | ; λ0
für k > 1 :
|wk | |wk | νk − νk−1 = 0 λ⌊k−1⌋ λ⌊k−2⌋ 2
[m] )k = λ⌊k−1⌋ νk = (νm
2
für 1 ≤ k ≤ m
2
[m+1]
[m] νm − |r0 | ⋅ e1 ⇒ H [m+1,m] m
0[m] [m+1] =[ ] = −|wm+1 | ⋅ em+1 −|wm+1 |
(5.112)
56 | 5 Lösung einer linearen Matrizengleichung mit Krylov-Unterraum-Verfahren (5.108)(5.102)
[m+1]
|wm+1 | ⋅ U (m+1)(m+1) em+1 m
⇒
[m+1]
= |r0 | ⋅ U (m+1)(m+1) e1 m =
[m+1] gm
[m] − U (m+1)(m+1) H [m+1,m] νm m m
[m] (5.108)(5.110) − C[m+1,m] νm = m
[m−1] gm−1 g [m−1] ] ] [ −1 m−1 [ [ κ m ⋅ (gm−1 )m ] − [κ m ⋅ (gm−1 )m ] 0 ] [−σ m ⋅ (gm−1 )m ] [
0[m−1] ] [ = [(κ m − κ −1 m ) ⋅ (gm−1 )m ] [ −σ m ⋅ (gm−1 )m ] (4.30)
|wm+1 |2 ⋅ eTm+1 U Tm U m em+1 = |wm+1 |2 = (gm−1 )2m ⋅ (σ 2m + κ 2m + κ −2 m − 2)
⇒
= (gm−1 )2m (κ −2 m − 1) ⇒ |wm+1 | =
|σ m | ⋅ |(gm−1 )m | = |τ m | ⋅ |(gm−1 )m | mit |κ m |
κm = √
1 . 1 + τ2m
(5.113)
Schreibt man für (5.96) [n,m+1] [m+1] ρ m
r[n] m = Wm
mit
[m+1]
ρ [m+1] = |w1 | ⋅ e1 m
[m] − H [m+1,m] αm , m
(5.114)
so gilt wegen (5.101), (5.102), (5.105) und (5.108): [m,m]
[m,m] [m]
[m,m]
[m,m−1] [m−1] α m−1
U m−1 ρ [m] = |w1 | ⋅ U m−1 e1 − U m−1 H m−1 m−1
[m,m−1] [m−1] α m−1
= g[m] − Cm−1 m−1
g [m−1] g[m−1] = [ m−1 ] − [ m−1 ] (gm−1 )m 0 U [m+1,m+1] ρ [m+1] m m
=
g[m+1] m
−
[m] C[m+1,m] αm m
[m−1] [m−1] gm−1 g m−1 ] [ ] [ = [ κ m ⋅ (gm−1 )m ] − [κ m ⋅ (gm−1 )m ] 0 ] [−σ m ⋅ (gm−1 )m ] [
0[m] =[ ] −σ m ⋅ (gm−1 )m T
⇒
|ρ
m−1
|2 = ρ T
m−1
U Tm−1 U m−1 ρ
= (gm−1 )2m
(5.113)
=
m−1
=[
0[m−1] 0[m−1] ] [ ] (gm−1 )m (gm−1 )m
|wm+1 |2 |τ m |2 T
0[m] 0[m] |ρ |2 = ρ T U Tm U m ρ = [ ] [ ] m m m −σ m ⋅ (gm−1 )m −σ m ⋅ (gm−1 )m = σ 2m ⋅ (gm−1 )2m = σ 2m ⋅ |ρ ⇒
|τm | =
|wm+1 | |ρ | m−1
m−1
und |ρ | = |ρ m
|2
m−1
| ⋅ |κ m τm | .
(5.115)
5.6 Das Transpose-Free-Quasi-Minimal-Residual-Verfahren (TFQMR-Verfahren) |
57
Wegen (5.114) gilt [n]
W 0 ρ[1] = 0
w1 [1] r ρ = 0 ρ [1] = r0 0 |w1 | |r0 | 0
⇒
|ρ | = |r0 | .
(5.116)
0
Nach Einsetzen von (5.109) in (3.1) erhält man [m] xm = x0 + κ 2m V [n,m] νm + (1 − κ 2m ) V [n,m] [ m m
[m−1]
α m−1 ] 0
[m] νm = κ 2m (x0 + V [n,m] ) + (1 − κ 2m ) (x0 + V [n,m] [ m m
[m−1]
α m−1 ]) 0
= κ 2m x̂m + (1 − κ 2m ) xm−1 = xm = xm−1 + κ 2m (x̂ m − xm−1 ) = xm−1 + ξm dm
(5.117)
[n,m−1] [m−1] [m] νm = x0 + V m−1 ν m−1 + νm vm x̂m = x0 + V [n,m] m
mit
= x̂m−1 + λ⌊m−1⌋ vm
(5.118)
2
und
ξm = κ 2m ⋅ λ⌊m−1⌋ ; 2
dm =
1 (x̂ − xm−1 ) λ⌊m−1⌋ m
(5.119)
2
⇒
dm =
1 + λ⌊m−1⌋ vm − xm−2 − ξm−1 dm−1 ) (x̂ 2 λ⌊m−1⌋ m−1 2
= vm +
1 − ξm−1 dm−1 ) (λ m−2 d λ⌊m−1⌋ ⌊ 2 ⌋ m−1 2
= vm +
1 λ⌊m−1⌋ 2
⇒
(
ξm−1 dm−1 − ξm−1 dm−1 ) κ 2m−1
τ2 ⋅ ξm−1 dm = vm + m−1 dm−1 . λ⌊m−1 2 ⌋
(5.120)
Wegen d1 =
1 1 (x̂ 1 − x0 ) = (x + λ0 v1 − x0 ) = v1 λ0 λ0 0
ergibt sich d0 = 0
(5.121)
Das Iterationsverfahren bricht ab, wenn für sich für den Divisor in (5.88) rT0 z k−1 = 0 ergibt. Errechnet sich rT0 w2k−1 = 0, konvergiert das Verfahren wegen λ = 0 und damit ξ = 0 und xk = xk−1 nicht mehr und muss beendet werden. Die euklidische Matrixnorm [7] angewendet auf (5.114) führt wegen (5.97) zu r[n] = W [n,m+1] ρ [m+1] m m m m+1 n w2 [n,m+1] ρ [m+1] = √ ∑ ∑ jk ≤ W m m |wk |2 k=1 j=1
⋅ ρ [m+1] = √m + 1 ⋅ ρ [m+1] m m
und damit zu dem Abbruchkriterium bei Erreichen des Fixpunktes ‖rm ‖ ≤ √m + 1 ⋅ |ρ | ≤ √ϵ . m
(5.122)
58 | 5 Lösung einer linearen Matrizengleichung mit Krylov-Unterraum-Verfahren Beliebige Wahl von ε und x0 für v1 = w1 = r0 := b−A x0 ; x := x0 |ρ|2 := r0 ⋅ r0
s. (5.116) |ρ| > ε
j z 0 := A v1 ; λ :=
τ0 = ξ = 0 ;
d0 := 0 ;
n
k=1
s. (5.121)
rT0 w2k−1 rT0 zk−1
s. (5.88)
v2k := v2k−1 − λ ⋅ zk−1
s. (5.91)
m := 2k − 2 m := m + 1 wm+1 := wm − λ ⋅ A vm
s. (5.86)
|τ m |2 := κ 2 :=
|wm+1 |2 |ρ|2
1 ; 1 + τ2m
ξ = κ2 ⋅ λ ; |ρ|2 := |ρ|2 ⋅
s. (5.115) dm := vm +
τ2m−1 ⋅ ξ dm−1 λ
s. (5.113),(5.120)
x := x + ξ dm
s. (5.117)
τ 2m
s. (5.115)
1 + τ 2m (m + 1) ⋅ |ρ|2 > ε
j
s. (5.122) n
Ende m < 2k η :=
rT0 w2k+1
s. (5.88)
rT0 w2k−1 v2k+1 := w2k+1 + η ⋅ v2k
s. (5.90)
z k := A v2k+1 + η ⋅ (η ⋅ zk−1 + A v2k ) k := k + 1
s. (5.89) Ende
Ablauf des TFQMR-Verfahrens (ohne weitere Abbruchbedingungen)
5.7 Das QMRCGSTAB-Verfahren |
59
5.7 Das QMRCGSTAB-Verfahren Ähnlich wie beim TFQMR-Verfahren wird auch hier eine Verknüpfung zwischen dem GMRES-Verfahren und einem CG-Verfahren, und zwar dem BiCGSTAB-Verfahren, her gestellt. Hierzu werden zunächst die Gleichungen (5.66) und (5.67) umgestellt: 1 (q − r ) , μ j−1 j−1 j 1 A y = (r j − qj ) . j λj
A qj−1 =
(5.123) (5.124)
Mit der Einführung neuer Variablen soll nun erreicht werden, dass beide Gleichun gen durch eine einzige Beziehung ersetzt werden können, die dieselbe Gestalt hat wie (5.86) und die somit den Aufbau eines Gleichungssystems wie (5.96) ermöglicht, auf das sich der GMRES-Algorithmus anwenden lässt: 1 (w − wk+1 ) . βk k
A vk =
(5.125)
Für ungerade k gelte: k = 2j + 1
⇒
j=⌊
k−1 (k + 1) − 1 ⌋=⌊ ⌋ . 2 2
(5.126)
In diesem Fall sind (5.124) und (5.125) identisch, wenn gesetzt wird: für ungerade k :
vk = y = y k−1 ; ⌊2⌋
j
wk+1 = qj = q⌊(k+1)−1⌋
2
⇔
2
Für gerade k gelte: k = 2j
wk = rj = r ⌊k−1⌋ ;
β k = λj = λ⌊k−1⌋ 2
wk = q⌊k−1⌋ .
für gerade k :
2
k k−1 j=⌊ ⌋=⌊ ⌋+1. 2 2
⇒
(5.127)
(5.128)
Damit sind die Gleichungen (5.123) und (5.125) für gerade k identisch, wenn definiert wird: für gerade k :
vk = qj−1 = q
⌊k−1 2 ⌋
;
wk = q
⌊k−1 2 ⌋
= vk = qj−1 ;
β k = μ j−1 = μ ⌊k−1⌋
(5.129)
2
wk+1 = rj = r⌊k⌋ = r⌊(k+1)−1⌋ 2
2
(5.127)
⇔
wk = r⌊k−1⌋ 2
für ungerade k .
Hiermit kann wie in Abschnitt 5.6 die Beziehung = W [n,m+1] B[m+1,m] A[n,n] V [n,m] m m m [m+1,m]
aufgestellt werden, in der für die Elemente der Matrix Bm (B[m+1,m] )kk = bkk = m
1 ; βk
(5.130) gilt:
(B[m+1,m] )(k+1)k = b(k+1)k = −bkk ; m
bij = 0 sonst .
(5.131)
60 | 5 Lösung einer linearen Matrizengleichung mit Krylov-Unterraum-Verfahren
Für die Anfangswerte kann aus vorangehenden Gleichungen abgeleitet werden: v 1 = w1 = r 0 .
(5.132)
Aus (5.127) und (5.129) lässt sich ableiten, dass v2j+1 = y ;
v2j+2 = qj .
j
(5.133)
Nach (5.64) ist y und somit v2j+1 ein Polynom vom Grad 2j und nach (5.67) ist qj und j
v2j+2 ein Polynom vom Grad 2j + 1. Laut (1.10) sind damit vk und vk+1 Vektoren in den Krylov-Unterräumen K k und K k+1 und können als linear unabhängige Basisvekto ren zur Aufstellung der Iterationsgleichung (3.1) herangezogen werden. Entsprechend folgt hiermit wiederum [n]
[n]
[n] [n,n] [n,m] [m] [m] r[n] − A[n,n] x[n] V m α m = r0 − W [n,m+1] B[m+1,m] αm . m =b m m m = r0 − A [n]
[n]
[n,m+1] [m+1] e1
Setzt man wieder r0 = w1 = W m
[m+1]
[n,m+1] r[n] (e1 m = Wm
ein, ergibt sich wie in Abschnitt 5.6
[m] − B[m+1,m] αm ) m [m+1]
D−1 = W [n,m+1] m m (Dm e1
[m] − Dm B[m+1,m] αm ) , m
(5.134)
[m+1,m+1]
eingeführt wird, für deren wobei als Vorkonditionierer die Diagonalmatrix Dm Diagonalelemente gilt: (5.135) (D[m+1,m+1] )kk = dkk = |wk | m ⇒
[m+1]
D[m+1,m+1] e1 m
[m+1]
= |w1 | ⋅ e1
.
Aufgrund der Gleichheit von (5.134) und (5.96) können die Beziehungen (5.97) bis (5.111) übernommen werden. Wegen (5.131) ist (5.99) jedoch nur für ungerade k über tragbar, für gerade k gilt hingegen: hkk =
|wk | |wk | = ; βk μ ⌊k−1⌋
h(k+1)k = −
2
|wk+1 | |w | = − k+1 ; βk μ ⌊k−1⌋
hjk = 0 sonst .
(5.136)
2
Damit folgt analog zu (5.112) ff.: für k = 1 :
|w1 | ν1 = |r0 | ; β1 ⇒
für k > 1 :
[m] νk = (ν m )k = β k
für
|wk | |w | νk − k νk−1 = 0 βk β k−1 1≤k≤m.
(5.137)
Die Beziehungen (5.113) bis (5.117) des TFQMR-Verfahrens können ebenfalls übernom men werden. Ersatzweise für (5.118) bis (5.121) gilt: [n,m−1] [m−1] [m] νm = x0 + V m−1 νm−1 + νm vm = x̂m−1 + β m vm x̂m = x0 + V [n,m] m
und
ξm = κ 2m ⋅ β m ;
1 dm = (x̂ − xm−1 ) βm m
(5.138) (5.139)
5.7 Das QMRCGSTAB-Verfahren |
⇒
dm = vm +
τ2m−1 ⋅ ξm−1 dm−1 βm
mit d0 = 0 .
61
(5.140)
Für ungerade m, also m = 2k − 1, ergeben sich aus obigen Beziehungen: (5.115)
⇒
|τ2k−1 | =
|w2k | |ρ |
(5.129)
=
2(k−1)
(5.133),(5.127)
⇒
d2k−1 = y
k−1
(5.139),(5.127)
⇒
+
|qk−1 | |ρ
|
(5.141)
d2(k−1)
(5.142)
2(k−1)
τ22(k−1) ⋅ ξ2(k−1) λk−1
ξ2k−1 = κ 22k−1 ⋅ λk−1 .
(5.143)
Für gerade m = 2k gilt: (5.115)
⇒
|τ2k | =
|w2k+1 | |ρ |
(5.127)
=
2k−1
d2k = qk−1 +
(5.139),(5.129)
ξ2k = κ 22k ⋅ μ k−1 .
⇒
(5.144)
2k−1
τ22k−1 ⋅ ξ2k−1 d2k−1 , μ k−1
(5.133),(5.129)
⇒
|rk | , |ρ |
(5.145) (5.146)
Zwei verschiedene Effekte führen zu einem Abbruch der Iteration, d. h., dass in diesen Fällen mit dem QMRCGSTAB-Verfahren i. d. R. keine Lösung ermittelt werden kann. Der erste Effekt tritt auf, wenn im Verfahrensablauf ein Divisor gegen Null strebt, so zum einen, wenn sich rT0 z k−1 = 0 bei der Berechnung von λk−1 und zum anderen (A qk−1 )T (A qk−1 ) = qTk−1 (AT A)qk−1 = 0 bei der Berechnung von μk−1 ergibt. Die letzte Gleichung beschreibt eine quadratische, semidefinite Form, welche gemäß [3] und [23] die Beziehung |AT A| = |AT | ⋅ |A| = 0 bedingt. Die Gleichung pTk−1 pk−1 = 0 führt somit zum Abbruch des Iterationsvorgangs aufgrund einer singulären Systemmatrix A. Der zweite Effekt, welcher zu einem Abbruch des Iterationsprozesses führt, tritt ein, wenn sich entweder rT0 rk−1 = 0 oder qTk−1 pk−1 = 0 oder rT0 r k = 0 ergibt. Damit folgt λk−1 = 0 oder μk−1 = 0 oder ηk−1 = 0 bzw. λk = 0 und hieraus wiederum ξ2k−1 = 0 oder ξ2k = 0 oder ξ2k+1 = 0. Gemäß (5.117) gilt dann jeweils x2k−1 = x2k−2 oder x2k = x2k−1 oder x2k+1 = x2k , d. h., dass der Näherungsvektor bereits der Lösungsvektor ist oder aber nicht weiter gegen den Lösungsvektor konvergiert. Mittels einer Proberechnung kann festgestellt werden, ob die richtige Lösung gefunden wurde oder ob das Verfah ren nicht konvergierte. Zu Gunsten einer größeren Übersichtlichkeit werden die beschriebenen Abbruch kriterien in dem nachfolgenden Ablaufdiagramm für das QMRCGSTAB-Verfahren nicht dargestellt. Hierfür ergibt sich sodann folgendes Bild [6]:
62 | 5 Lösung einer linearen Matrizengleichung mit Krylov-Unterraum-Verfahren Beliebige Wahl von ε und x0 für y = r0 := b − A x0 0
|ρ | := |r0 |
s. (5.116)
0
|ρ | > ε 0
j z 0 := A y ;
d0 := 0 ;
0
τ0 = ξ0 = 0 ;
n
k=1
s. (5.140)
rT0 rk−1
λk−1 :=
s. (5.88),(5.127)
rT0 zk−1
qk−1 := rk−1 − λk−1 ⋅ z k−1 |qk−1 |
τ2k−1 :=
|ρ
2(k−1)
+
d2k−1 := y
k−1 κ 22k−1
ξ2k−1 :=
;
|
s. (5.67)
τ22(k−1) ⋅ ξ2(k−1)
⋅ λk−1
1 1 + τ 22k−1
s. (5.141), (5.113)
d2 (k − 1) ;
s. (5.142),(5.143)
κ 2k−1 := √
λk−1
x2k−1 := x2(k−1) + ξ2k−1 d2k−1
s. (5.117)
|ρ
s. (5.115)
2k−1
| := |ρ
2(k−1)
| ⋅ |κ 2k−1 τ2k−1 |
pk−1 := A qk−1 ;
μ k−1 :=
qTk−1 pk−1
s. (5.77)
pTk−1 pk−1
rk := qk−1 − μ k−1 ⋅ pk−1 τ2k :=
|rk | ; |ρ |
κ 2k := √
2k−1
d2k := qk−1 +
s. (5.66) 1 1 + τ 22k
s. (5.144), (5.113)
τ22k−1 ⋅ ξ2k−1 d2k−1 ; μ k−1
s. (5.145),(5.146)
ξ2k := κ 22k ⋅ μ k−1
x2k := x2k−1 + ξ2k d2k
s. (5.117)
|ρ | := |ρ
s. (5.115)
2k
2k−1
| ⋅ |κ 2k τ2k | √2k + 1 ⋅ |ρ | > ε 2k
j ηk−1 :=
s. (5.122) n
λk−1 rT0 rk ⋅ μ k−1 rT0 rk−1
y := rk + ηk−1 ⋅ (y k
k−1
s. (5.75) − μk−1 zk−1 )
s. (5.68)
zk := A y
k
k := k + 1
Ende Ende
Ablauf des QMRCGSTAB-Verfahrens (ohne weitere Abbruchbedingungen)
5.8 Ergänzungen zu den Krylov-Unterraum-Verfahren | 63
5.8 Ergänzungen zu den Krylov-Unterraum-Verfahren In Kapitel 2 wurde gezeigt, wie rekursive Formeln zur Lösung eines Gleichungssystems aus Optimierungskriterien gewonnen werden können. Für nicht-symmetrische Sys temmatrizen ergab sich die Bedingung (2.11), nach der r m+1 ⊥A y zu erfüllen ist, wobei m die Suchvektoren y bei den Krylov-Unterraum-Verfahren Elemente jeweils m-dimen m sionaler Räume K m sind, denen auch die Näherungslösungen xm angehören. Da A y m kein Vektor des Unterraums K m sein kann, spricht man hier von einer schiefen Projek tionsmethode. Die Forderung (2.11) wird als Petrov-Galerkin-Bedingung bezeichnet. Dementsprechend liegt z. B. bei dem GMRES-Verfahren oder auch dem BiCG-Verfah ren eine schiefe Projektionsmethode vor, was in Kapitel 3 gerade durch die Beziehung (3.3) und in Abschnitt 5.2 durch die Gleichung (5.38) deutlich wird. Bei symmetrischen, positiv definiten Systemmatrizen folgt aus dem Optimierungskriterium die als Galer kin-Bedingung bezeichnete Formel (2.15), also rm+1 ⊥y . In diesem Fall steht der Resi m duenvektor des (m+1)-ten Iterationsschritts senkrecht auf dem Krylov-Unterraum K m , so dass man von einer orthogonalen Projektionsmethode spricht. Beispiel hierfür ist das Verfahren der konjugierten Gradienten, dessen Herleitung am Ende des Kapitels 3 auf (2.15) aufbaut. Sämtliche hier behandelten Krylov-Unterraum-Verfahren basieren auf (3.4) und haben somit die Eigenschaft, dass sie spätestens im n-ten Iterationsschritt die exak te Lösung für die lineare Matrizengleichung liefern. Die Begründung hierfür liefert Gleichung (3.5), wobei jedoch unterstellt wird, dass die Berechnungen nicht durch Rundungsfehler o. ä. verfälscht werden. Man spricht von einem Verfahrensabbruch, wenn das Endresultat bereits im m-ten Iterationsschritt erzielt wird, wobei m < n gilt. Prinzipiell ist ein solcher Verfahrensabbruch gewünscht, da dieser mit kürzeren Rechenzeiten und einem geringeren Speicherbedarf – also die wesentlichen Grün de für die Anwendung eines iterativen Verfahrens – verbunden ist. Jedoch sind vor zeitige Verfahrensabrüche, bei denen das Näherungsergebnis noch zu große Abwei chungen von der exakten Lösung aufweist, auch möglich und müssen zur Vermei dung fehlerhafter Ergebnisse erkannt werden. Unter diesem Aspekt eignet sich das GMRES-Verfahren besonders, da es nicht vor Erreichen der exakten Lösung abbrechen kann. Zum Beweis dieser Eigenschaft ist die Äquivalenz folgender Aussagen zu bestä tigen: Das GMRES-Verfahren liefert im m-ten Schritt die exakte Lösung , K
(1)
⊂K
(2)
⊂ ⋅⋅⋅ ⊂ K
(m)
=K
(m+1)
h(m+1) m = 0 , zm = 0
gemäß (3.6) .
,
(5.147) (5.148) (5.149) (5.150)
64 | 5 Lösung einer linearen Matrizengleichung mit Krylov-Unterraum-Verfahren Im ersten Schritt wird gezeigt, dass (5.148) ⇔ (5.150) richtig ist: K (m) = K (m+1) ⇔ span {r0 , A r0 , . . . , Am−1 r0 } = span {r0 , A r0 , . . . , Am r0 } ⇔ span{v1 , v2 , . . . , vm } = span{v1 , v2 , . . . , vm , zm } ⇔ zm ∈ span{v1 , v2 , . . . , vm } m
⇔ wegen vTk ⋅ zm = vTk ⋅ ∑ ζj vj = 0 für k ≤ m : j=1
ζj = 0
für 1 ≤ j ≤ m bzw. zm = 0 .
Die Richtigkeit von (5.149) ⇔ (5.150) folgt aus (3.7). Damit gilt auch (5.149) ⇔ (5.148). Für den letzten Beweisschritt, dass (5.147) ⇔ (5.149) gültig ist, wird wie bei der Herlei tung von (3.37) verfahren, wobei (3.39) berücksichtigt wird: [n,k+1]
r k = r0 − V k+1
[k+1,k]
Hk
(3.14)
[n,k+1]
αk = V k+1
[k+1]
(|r0 |e1
[k+1,k] [k] αk )
− Hk
.
(5.151)
Unter der Annahme, dass vk+1 ≠ 0 gilt, kann wegen (3.9) sowie (4.30) geschrieben werden: [n,k+1] T [n,k+1] V k+1 V k+1 = I [k+1,k+1] = U [k+1,k+1] T U [k+1,k+1] . (5.152) Somit gilt für |rk |2 = rTk rk : [k+1]
|rk |2 = (U [k+1,k+1] (|r0 |e1
[k+1]
⋅ (U [k+1,k+1] (|r0 |e1
[k+1,k] [k] T α k ))
− Hk
[k+1,k] [k] α k ))
− Hk
.
(5.153)
Mit den Definitionen in (5.1) erhält die Gleichung folgende Form: [k] [k] 2 |rk | = q[k+1] − C[k+1,k] α k = √q2k+1 + q[k] − C[k,k] α k ≥ qk+1 . [n,k+1]
[k+1,k]
[n,k]
(5.154)
[k,k]
in (5.151) durch V k H k zu ersetzen. Im Fall, dass vk+1 = 0 gilt, ist V k+1 H k Die Gleichungen (5.152) und (5.153) können damit auf jeweils k-zeilige/-spaltige Matri zen übertragen werden, so dass sich analog zu (5.154) ergibt: [k] |rk | = q[k] − C[k,k] α k .
(5.155)
In Kapitel 2 wurde gezeigt, dass die quadratische Form |rk |2 für die exakte Lösung xk = A−1 b minimal wird bezüglich der Variablen yk , die hier der Vektorkomponente α k entspricht. Wie hieraus unmittelbar hervorgeht, nimmt |rk | für die exakte Lösung das absolute Minimum, also den Wert Null an. Für das Eintreten von (5.147) ist es gemäß (5.154) und (5.155) notwendig und hinreichend, dass gilt: [m] a) C[m,m] α m = q[m]
b) vm+1 = 0 oder
und qm+1 = 0 .
(5.156)
5.8 Ergänzungen zu den Krylov-Unterraum-Verfahren | 65
Da die Äquivalenz von (5.149) und (5.150) bereits bewiesen wurde, kann die Beziehung vm+1 = 0 unter b) mit h(m+1) m = 0 gleichgesetzt werden. Ebenso folgt die Äquivalenz von qm+1 = 0 unter b) mit h(m+1) m = 0 aus der Folgerung aus den Formeln (5.4) und (5.5) in Abschnitt 5.1 und direkt aus (5.108) nach Übertragung dieser Formel auf die Schreibweise von (5.1). Damit kann die Bedingung b) lediglich auf h(m+1) m = 0 be schränkt werden. Wie in Abschnitt 5.1 nachzulesen ist, werden sämtliche Formeln des GMRES-Algorithmus von (5.1) abgeleitet. Diese Gleichung entspricht für h(m+1) m = 0 exakt der Bedingung a), d. h., dass allein durch den Algorithmus die Gültigkeit der Be dingung a) schon sichergestellt ist, wenn b) zutrifft. Die Bedingungen a) und b) sind also äquivalent und man kann schreiben: xm = A−1 b ⇔ h(m+1) m = 0 bzw.
(5.147) ⇔ (5.149) .
Mit der somit bewiesenen Äquivalenz der Aussagen und Gleichungen (5.147) bis (5.150) ist auch der Beweis erbracht, dass das GMRES-Verfahren stets durch einen regulären Abbruch beendet wird und nie durch einen vorzeitigen Abbruch, der auch als ernst hafter Abbruch (serious break-down) bezeichnet wird. Das GMRES-Verfahren liefert also, wenn man Rundungsfehler ausschließt, sicher die exakte Lösung, wobei nur im ungünstigsten Fall n Iterationen, im Idealfall aber wesentlich weniger Durchläu fe erforderlich sind. Allerdings sind Rundungsfehler nicht vermeidbar und können sogar die Unwirksamkeit der Abbruchbedingung herbeiführen. Eine mögliche Ursa che besteht beispielsweise darin, dass wegen der Rundungsfehler die Orthonormalität der generierten Basisvektoren verlorengeht. Auf Gegenmaßnahmen zur Verhinderung solcher Effekte soll aber an dieser Stelle nicht näher eingegangen werden. Neben Rundungsfehlern gibt es auch weitere Gründe für das Versagen eines itera tiven Verfahrens. Bei Methoden, die auf dem Bi-Lanczos-Algorithmus beruhen, kann im Gegensatz zum GMRES-Verfahren durchaus ein ernsthafter Abbruch auftreten, wo durch das Ergebnis nicht akzeptable Abweichungen von der richtigen Lösung aufwei sen kann. Der Grund hierfür wird durch Gleichung (3.34) deutlich, nach der das Ab bruchkriterium h(m+1) m = 0 nicht nur für vm+1 = 0 oder wm+1 = 0 erfüllt wird, sondern auch dann, wenn vm+1 ⊥wm+1 gilt. Diese ungünstige Eigenschaft liegt z. B. beim BiCG- und CGS-Verfahren vor. Auch beim BiCGSTAB-Algorithmus in der in Abschnitt 5.5 gezeigten Form kann ein ernsthafter Abbruch nicht ausgeschlossen werden. Mit weiteren Eingriffen, auf die hier nicht näher eingegangen wird, lassen sich aber Verbesserungen hinsichtlich die ser Eigenschaft erreichen [6]. Das Verfahren der konjugierten Gradienten zählt zu den älteren der hier beschrie benen Krylov-Unterraum-Verfahren und wurde bereits 1952 von Hestenes und Stiefel veröffentlicht. Seine Weiterentwicklung durch Fletcher führte zu dem 1975 bekannt ge wordenen BiCG-Verfahren. Eine andere Richtung in der Weiterentwicklung schlugen Saad und Schultz ein und stellten 1986 das GMRES-Verfahren vor. Während Sonneveld 1989 das CGS-Verfahren als Weiterentwicklung aus dem BiCG-Verfahren veröffentlich te, kombinierten Freund und Nachtigall die Methoden vom BiCG- und GMRES-Verfah
66 | 5 Lösung einer linearen Matrizengleichung mit Krylov-Unterraum-Verfahren
ren, woraus sich das QMR-Verfahren ergab, welches eine Reduzierung des Speicher platzbedarfs gegenüber dem GMRES-Verfahren ermöglicht. Auf Basis des BiCG- und des CGS-Verfahrens gelang es van der Vorst 1992 mit dem sogenannten BiCGSTAB-Verfahren, die Oszillation des Residuums zu minimie ren. Freund nutzte wiederum die Kombination von QMR- und CGS-Verfahren zur Ver meidung von Multiplikationen mit der Matrix AT , woraus 1993 das TFQMR-Verfah ren resultierte. Das QMRCGSTAB-Verfahren nach Chan von 1994 stellt wiederum eine Kombination von TFQMR- und BiCGSTAB-Verfahren dar und ist charakterisiert durch einen nicht oszillierenden Residuenvektor bei geringstmöglichem Speicherbedarf und Rechenaufwand. Bei sämtlichen QMR-Verfahren sind die Basisvektoren wegen des zugrundeliegenden Bi-Lanczos-Algorithmus jedoch nicht notwendigerweise orthogo nal, so dass also im Gegensatz zum GMRES-Verfahren nur von einer Quasiminimie rung gesprochen werden kann. Die wesentlichen Merkmale, an denen die Eignung eines Iterationsverfahrens festgemacht werden kann, sind neben Speicherbedarf und Rechenumfang des Al gorithmus, welcher mit der Rechendauer direkt zusammenhängt, insbesondere das Konvergenzverhalten, das ebenfalls die Rechendauer entscheidend beeinflusst und dem ein eigenes Kapitel gewidmet ist. Speicherbedarf und Rechendauer werden se parat in einem nachfolgenden Kapitel behandelt und für die einzelnen Verfahren ver glichen bzw. einander gegenübergestellt. Der Einfluss von Rundungsfehlern auf die Stabilität des Verfahrens und die Qualität der Ergebnisse, was auch ein wichtiges Be urteilungskriterium für das jeweilige Lösungsverfahren darstellt, wird in Abschnitt 7.2 angesprochen.
6 Lösung einer linearen Matrizengleichung mit der Splitting-Methode Neben den Krylov-Unterraum-Verfahren gehören auch Verfahren, die auf der SplittingMethode basieren, zu den iterativen Algorithmen. Der Grundgedanke der SplittingMethode kann mit der Gleichung b = A x = c ⋅ B xm+1 + (A − c ⋅ B)xm
(6.1)
beschrieben werden, deren Richtigkeit für lim xm+1 = lim xm = x sofort plausibel wird. Noch deutlicher wird dies mit folgender Darstellung von (6.1): c ⋅ B(xm+1 − xm ) = A(x − xm ) = b − A xm = rm ⇒ xm+1 = (I − c
−1
⋅B
−1
A)xm + c
−1
−1
⋅ B b = xm + c
(6.2) −1
−1
⋅ B rm .
(6.3)
Der Vergleich von (6.3) mit (3.1) zeigt, dass B−1 rm an die Stelle von α m vm tritt. Während alle vk für 1 ≤ k ≤ m einen m-dimensionalen Krylov-Unterraum aufspannen, ist dies bei den Vektoren B−1 rk nicht der Fall. Mit den Definitionen für die Matrizen R, D, L (R)jk = ajk
für j < k ;
(D)jk = ajk
für j = k ;
(L)jk = ajk
für j > k ,
(6.4)
wobei alle anderen Elemente auf Null gesetzt werden, so dass also R+D+L=A
(6.5)
gilt, können folgende Festsetzungen getroffen werden: B=D,
Jacobi-Verfahren:
(6.6) −1
Gauß-Seidel-Verfahren :
B = D+c L,
(6.7)
Richardson-Verfahren:
B=I.
(6.8)
Beim Jacobi- und Gauß-Seidel-Verfahren gilt c = 1. Für beide Verfahren kann wie beim Richardson-Verfahren aber auch c ≠ 1 eingesetzt werden, in diesem Fall spricht man von dem Jacobi- bzw. Gauß-Seidel-Relaxationsverfahren. Geeignete Werte für c erge ben sich aus Konvergenzkriterien, die in Kapitel 7 behandelt werden. Setzt man (6.6) bzw. (6.7) in (6.3) ein, erhält man für c = 1 ̂ + b̂ mit (A)̂ jk = − ajk xm+1 = Ax m ajj
für j ≠ k ;
(A)̂ kk = 0 ;
bj (b)̂ j = ; ajj
(6.9)
xm+1 = (I − (D + L)−1 (D + L + R)) xm + (D + L)−1 b = −(D + L)−1 (R xm − b) ⇒ https://doi.org/10.1515/9783110644173-006
(D + L)xm+1 = b − R xm .
(6.10)
68 | 6 Lösung einer linearen Matrizengleichung mit der Splitting-Methode
Damit ergeben sich für die einzelnen Vektorkomponenten (xm+1 )j =
Jacobi-Verfahren:
n 1 (bj − ∑ ajk ⋅ (xm )k ) , ajj k=1
(6.11)
k ≠ j
j−1
Gauß-Seidel-Verfahren :
(xm+1 )j =
n 1 (bj − ∑ ajk ⋅ (xm+1 )k − ∑ ajk ⋅ (xm )k ) . ajj k=1 k=j+1
(6.12) Wenn c ≠ 1 gilt, liegt ein sogenanntes Relaxationsverfahren vor. Ausgehend von (6.2) ergibt sich mit (6.6) für das Jacobi-Relaxationsverfahren in Komponentenschreibwei se: n 1 (xm+1 )j = (xm )j + (bj − ∑ ajk ⋅ (xm )k ) cajj k=1 ⇒
Jacobi-Relaxationsverfahren: (xm+1 )j = (1 − c−1 )(xm )j +
n 1 (bj − ∑ ajk ⋅ (xm )k ) . cajj k=1
(6.13)
k ≠ j
Analog folgt mit (6.7) aus (6.2): (c ⋅ D + L)xm+1 = (c ⋅ D + L)xm + b − (D + L + R)xm = (c − 1) ⋅ D xm + b − R xm ⇒
c ⋅ D xm+1 = (c − 1) ⋅ D xm + b − R xm − L xm+1
⇒ Gauß-Seidel-Relaxationsverfahren: (xm+1 )j = (1 − c−1 ) ⋅ (xm )j +
j−1
n 1 (bj − ∑ ajk ⋅ (xm )k − ∑ ajk ⋅ (xm+1 )k ) . c ⋅ ajj k=j+1 k=1
(6.14)
Mit (6.8) folgt aus (6.2) in Komponentenschreibweise: Richardson-Verfahren:
(xm+1 )j = (xm )j +
n 1 (bj − ∑ ajk ⋅ (xm )k ) . c k=1
(6.15)
Zur vereinfachten Darstellung eines Splitting-Verfahrens kann (6.3) ersetzt werden durch xm+1 = M xm + N b mit M = I − N A und N = c−1 ⋅ B−1 ⇒
M = N ⋅ (cB − A) .
(6.16) (6.17)
Für Konvergenzuntersuchungen und zur Bestimmung eines optimalen Werts von c werden in Kapitel 7 die Eigenwerte λk der Matrix M benötigt. Für diese gilt mit den Eigenvektoren uk : c = 1:
M uk = λ k uk
und |M − λk I| = 0
für
1≤k≤n.
(6.18)
6 Lösung einer linearen Matrizengleichung mit der Splitting-Methode | 69
Zwischen diesen und den Eigenwerten des zugehörigen Relaxationsverfahrens μk = λk (c ≠ 1) lässt sich beim Jacobi-Verfahren folgende Beziehung herstellen: (I − c−1 ⋅ D−1 A)uk = μk uk = ((1 − c−1 )I − c−1 ⋅ D−1 (R + L)) uk . Da sich die Eigenwerte des Jacobi-Verfahrens hieraus für c = 1 ergeben, gilt also λk uk = M uk = (I − D−1 A)uk = −D−1 (R + L)uk und somit ⇒
μ k uk = ((1 − c−1 )I + c−1 ⋅ λk ) uk μ k = (1 − c−1 ) + c−1 ⋅ λk = 1 + c−1 ⋅ (λk − 1) =
c − 1 + λk . c
(6.19)
Die Herleitung einer äquivalenten Beziehung für das Gauß-Seidel-Verfahren ist ver knüpft mit Konvergenzbetrachtungen, die im nachfolgenden Kapitel 7 behandelt wer den.
7 Konvergenzverhalten von iterativen Lösungsverfahren 7.1 Banach’scher Fixpunktsatz Ein iteratives Verfahrens zur Bestimmung der Lösung von A x = b konvergiert, wenn die Reihe der Residuen |rk | eine Nullfolge darstellt. Je größer die Degression der Folge ist, umso schneller führt das Verfahren zur gesuchten Lösung. Aussagen über diese Verfahrensmerkmale liefert der Banach’sche Fixpunktsatz, der sich auf die allgemei ner formulierte Iterationsvorschrift xk+1 = f (xk )
k = 0, 1, 2, . . .
(7.1)
bezieht. Wenn xk+1 = xk = x gilt, spricht man bei x von einem Fixpunkt bezüglich der Funktion respektive des Operators f : Definition: x ist ein Fixpunkt des Operators f ⇔ f : D ⊂ X → X und x = f (x) .
(7.2)
Hierbei wird das Element xk = x der Menge D, die eine Teilmenge von X ist, auf X abgebildet. Ist X ein normierter Raum (siehe Abschnitt 7.2) und gilt f: D⊂X →X
und ‖f (x) − f (y)‖ ≤ q ⋅ ‖x − y‖
mit 0 ≤ q < 1 ,
∀x, y ∈ D , (7.3)
dann ist f ein kontrahierender Operator und q die zugehörige Kontraktionszahl. In diesem Fall folgt unter der Voraussetzung, dass limk→∞ xk = x gilt, die Ungleichung 0 ≤ ‖f (xk ) − f (x)‖ ≤ q ⋅ ‖xk − x‖ → 0 für k → ∞ ⇒
lim f (xk ) = f (x) = f ( lim xk ) .
k→∞
(7.4)
k→∞
Gemäß [8] folgt aus obiger Ungleichung, dass f ein stetiger Operator ist. Außerdem besitzt er höchstens einen Fixpunkt, wie folgender Beweis zeigt: Wenn x und y Fixpunkte von f sind, dann gilt ‖x − y‖ = ‖f (x) − f (y)‖ ≤ q ⋅ ‖x − y‖
und somit (1 − q) ⋅ ‖x − y‖ ≤ 0 .
Aus (7.3) folgt aber, dass (1 − q) > 0 sein muss, und damit ist ‖x − y‖ = 0 die einzige Möglichkeit, denn die Norm kann keine negativen Werte annehmen. Das heißt also x = y, womit belegt ist, dass es nur höchstens einen Fixpunkt gibt. Der Banach’sche Fixpunktsatz lautet: f sei ein kontrahierender Operator, durch den ein Element aus der Teilmenge D eines normierten Raums X wiederum auf diese Teilmenge abgebildet wird, also es gelte analog zu (7.3): f: D⊂X→D
und ‖f (x) − f (y)‖ ≤ q ⋅ ‖x − y‖
https://doi.org/10.1515/9783110644173-007
mit 0 ≤ q < 1 ,
∀x, y ∈ D . (7.5)
72 | 7 Konvergenzverhalten von iterativen Lösungsverfahren
Dann gelten folgende Aussagen: 1.
2. 3.
Es existiert genau ein Fixpunkt x ∈ D von f und die durch (7.1) dargestellte Folge konvergiert für jeden beliebigen Startwert x0 ∈ D gegen x . qk ⋅ ‖x1 − x0 ‖ (a-priori-Fehlerabschätzung) . 1−q q ⋅ ‖xk − xk−1 ‖ (a-posteriori-Fehlerabschätzung) . ‖xk − x‖ ≤ 1−q ‖xk − x‖ ≤
(7.6) (7.7)
Beweis des Satzes: (7.1) (7.5) ‖xk+1 − xk ‖ = f (xk ) − f (xk−1 ) ≤ q ⋅ ‖xk − xk−1 ‖ ≤ ⋅ ⋅ ⋅ ≤ qk ⋅ ‖x1 − x0 ‖ (7.8) n−1 n−1 [9] (7.8) n−1 für k < n : ‖xk − xn ‖ = ∑ (xj − xj+1 ) ≤ ∑ xj − xj+1 ≤ ∑ qj ⋅ ‖x1 − x0 ‖ j=k j=k j=k ∞ k [10] q ⇒ ‖xk − xn ‖ ≤ qk ⋅ ∑ qj ⋅ ‖x1 − x0 ‖ = (7.9) ⋅ ‖x1 − x0 ‖ . 1−q j=0
Der Summenausdruck in (7.9) ist eine geometrische Reihe, die wegen q < 1 zum obigen Ergebnis führt. Für k → ∞ gilt ebenfalls wegen q < 1: lim ‖xk − xn ‖ = 0 .
(7.10)
k→∞
Nach dem Konvergenzkriterium von Cauchy strebt diese sogenannte Cauchy-Folge ge gen einen festen Wert, der hier als Fixpunkt x bezeichnet wird [11, 12]. Hierzu sind k und n nur beliebig groß zu wählen. Damit folgt für den Fixpunkt lim ‖x − xn ‖ = 0
n→∞
⇔
x = lim xn . n→∞
(7.11)
Einsetzen von (7.1) und (7.4) ergibt hierfür x = lim xn = lim f (xn−1 ) = f ( lim xn−1 ) = f (x) . n→∞
n→∞
n→∞
(7.12)
Da es nach obigen Ausführungen höchstens einen Fixpunkt geben kann und mit (7.12) belegt wird, dass dieser Fixpunkt für n → ∞ tatsächlich existiert, ist Aussage 1 bewie sen. Des Weiteren gilt mit (7.9): qk ⋅ ‖x1 − x0 ‖ . ‖xk − x‖ = lim ‖xk − xn ‖ ≤ n→∞ 1−q Damit ist auch Aussage 2 bewiesen. Die Anwendung der Dreiecksungleichung ge mäß [9] führt mit (7.1) und (7.5) zu: ‖xk − x‖ = f (xk−1 ) − f (x) = f (xk−1 ) − f (xk ) + f (xk ) − f (x) ≤ f (xk−1 ) − f (xk ) + f (xk ) − f (x) ≤ q ⋅ ‖xk−1 − xk ‖ + q ⋅ ‖xk − x‖ ⇒
(1 − q)‖xk − x‖ ≤ q ⋅ ‖xk−1 − xk ‖
Diese Gleichung entspricht (7.7), womit auch Aussage 3 bewiesen ist. Gleichung (7.1) stellt auch eine Grundlage für das Aufsuchen von Nullstellen einer Funktion mit der Gestalt y = f (x) − x dar.
7.2 Normen, Spektralradius und Konditionszahl
| 73
7.2 Normen, Spektralradius und Konditionszahl Der allgemeine Normbegriff wird bereits beim Beweis des Satzes für den Banach’schen Fixpunkt im vorangehenden Abschnitt 7.1 verwendet, wobei auf die nachfolgend zu sammengestellten Grundeigenschaften unter Verweis auf hierzu weiterführende Lite ratur Bezug genommen wurde. Bei der Herleitung von (5.122) wurde auch schon der Begriff der Matrixnorm verwendet. Dieser steht in engem Zusammenhang mit der Vek tornorm. Die Norm eines Vektors oder einer Matrix ist gleichbedeutend mit einer Abbil dungsvorschrift f (.) = ‖.‖, die auf den Vektor oder die Matrix angewendet wird und eine reelle Zahl als Ergebnis liefert. Man nennt diese Abbildung eine Norm auf X und schreibt hierfür ‖.‖ : X → R. Die Norm erfüllt für einen linearen Raum X folgende vier Grundeigenschaften: 1.
‖x‖ ≥ 0 (Positivität) ,
(7.13)
2.
‖x‖ = 0 ⇔ x = 0 (Definitheit) ,
(7.14)
3. ‖c ⋅ x‖ = |c| ⋅ ‖x‖ ∀x ∈ X ;
∀c ∈ C bzw. R
4. ‖x + y‖ ≤ ‖x‖ + ‖y‖ ∀x, y ∈ X
(Homogenität) ,
(Dreiecksungleichung) .
(7.15) (7.16)
Ist X ein mehrdimensionaler Raum, also X = Cn bzw. Rn , so liegt eine Vektornorm vor. Jede Abbildungsvorschrift kann zur Norm erklärt werden, wenn sie obige Definitionen erfüllt. Verbreitet sind folgende Normbegriffe, die zu ihrer Unterscheidung jeweils mit einem Index gekennzeichnet sind: n
1.
‖x‖1 = ∑ |xk | (Betragssummennorm) ,
(7.17)
k=1 n
2.
‖x‖2 = √ ∑ |xk |2 = |x| (Euklidische Norm) ,
(7.18)
k=1
3.
‖x‖∞ = max |xk | (Maximumnorm) . k=1,...,n
(7.19)
Es kann leicht überprüft werden, dass alle mit (7.17) bis (7.19) definierten Normen die Eigenschaften (7.13) bis (7.16) erfüllen. Die Betrachtungen können nun durch Einfüh rung der Matrix A[m,n] , die als linearer Operator auf den Vektor x angewendet wird und so den Vektor y = A x generiert, erweitert werden. Während ‖x‖ eine Norm auf dem Raum X darstellt, kann analog hierzu mit ‖y‖ eine Norm auf dem Raum Y de klariert werden, dessen Elemente die Vektoren y ∈ Y sind. Zu ihrer Unterscheidung kennzeichnet man die Normen mit ‖.‖X und ‖.‖Y . Zwischen beiden Normen besteht folgender Zusammenhang: x ) = ‖x‖X ⋅ A z Y ‖y‖Y = ‖A x‖Y = ‖x‖X ⋅ A ( ‖x‖X Y
mit ‖z‖X = 1 und z ∈ X .
74 | 7 Konvergenzverhalten von iterativen Lösungsverfahren Es sei Z eine Teilmenge von X, und zwar gelte: X ⊃ Z = {x ∈ X | ‖x‖ = 1}. Es sei ferner z̃ ∈ Z, für den ‖A z‖̃ Y ≥ ‖A z‖Y ; ∀z ∈ Z gilt. Dann ist ‖A z‖̃ Y die kleinste obere Schranke der Menge aller Elemente ‖A z‖Y , also das Supremum dieser Menge, mit dem dann gilt: ‖A x‖Y ≤ ‖x‖X ⋅ A z̃Y = ‖x‖X ⋅ sup A zY = ‖x‖X ⋅ sup A xY . ‖x‖X =1
⇒ Mit der oberen Schranke bzw. der Norm des Operators ‖A‖ = sup A xY (7.20) gilt :
‖A x‖Y ≤ ‖A‖ ⋅ ‖x‖X .
‖x‖X =1
(7.21)
Ungleichung (7.21) wird als Verträglichkeitsbedingung bezeichnet. Betrachtet man X und Y als Unterräume von Rn bzw. Cn und bezieht die Normen von x und y hierauf, kann die Indizierung in (7.20) und (7.21) entfallen und damit für die Matrixnorm ge schrieben werden: ‖A x‖ ‖A‖ = sup A x ≥ . (7.22) ‖x‖ ‖x‖=1 Die Norm ‖x‖1 nach (7.17) nimmt nur dann den Wert 1 an, wenn höchstens eine Kom ponente xk einen Betrag von 1 aufweist, der jeweilige Betrag sämtlicher anderer Kom ponenten aber kleiner als 1 ist. Ist zudem die Norm der k-ten Spalte in A gleich oder größer als die der anderen Spaltenvektoren, also wenn gilt ‖ak ‖ ≥ ‖aj ‖ für alle j ≠ k, dann gilt auch n (7.15),(7.16) n ‖y‖1 = ‖A x‖1 = ∑ xj ⋅ aj ≤ ∑ |xj | ⋅ aj 1 ≤ 1 ⋅ ‖ak ‖1 j=1 j=1 1 n
⇒
‖A‖1 = sup A x1 = max ‖ak ‖1 = max ∑ |ajk | (Spaltensummennorm) . k=1,...,n k=1,...,n ‖x‖=1
j=1
(7.23) Setzt man in (7.22) die Transponierte von A ein, erhält man n ‖A‖∞ = sup AT x∞ = max ∑ |ajk | (Zeilensummennorm) . j=1,...,n ‖x‖=1
(7.24)
k=1
Die Spalten- und Zeilensummennorm sind von der Vektornorm induzierte Matrixnor men. Wenn die euklidische Norm (7.18) auf den Vektor y = A x angewendet wird, gilt: 2 m m n ‖y‖2 = ‖A x‖2 = √∑ |yj |2 = √∑ ∑ ajk xk . j=1 j=1 k=1 Zieht man den Satz über die Cauchy-Schwarz’sche Ungleichung [13] heran, ergibt sich m
n
n
m
n
‖A x‖2 ≤ √∑ ( ∑ |ajk |2 ⋅ ∑ |xk |2 ) = √∑ ∑ |ajk |2 ⋅ |x|2 , j=1
k=1
k=1
j=1 k=1 m
n
‖A‖2 = sup A x2 ≤ ‖A‖F = √∑ ∑ |ajk |2 ‖x‖=1
j=1 k=1
(Frobenius-Norm) .
(7.25)
7.2 Normen, Spektralradius und Konditionszahl
| 75
Die Beziehungen (7.20) bis (7.25) gelten auch für nicht quadratische Matrizen, d. h. für m ≠ n. Somit ist es auch zulässig, die Formeln (7.22) und (7.25) für die Herleitung von (5.122) heranzuziehen. Für die Expansion der Verträglichkeitsbedingung auf ein Matrizenprodukt wird der Vektor z = B y zusätzlich eingeführt, mit dem aus (7.20) und (7.21) folgt: ‖B Ax‖Z = ‖B y‖Z ≤ ‖B‖ ⋅ ‖y‖Y = ‖B‖ ⋅ ‖A x‖Y ≤ ‖B‖ ⋅ ‖A‖ ⋅ ‖x‖X ⇒ ‖B ⋅ A‖ = sup B AxZ ≤ sup ‖B‖ ⋅ ‖A‖ ⋅ ‖x‖X = ‖B‖ ⋅ ‖A‖ ‖x‖X =1
⇒
‖x‖X =1
‖B ⋅ A‖ ≤ ‖B‖ ⋅ ‖A‖ .
(7.26)
Ist x ein Eigenvektor der Matrix A, gilt also λx = A x, dann folgt aus (7.22): ‖A‖ ≥
‖A x‖ ‖λx‖ = = |λ| . ‖x‖ ‖x‖
Die Nullstellen der charakteristischen Gleichung für A liefern die Eigenwerte und ihre Vielfachheit. Die zu einer Menge zusammengefassten Eigenwerte {λ1 , . . . , λn } wird als Spektrum und das betragsmäßig größte Element hierin als Spektralradius bezeichnet. Obige Ungleichung besagt, dass dieser Wert von einer induzierten Norm nicht unter schritten wird. Mit der Definition des Spektralradius
gilt also
ρ(A) = |λmax |
(7.27)
ρ(A) ≤ ‖A‖ .
(7.28)
Ein Zusammenhang zwischen der euklidischen Norm ‖A‖2 und dem Spektralradius ergibt sich aus (7.22) in Verbindung mit (7.18): 2 ‖A‖22 = sup A x2 = sup |A x|2 = sup (A x)T (A x) = sup xT (AT A x) . ‖x‖2 =1
‖x‖2 =1
‖x‖2 =1
‖x‖2 =1
Das Matrizenprodukt AT A ist symmetrisch bzw. bei komplexen Elementen hermitesch, womit n unitäre Eigenvektoren uk existieren, welche die Spalten der Matrix U bilden. Das Produkt U T AT A U = D ist eine Diagonalmatrix D mit den reellen Eigenwerten μ 1 , . . . , μ n des Matrizenprodukts auf der Hauptdiagionalen [14]. Setzt man y = U T x, wodurch wegen U T U = I der Vektor x = U y ersetzt werden kann, folgt bei Berücksich tigung von ‖U y‖2 = √(U y)T U y = √yT y = ‖y‖2 n
‖A‖22 = sup yT (U T AT A U y) = sup yT (D y) = sup ∑ μ k y2k . ‖U y‖2 =1
‖y‖2 =1
‖y‖2 =1 k=1
Auch hier nimmt die Norm ‖y‖2 gemäß (7.18) nur dann den Wert 1 an, wenn höchs tens eine Komponente yk einen Betrag von 1 aufweist, der jeweilige Betrag sämtlicher anderer Komponenten aber kleiner als 1 ist. Ist zudem μ k ≥ μj für alle j ≠ k, also
76 | 7 Konvergenzverhalten von iterativen Lösungsverfahren gilt μ k = μ max , dann folgt bei Erfüllung der Bedingung ‖y‖2 = 1 die Ungleichung ∑nk=1 μ k y2k ≤ μ max . Somit gilt: ‖A‖2 = √μ max . (7.29) Die Eigenwerte μ k der Produktmatrix AT A erfüllen die zugehörige charakteristische Gleichung, d. h., für sie gilt die Beziehung |μ k I−AT A| = 0. Ihre Wurzeln werden als Sin gulärwerte und ‖A‖2 als Spektralnorm oder auch Hilbert-Norm bezeichnet. Für die Ra dikanden wurden stillschweigend positive Werte vorausgesetzt. Diese Annahme trifft bei positiv (semi-)definiten Produktmatrizen zu. Mit ρ(AT A) = |μ max |
(7.30)
als Spektralradius für die Produktmatrix AT A ergibt sich für die Spektralnorm (Hil bert-Norm) (7.31) ‖A‖2 = √ρ(AT A) . Wenn A hermitesch bzw. symmetrisch ist, also wenn A = AT gilt, dann folgt wegen AT A = A2 die Beziehung μ k = λ2k [15]. In diesem Fall ist die Spektralnorm gleich dem betragsmäßig größten Eigenwert von A und entspricht dem Spektralradius von A: A hermitesch
⇒
‖A‖2 = √ρ(AT A) = ρ(A) = |λmax | .
(7.32)
Nachdem bewiesen wurde, dass der Spektralradius eine untere Schranke der Norm ist, soll nun der Beweis für die Ungleichung ‖A‖ ≤ ρ(A) + ϵ
ϵ>0
mit
(7.33)
erbracht werden. Hierzu wird von der Existenz einer unitären Matrix U ausgegangen, mit der nach dem Satz von Schur [16] eine rechte/obere Dreiecksmatrix U ∗ A U = R konstruiert werden kann, deren Diagonalelemente die Eigenwerte von A sind: (R)kk = rkk = λk . Im reellen Raum kann die komplexe Matrix U ∗ durch U T ersetzt werden. Mit der Dia gonalmatrix D, welche die Diagonalelemente 0 < (D)kk = δk−1 ≤ 1 besitzt, ergibt sich für das Matrizenprodukt C = D−1 R D = D−1 U ∗ A UD mit cjk = δk−j ⋅ rjk , wobei cjk = rjk = 0 für j > k gilt. Einsetzen dieser Gleichung und von y = D−1 U ∗ x = D−1 U −1 x führt zu ‖A‖ = sup A x = sup λx = sup λy ‖x‖=1 ‖x‖=1 ‖y‖=1 = ⇒
sup −1
−1
‖D U x‖=1
−1 −1 D U λx =
sup −1
−1
‖D U x‖=1
−1 −1 D U A x
‖A‖ = sup D−1 U −1 A U D y = sup C y = ‖C‖ . ‖y‖=1 ‖y‖=1
7.2 Normen, Spektralradius und Konditionszahl
| 77
Legt man fest, dass die Norm des Vektors y nach (7.24) gebildet wird, dass also die Zeilensummennorm ‖y‖∞ hierfür gelten soll, dann ist dementsprechend n n ‖A‖ = ‖C‖ = ‖C‖∞ = max ∑ |cjk | = max (|cjj | + ∑ δk−j ⋅ rjk ) . j=1,...,n j=1,...,n k=1
k=j+1
Es sei |rjm | = maxi,k=1,...,n |rik | das betragsgrößte Elemente der Matrix R. Da δ positiv ist, gilt n−(j+1)
n
‖A‖ ≤ max |cjj | + δ ⋅ |rjm | ⋅ ∑ δk−(j+1) = max |cjj | + δ ⋅ |rjm | ⋅ ∑ δk , j=1,...,n
k=j+1
j=1,...,n
k=0
‖A‖ ≤ max |cjj | + δ ⋅ |rjm | ⋅ (n − j) ≤ max |cjj | + δ ⋅ |rjm | ⋅ (n − 1) . j=1,...,n
j=1,...,n
Wegen ckk = rkk = λk gilt maxj=1,...,n |cjj | = λmax = ρ(A). Setzt man ϵ ≥ δ ⋅ |rjm | ⋅ (n − 1) ein, wobei 0 < δ ≤ 1 zwischen diesen Grenzen beliebig gewählt werden kann, ergibt sich die Richtigkeit von (7.33). Für ϵ kann bei endlichem n, also bei endlich dimensio nalen Räumen, ein beliebig kleiner positiver Wert angesetzt werden. Zusammen mit (7.28) führt dies zu der Gleichung ρ(A) = ‖A‖ .
(7.34)
Spektralradius und Normen dienen als Instrumente für die Beurteilung der Konver genz eines Iterationsverfahrens, wie in den nachfolgenden Abschnitten gezeigt wird. Auch die Konditionszahl übernimmt in diesem Kontext eine wichtige Funktion. Vor rangig jedoch wird sie definiert, um den Einfluss von Rundungsfehlern und auch die Konvergenzgeschwindigkeit bei iterativen Methoden abschätzen zu können. Aus gangsbasis ist das exakte Gleichungssystem, das mit A x = b dargestellt wird. Durch Rundungsfehler und andere Einflussfaktoren verändert sich dieses System in A(x + ∆x) = b + ∆b .
(7.35)
Hierfür folgt ∆x = A−1 ∆b und damit wegen (7.22) ‖∆x‖ ≤ ‖A−1 ‖‖∆b‖ ⇒
und ‖b‖ = ‖A x‖ ≤ ‖A‖‖x‖
−1
‖∆x‖ ‖A ‖‖∆b‖ ‖∆b‖ ≤ . = ‖A‖‖A−1 ‖ ‖x‖ ‖b‖ ‖A‖−1 ‖b‖
Mit der Definition der Konditionszahl
folgt also
cond(A) = ‖A‖‖A−1 ‖
(7.36)
‖∆b‖ ‖∆x‖ ≤ cond(A) . ‖x‖ ‖b‖
(7.37)
78 | 7 Konvergenzverhalten von iterativen Lösungsverfahren
Der Einfluss eines Rundungsfehlers auf das Ergebnis x ist also umso kleiner, je kleiner die Konditionszahl ist. Die untere Grenze der Konditionszahl ist vorgegeben durch ‖I −1 ‖ = ‖I‖ = sup ‖I x‖ = 1 ‖x‖=1
⇒
1 = ‖I‖ ⋅ ‖I −1 ‖ = cond(I) = ‖I‖ = ‖A A−1 ‖ ≤ ‖A‖‖A−1 ‖
⇒
cond(A) ≥ 1 .
(7.38)
Zwischen dem Residuenvektor nach (2.1) und dem Fehlervektor dm = x − xm = A−1 b − xm
(7.39)
rm = A ⋅ dm .
(7.40)
besteht der Zusammenhang
Hiermit folgt ‖r m ‖ = ‖A ⋅ dm ‖ ≤ ‖A‖ ⋅ ‖dm ‖
und ‖dm ‖ = ‖A−1 ⋅ rm ‖ ≤ ‖A−1 ‖ ⋅ ‖rm ‖
⇒
‖r m ‖ ‖dm ‖ 1 ≥ −1 ‖d0 ‖ ‖A‖ ⋅ ‖A ‖ ‖r0 ‖
⇒
‖r ‖ ‖d ‖ ‖rm ‖ ‖dm ‖ 1 ≤ ≤ cond(A) ⋅ m ≤ cond(A)2 ⋅ m . cond(A) ‖r0 ‖ ‖d0 ‖ ‖r0 ‖ ‖d0 ‖
und
‖r ‖ ‖dm ‖ ≤ ‖A‖ ⋅ ‖A−1 ‖ ⋅ m ‖d0 ‖ ‖r0 ‖ (7.41)
7.3 Konvergenz von Splitting-Verfahren Allgemein ist ein Iterationsverfahren f (x, b) konvergent, wenn es für jeden beliebigen Vektor b ∈ C und jeden beliebig gewählten Startwert x0 ∈ C einen vom Startwert unabhängigen Grenzwert gibt, also wenn gilt: x = lim xm = lim f (xm−1 , b) . m→∞
m→∞
(7.42)
Grundlage für Splitting-Verfahren ist Gleichung (6.16), für die somit die Konvergenz bedingung ρ(M) < 1 (⇔ für f (x, b) = M x + N b ist xm+1 = f (xm , b) konvergent)
(7.43)
erfüllt werden muss. Zunächst wird bewiesen, dass Konvergenz vorliegt, wenn der Spektralradius einen kleineren Betrag als 1 aufweist. In diesem Fall kann für ϵ fol gender Zusammenhang festgesetzt werden: (7.33) 1 1 0 < ϵ = (1 − ρ(M)) ⇒ ‖M‖ ≤ ρ(M) + ϵ = (1 + ρ(M)) < 1 2 2 ⇒ f (x, b) − f (y, b) = M(x − y) ≤ M x − y = q x − y mit ‖M‖ = q < 1 .
(7.44)
7.3 Konvergenz von Splitting-Verfahren | 79
Damit existiert gemäß dem Banach’schen Fixpunktsatz (7.5) genau ein Fixpunkt, ge gen den die Folge xm strebt. Für die Umkehrung der Beweisrichtung wird nun von der Voraussetzung ausgegangen, dass die Folge xm konvergiert, wobei o. B. d. A. b = 0 angesetzt wird. Dann gilt: xm+1 = f (xm , b) = M xm = λxm = λf (xm−1 , b) = ⋅ ⋅ ⋅ = λm+1 x0 . Für λ > 1 divergiert die Folge xm und für λ = 1 ist die Folge von der Wahl des Start vektors x0 abhängig. Somit ist Konvergenz nur dann erzielbar, wenn λ < 1 gilt. Da der Betrag des größten Eigenwerts dem Spektralradius entspricht, folgt die Richtigkeit von (7.43) auch für diese Beweisrichtung. Die mit (7.43) beschriebene Konvergenzbedingung wird auch in dem ungeeigne ten Fall M = 0 erfüllt. Zum Ausschluss derartiger Fälle wird die Konvergenzbedingung um ein weiteres Kriterium, und zwar die Konsistenz zur Matrix A, ergänzt, für die fol gende Definition getroffen wird: Ein Iterationsverfahren f (x, b) wird als konsistent zur Matrix A bezeichnet, wenn für jeden beliebigen Vektor b ∈ C die Lösung A−1 b ein Fixpunkt von f (x, b) ist. Hierfür gilt der Satz: Ein lineares Iterationsverfahren ist konsistent zur Matrix A ⇔
M =I−NA.
(7.45)
Zum Beweis des Satzes wird zunächst von der Annahme ausgegangen, dass für M die in (7.45) aufgestellte Gleichung gilt. Mit x = A−1 b als Fixpunkt des Iterationsverfahrens gilt gemäß (6.16) f (x, b) = M x + N b = x − N Ax + N Ax = x . Gleichung (7.2) wird also tatsächlich erfüllt, womit feststeht, dass aus dem vorgege benen Zusammenhang für M die Eigenschaft von x als Fixpunkt des Verfahrens und somit auch die Konsistenz des linearen Iterationsverfahrens folgt. Bei Umkehr der Be weisrichtung wird nun davon ausgegangen, dass das Iterationsverfahren konsistent ist, dass also für jedes beliebige b die Gleichung x = A−1 b mit x als Fixpunkt gilt. Dann folgt wiederum mit Hilfe von (7.2) und (6.16) A−1 b = x = f (x, b) = M x + N b = M A−1 b + N b ⇒ M A−1 + N = A−1
⇒
M =I−NA.
Somit ist bewiesen, dass die Gleichung für M gemäß (7.45) notwendig und hinrei chend für die Konsistenz eines linearen Iterationsverfahrens ist. Wie an (6.16) und (6.17) leicht abzulesen ist, sind sämtliche Splitting-Verfahren als lineare Iterations verfahren einzuordnen. Damit ist die Konsistenz der Splitting-Verfahren zur Matrix A in jedem Fall sichergestellt. Voraussetzung hierfür ist allerdings die Existenz der Ma trix N und damit die Regularität von B in (6.16). Um das Konvergenzverhalten bewerten zu können, muss lediglich auf Gleichung (7.43) zugegriffen werden. Gleichbedeutend
80 | 7 Konvergenzverhalten von iterativen Lösungsverfahren
mit (7.43) ist, wie bereits bei der Herleitung von (7.44) aus dem Banach’schen Fixpunkt satz gezeigt wurde, das Konvergenzkriterium ‖M‖ < 1
⇔
für f (x, b) = M x + N b ist xm+1 = f (xm , b) konvergent .
(7.46)
Setzt man für ein konvergentes Iterationsverfahren gemäß (7.44) q = ‖M‖ < 1 in (7.6) ein, ergibt sich für die a-priori-Fehlerabschätzung des Banach’schen Fixpunktsatzes ‖xm − A−1 b‖ = ‖xm − x‖ ≤
‖M‖m qm ⋅ ‖x1 − x0 ‖ = ⋅ ‖x1 − x0 ‖ . 1−q 1 − ‖M‖
Soll die Norm der Abweichung des Näherungsvektors xm vom Ergebnis eine vorge gebene Differenz ϵ nicht überschreiten dürfen, soll also ‖xm − A−1 b‖ ≤ ϵ sein, sind demnach mindestens ϵ⋅(1−‖M‖) ln ‖x −x ‖ 1 0 m≥ . (7.47) ln ‖M‖ Iterationsschritte zur Gewährleistung dieser Differenz erforderlich. Ein Iterationsver fahren eignet sich umso mehr, je schneller es konvergiert, also je kleiner m ist. Wegen (7.47) wird das Problem der Wahl eines geeigneten Algorithmus allein auf die Festle gung einer hierfür optimalen Matrix M bzw. einer Matrix N oder bei den Splitting-Ver fahren gemäß (6.6) bis (6.8) einer Matrix B und eines geeigneten Parameters c zurück geführt. Bei der Suche nach einem bestgeeigneten B ist aber auch der Rechenaufwand für die Inversenbildung zu beachten. Je komplexer der Aufbau von B ist, umso zeitauf wändiger wird das Verfahren trotz einer kleinen Iterationszahl. Aber auch bei einem sehr einfachen Aufbau von B wie z. B. beim Richardson-Verfahren mit B = I wirkt sich dann die hohe Zahl der Iterationsschritte negativ auf die Rechendauer aus. Die opti male Lösung kann nur als ein Kompromiss zwischen der Komplexität von B und der Iterationszahl gefunden werden. Beim Jacobi-Verfahren ist die Inversenbildung für B vergleichsweise einfach und es gilt für (6.16) in Verbindung mit (6.6) j ≠ k : (M)jk = mjk = −
ajk ; ajj
mkk = 0 .
(7.48)
Die Anwendung von (7.23) bis (7.25) ergibt hiermit folgende Konvergenzkriterien n
‖M‖1 = max ∑ k=1,...,n
j=1 j ≠ k n
‖M‖∞ = max ∑ k=1,...,n
j=1 j ≠ k n
|ajk | < 1 (starkes Spaltensummenkriterium) , |ajj |
(7.49)
|akj | < 1 (starkes Zeilensummenkriterium) , |akk |
(7.50)
n
‖M‖22 ≤ ‖M‖2F = ∑ ∑ j=1 k=1 k ≠ j
|ajk |2 < 1 (Quadratsummenkriterium) . |ajj |2
(7.51)
7.3 Konvergenz von Splitting-Verfahren |
81
Wegen (7.34) kann mit den obigen Zusammenhängen der Spektralradius bestimmt werden: ρ(M) = min{‖M‖1 , ‖M‖∞ , ‖M‖2 } < 1 .
(7.52)
Beim Gauß-Seidel-Verfahren ist die Herleitung eines Konvergenzkriteriums etwas um ständlicher. Ausgehend von (6.10) folgt mit x = xm (D + L)y = (D + L)xm+1 − b = −R x ⇒
y = xm+1 − (D + L)−1 b = −(D + L)−1 R x = M x k−1
⇒
yk = − ∑ j=1
n akj akj yj − ∑ xj akk a j=k+1 kk
n
⇒
|y1 | ≤ ∑ j=2
|a1j | |xj | |a11 |
und für k > 1 gemäß [9]: k−1
|yk | ≤ ∑ j=1
n |akj | |akj | |yj | + ∑ |xj | . |akk | |a kk | j=k+1
Nach (7.46) ist y und damit auch die Folge der xm genau dann konvergent, wenn ‖M‖ < 1 erfüllt wird. Anwendung der Maximumnorm nach (7.19) und von (7.20) führt somit zu der Bedingung 1 > ‖M‖∞ = sup ‖M x‖∞ = sup ‖y‖∞ = max |yk | , k=1,...,n
‖x‖∞ =1
‖x‖∞ =1
wobei
max |xk | = 1 ist .
(7.53)
k=1,...,n
Diese Ungleichung ist notwendig und hinreichend für die Konvergenz des Gauß-Sei del-Verfahrens. Wegen der Nebenbedingung ‖x‖∞ = 1, d. h. |xj | ≤ 1, gilt mit der Re kursionsgleichung k−1
|zk | = ∑ j=1
n |akj | |akj | |zj | + ∑ |akk | |a kk | j=k+1
⇒
|a1j | |a | j=2 11 n
(k > 1) ;
|z1 | = ∑
(7.54)
|yk | ≤ |zk | .
Wenn für die größte Zahl maxk=1,...,n |zk | < 1 gilt, dann ist auch maxk=1,...,n |yk | < 1, und somit die Bedingung (7.53) erfüllt. Damit gilt als Konvergenzkriterium für das Gauß-Seidel-Verfahren: max |zk | < 1
k=1,...,n
(7.55)
mit zk gemäß Rekursionsformel (7.54) ⇔ Das Gauß-Seidel-Verfahren ist konvergent.
82 | 7 Konvergenzverhalten von iterativen Lösungsverfahren Wenn ∑nj=1,j=k̸ |akj |/|akk | < 1 für alle k gilt, dann ist nach (7.54) stets |zk | < 1. Eine Matrix, für die also n |akj | ∑ < 2 (k = 1, . . . , n) (7.56) |a kk | j=1 erfüllt wird, wird als strikt diagonaldominant bezeichnet. Mit ihr konvergiert das Gauß-Seidel-Verfahren bei jedem beliebigem Startvektor x0 und für jedes beliebige b. Bei den Relaxationsverfahren gilt in (6.16) für den Relaxationsparameter c−1 ≠ 1. In diesem Fall ist M und damit auch der Spektralradius abhängig von c : (M(c)) ≤ ‖M(c)‖. Wie aus dem Banach’schen Fixpunktsatz hervorgeht, ist die Norm der Abwei chung des Näherungsvektors vom Lösungsvektor umso geringer, je kleiner die Kon traktionszahl q und, wegen (7.44), je kleiner ‖M(c)‖ ist. Hieraus folgt, dass das Itera tionsverfahren umso besser konvergiert, je kleiner der Spektralradius ist. Die Festle gung des Relaxationsparameters c−1 sollte also nach dem Grundsatz der Minimierung von ρ(M(c)) erfolgen: c−1 = arg min+ (ρ(M(p))) .
(7.57)
p∈R
Man kann für die Eigenwerte von M beim Jacobi-Verfahren o. B. d. A. annehmen, dass λ1 ≤ λ2 ≤ ⋅ ⋅ ⋅ ≤ λn gilt. Wegen (6.19) folgt dann für die Eigenwerte von M beim JacobiRelaxationsverfahren unter der Voraussetzung c > 0: μ1 ≤ ⋅ ⋅ ⋅ ≤ μk = 1 + c−1 (λk − 1) ≤ ⋅ ⋅ ⋅ ≤ μ n . Bei Anwendung von (7.27) erhält man den optimalen Wert für den Relaxationsparame ter c−1 nach (7.57), wenn |μ n | den kleinstmöglichen Wert annimmt. Geht man hierbei von der weitere Annahme μ 1 > 0 aus und setzt als Konstante d = μn − μ 1 > 0 ein, so ergibt sich 1 1 1 μ n = (μ n + μ1 ) + d ≥ d . 2 2 2 Für μ 1 = −μ n nimmt |μ n | den kleinstmöglichen Wert d/2 an. Auch für μ1 < 0 bleibt diese Aussage richtig, denn wenn hierbei |μ 1 | ≠ |μn | gilt, ist entweder |μ n | > d/2 oder |μ 1 | > d/2, womit auch 1 ρ(‖M‖) = max (|μ1 |, |μ n |) > d 2 ist und somit nicht den optimalen Wert für den Relaxationsparameter liefert. Die Mi nimierungsbedingung |μ1 | = |μn | bzw. μn + μ 1 = 0 führt zu −1 1 + c−1 opt (λ1 − 1) + 1 + copt (λn − 1) = 0 ⇒
⇒ copt = 1 −
1 (λmin + λmax ) 2
c−1 opt = −
2 λ1 + λn − 2
für das Jacobi-Relaxationsverfahren .
(7.58)
7.3 Konvergenz von Splitting-Verfahren | 83
Nach (7.27) und (7.43) dürfen die Beträge der Eigenwerte λk von M beim Jacobi-Verfah ren nur kleiner als 1 sein, damit das Verfahren konvergiert. Somit gilt in jedem Fall copt > 0, womit auch die oben getroffene Annahme sich als richtig erweist. Für den Spektralradius des Jacobi-Relaxationsverfahrens gilt nach (7.27): ρ(M(c)) = |μn | = |μ1 | = 1 + c−1 opt (λ1 − 1) =
|λ1 − λn | . |2 − λ1 − λn |
(7.59)
Für die Bereichsermittlung des optimalen Relaxationsparameters beim Gauß-SeidelRelaxationsverfahren wird im charakteristischen Polynom |M − μI| = (−1)n ∏nk=1 (μ − μ k ) die Variable μ auf Null gesetzt [17]. Daraus folgt mit (6.7) und (6.17) n ∏ μ k = |M| = (cD + L)−1 (cD + L − (L + D + R)) = |cD + L|−1 ⋅ |(c − 1)D − R| .
k=1
Da L und R keine Diagonalelemente besitzen, setzen sich die beiden Determinanten auf der rechten Seite der obigen Gleichung nur aus den Diagonalelementen von D zu sammen [18]: |cD + L| = cn |D| ; n
⇒
∏ μk = ( k=1
⇒
|(c − 1)D − R| = (c − 1)n |D|
n c−1 n ) = (1 − c−1 )n ≤ μ nn = ( max μ k ) c k=1,...,n
max |μ k | = ρ(M(c)) ≥ |1 − c−1 | .
k=1,...,n
(7.60)
Überträgt man die Konvergenzbedingung (7.43) auf Gleichung (7.60), dann folgt hier aus 1 0 < c−1 < 2 bzw. k den Wert von b̂ ik enthält. Da die element aik für i ≤ k den Wert von cik ̂ überschrieben Speicherplätze der Ausgangsmatrix A mit den Werten von b̂ ik und cik werden, die Systemmatrix für die weiteren Berechnungen aber erhalten bleiben muss, ist zu Beginn der Präkonditionerung über die Beziehung (8.21) eine Kopie von A ab zuspeichern. Somit erhöht sich der Speicherplatzbedarf für ein Lösungsverfahren mit Präkonditionierung um die Größe der Systemmatrix. Dieser zunächst als gravierend erscheinende Nachteil fällt jedoch bei schwachbesetzten Systemmatrizen weniger ins Gewicht, da wegen der Listendarstellung solcher Matrizen (siehe nachfolgendes Ka pitel 9) der Speicherplatzbedarf nicht annähernd den einer vollbesetzten Matrix bzw. den bei der Felddarstellung erreicht. Demgegenüber ist die ILU-Präkonditionierung eines Systems mit einer dichtbesetzten Systemmatrix wegen der oben begründeten hohen Rechenlaufzeit ohnehin nicht geeignet. für i = 1, . . . , n − 1 für j = i + 1, . . . , n j
aji = 0
n
aji aji := aii für k = i + 1, . . . , n j
ajk = 0 j
n
aik = 0
n ajk = ajk − aji ⋅ aik
für k = 2, . . . , n für i = 1, . . . , k − 1 vk := vk − aki vi für k = n, . . . , 1 für i = k + 1, . . . , n vk := vk − aki ui vk uk := akk Ablauf der Berechnung eines Matrix-Vektorprodukts mit einem ILU-Präkonditionierer (unvollständige LU-Zerlegung ohne Pivotisierung)
8.5 Präkonditionierung bei Splitting-Verfahren | 97
Damit eine Division durch Null nicht auftreten kann, müssen alle Diagonalelemente besetzt sein. Dieses gewährleistet die bereits in Abschnitt 4.8 beschriebene Pivotisie rung in jedem Verfahrensschritt auch bei der unvollständigen LU-Zerlegung. Die vorangehenden Ausführungen können auf symmetrische Matrizen übertra T gen werden. In Anlehnung an das Cholesky-Verfahren wird der Ansatz Ĉ = B̂ ge macht, so dass sich (8.19) vereinfacht zu T A = B̂ B̂ + F
mit b̂ jk = 0 ,
wenn ajk = 0 ist .
(8.23)
Auf diesem Ansatz beruht die unvollständige Cholesky-Zerlegung, auch IC-Zerlegung benannt. Bei Anwendung derselben Verfahrensweise wie oben auf die Gleichungen (4.19) bis (4.22) erhält man die Basis für die unvollständige QR-Zerlegung (IQR-Zerlegung). Für diese gilt: A = Q̂ R̂ + F = Û Ĉ + F
(8.24)
T mit ĉjk = û j ak (j < k) , wenn ajk ≠ 0 ,
und ĉjk = 0 , wenn ajk = 0 gilt ,
(8.25)
k−1
und q̂ jk = ajk − ∑ ĉik ⋅ û ji , wenn ajk ≠ 0 , i=1
(8.26)
und q̂ jk = 0 , wenn ajk = 0 gilt , sowie ĉkk = |q̂ k | und û k =
q̂ k
ĉkk
.
(8.27)
Nach erfolgreicher Zerlegung gemäß den obigen Beziehungen kann für den IQR-Prä −1 T konditionierer P = Ĉ Û geschrieben werden. Leider hat sich gezeigt, dass die IQRPräkonditionierung für manche Anwendungen wie z. B. für Statikberechnungen un geeignet ist [24].
8.5 Präkonditionierung bei Splitting-Verfahren Aus den Beziehungen (6.2), (6.16) und (6.17) folgt für die Splitting-Verfahren xm+1 − M xm = xm+1 − xm + N A xm = N A x = N b .
(8.28)
Aus der rechten Seite dieser Gleichung lässt sich leicht ablesen, dass die Matrizenglei chung linkspräkonditioniert ist, und zwar mit P = N = (cB)−1 , der als zur SplittingMethode assoziierter Präkonditionierer bezeichnet wird. Splitting-Verfahren bauen al so auf einem präkonditionierten Gleichungssystem auf, welches umso besser präkon
98 | 8 Präkonditionierung ditioniert ist, je weniger cB von der Systemmatrix abweicht. Im Idealfall gilt B = c−1 A, bei dem die Konditionszahl den minimalen Wert 1 annimmt. Bei Berücksichtigung von (6.6) und (6.7) können die einzelnen Splitting-Verfahren demnach durch jeweils fol gende Präkonditionierer charakterisiert werden: Jacobi-Verfahren:
P = D−1 ,
(8.29)
Gauß-Seidel-Verfahren :
P = (D + L)−1 ,
(8.30)
Gauß-Seidel-Relaxationsverfahren :
P = c−1 (D + c−1 L)−1 .
(8.31)
Die für optimale Konvergenz und größte Rechengenauigkeit anzustrebende Konditi onszahl von 1 kann hierbei am besten vom Gauß-Seidel-Relaxationsverfahren erreicht werden, da der Präkonditionierer durch die passende Wahl von c eine bessere Nähe rung an die Inverse der Systemmatrix als bei den beiden anderen Splitting-Methoden ermöglicht. Aus demselben Grunde ist aber auch das Gauß-Seidel-Verfahren vorteil hafter als das Jacobi-Verfahren. Eine weitergehende Optimierung kann wegen einer noch besseren Annäherung an die Systeminverse mit folgenden Definitionen für die assoziierten Präkonditionierer erzielt werden: Symmetrisches Gauß-Seidel-Verfahren :
P = (D + R)−1 D(D + L)−1 ,
Sym. Gauß-Seidel-Relaxationsverfahren :
P = c−1 (2 − c−1 )(D + c−1 R)−1 D
(8.32)
⋅ (D + c−1 L)−1 . Beim symmetrischen Gauß-Seidel-Verfahren gilt für die Inverse des Präkonditionie rers: P−1 = (D + L)D−1 (D + R) = (D + L)(I + D−1 R) = D + L + (D + L) ⋅ D−1 R ⇒
P−1 = D + L + R + L D−1 R = A + L D−1 R .
(8.33)
Der Präkonditionierer eignet sich umso mehr, je weniger L D−1 R von der Nullmatrix abweicht. Aus (6.17) folgt mit P = N für das symmetrische Gauß-Seidel-Verfahren M = P(P−1 − A) = P L D−1 R = (D + R)−1 D(D + L)−1 L D−1 R mit D(D + L)−1 L D−1 = (D L−1 (D + L)D−1 ) −1
= ((D + L)L−1 ) ⇒
−1
= (D L−1 (I + L D−1 ))
−1
= (D L−1 + I)−1
= L(D + L)−1
M = (D + R)−1 L(D + L)−1 R , xm+1 = (D + R)−1 L(D + L)−1 R xm + (D + R)−1 D(D + L)−1 b .
(8.34) (8.35)
8.6 Präkonditionierung beim CG-Verfahren | 99
8.6 Präkonditionierung beim CG-Verfahren Das CG-Verfahren gemäß Abschnitt 5.2 setzt eine symmetrische Systemmatrix voraus. Dies legt den Ansatz nahe, dass der Rechtspräkonditionierer mit der Transponierten des Linkspräkonditionieres gleichgesetzt wird, dass also gilt: PR = PTL .
(8.36)
Kennzeichnet man die Größen des präkonditionierten Systems durch gestrichene Dar stellung, gehen die Gleichungen (5.13),(5.18),(5.19),(5.40) und (5.43) über auf −1
r0 = PL r 0 = b − A x0 = PL b − PL A PTL (PTL ) −1
⇒ rk = PL rk ;
xk = (PTL ) −1
xk+1 = (PTL )
−1
k
und
k
k
λk =
z k = A y = PL A ŷ = PL ẑk k
(8.37)
A = PL A PTL ,
xk ;
xk+1 = xk + λk ⋅ y = (PTL )
mit ŷ = PTL y
x0
ρ k y T zk k
(8.38) −1
xk + λk ⋅ (PTL )
ŷ
(8.39)
k
,
(8.40)
mit ẑk = A ŷ ,
k
(8.41)
k
rk+1 = PL rk+1 = r k − λk ⋅ z k = PL rk − λk ⋅ PL ẑk ,
(8.42)
T
ρ k+1 = rk+1 r k+1 = rTk+1 PTL PL rk+1 , λk = y
k+1
ρ k y T zk k
=
= rk+1 +
ρ k T ŷ (PL )−1 PL ẑk k ρ k+1 ρ k
=
ρ k T ŷ ẑk
,
(8.44)
k
⋅ y = PL rk+1 + k
(8.43)
ρ k+1 ρ k
⋅ (PTL )
−1
−1
ŷ = (PTL ) k
ŷ
k+1
.
(8.45)
Mit P = PTL PL
und zk = P rk
(8.46)
folgt aus (8.39) und (8.42) bis (8.45) xk+1 = xk + λk ⋅ ŷ ,
(8.47)
k
rk+1 = rk − k ≥ 0:
ŷ
k+1
λk
⋅ ẑ k ,
= P rk+1 +
(8.48)
ρ k+1 ρ k
ρ k+1 = rTk+1 P rk+1 =
ρ ⋅ ŷ = z k+1 + k+1 ⋅ ŷ ; k k ρ k rTk+1 zk+1 ; ρ 0 = rT0 ŷ . 0
ŷ = P r 0 ; 0
(8.49) (8.50)
100 | 8 Präkonditionierung
Hiermit kann folgendes Ablaufdiagramm für das präkonditionierte CG-Verfahren er stellt werden: Beliebige Wahl von x0 und P = PTL PL r0 := b − A x0 ρ 0 := rT0 ̂y
̂y := P r0 ; 0
s. (8.49),(8.50)
0
für k = 0, 1, . . . , n − 1 ρ k ≠ 0
j ̂z k := A ̂y ; k
n
ρ k ̂yT ̂z k k
λk :=
s. (8.41),(8.44)
xk+1 := xk + λk ⋅ ̂y
s. (8.47)
k
rk+1 := rk − λk ⋅ ̂zk z k+1 := P rk+1 ; ̂y
k+1
:= z k+1 +
s. (8.48)
ρ k+1
ρ k+1 ρ k
:=
rTk+1 z k+1
s. (8.46),(8.50)
⋅ ̂y
Ende
k
s. (8.49)
Ablauf des PCG-Verfahrens
8.7 Präkonditionierung beim BiCGSTAB-Verfahren Die Vorgehensweise bei der Herleitung eines präkonditionierten BiCGSTAB-Verfah rens ist dieselbe wie beim PCG-Verfahren. Auch hier gehen die durch gestrichene Dar stellung gekennzeichneten Größen des präkonditionierten Systems aus den Gleichun gen (5.63) bis (5.68) und (5.75) bis (5.78) hervor. Es gelten: zk = A y = PL A PR (PR )−1 y k
k
mit z k = PL z k
qk = rk − λk ⋅ z k = PL rk − λk ⋅ PL z k ⇒ qk = rk − λk ⋅ z k
mit qk = PL qk
pk = A qk = PL A PR qk = PL pk
und y = PR y ,
mit rk = PL rk und
λk =
λk =
und ρ k
rT0 PTL PL zk
(8.51)
k
k
ρ k r0T z k
,
(8.52) (8.53)
mit pk = A PR qk ,
(8.54) T
rk+1 = qk − μk ⋅ pk
⇒
rk+1 = qk − μk ⋅ pk
mit
rk = PL b − PL A PR xk = PL rk = PL b − PL A PR (PR )−1 xk (5.78)
⇒ xk+1 = PR xk+1 = xk + PR (λk ⋅ y + μk qk ) . k
μ k := ⇒
qk pk pkT pk
(8.55)
xk = PR xk (8.56)
8.7 Präkonditionierung beim BiCGSTAB-Verfahren | 101
Mit diesen Gleichungen und denen aus Abschnitt 5.5, welche auf das präkonditionier te System übertragen werden, erhält man folgendes Ablaufdiagramm: Beliebige Wahl von PL , PR und x0 für y = r0 := b − A x0 0
y 0
=
r0
:= PL r0 ;
ρ 0
:= r0T r0 ;
k := 0
z k := PL zk ;
λk :=
Solange |rk | > ε z k := A PR y ; k
qk := rk − λk ⋅ zk ; pk := A PR qk ;
ρ k r0T zk
qk := PL qk
pk := PL pk ;
s. (8.53) μ k :=
T qk pk pk T pk
xk+1 = xk + PR (λk ⋅ y + μk qk ) rk+1 := qk −
⋅ pk ;
T ρ k+1 := r0 rk+1 ;
y
k+1
rk+1
ηk
:= rk+1 + ηk ⋅ (y
k
:= q − k λ ρ := k ⋅ k+1 μ k ρ k − μk zk )
s. (8.54),(8.55) s. (8.56)
k
μk
s. (8.51),(8.52)
μ k
⋅
pk
k := k + 1 Ablauf des präkonditionierten BiCGSTAB-Verfahrens
s. (8.55) s. (5.75) s. (5.68)
9 Vergleich der Verfahren 9.1 Laufzeit Ein sehr wichtiges Eignungskriterium für ein Verfahren ist die Rechendauer bzw. Lauf zeit zur Lösungsermittlung. Da Multiplikationen und Divisionen erheblich mehr Zeit als die anderen Grundrechenarten verbrauchen, steht vor allem deren Anzahl N im Fokus von Vergleichsbetrachtungen. Mit Hilfe der Ablaufdiagramme lassen sich diese Zahlen für die einzelnen Verfahren leicht zusammenstellen. Zunächst werden einige fundamentale Summenformeln zusammengestellt. Nach [20] und [21] gilt: n−1
∑k= k=1 n−2
n−1 n(n − 1) = √ ∑ k3 , 2 k=1 n−1
(9.1)
n−1
n−1
n−1
∑ k 3 = ∑ (k − 1)3 = ∑ k 3 − 3 ∑ k 2 + 3 ∑ k − (n − 1) k=1
k=1
k=1
n−1
n−1
= ∑ k3 − 3 ∑ k2 + 3 k=1
⇒ ⇒
k=1
k=1
k=1
n(n − 1) − (n − 1) 2
n−1
n−1
n−2
n−1
n−1 3 n(n − 1)(2n − 1) (2n − 1) n−1 ∑ k . (9.2) ((n − 1)2 + n − 1) = = 3 2 6 3 k=1
3 3 3 ∑ k 2 = ∑ k 3 − ∑ k 3 + (n − 1) ( n − 1) = (n − 1)3 + (n − 1) ( n − 1) 2 2 k=1 k=1 k=1 ∑ k2 = k=1
So ergibt sich hiermit für die direkten Methoden gemäß Kapitel 4: Gauß-Algorithmus: n−1
n
n
NLU = ∑ ((n − k)(n − k + 1)) + ∑ (k − 1) + ∑ (n − k + 1) k=1 n−1
k=2
k=1
n
n
n−1
= ∑ (n − k)2 + ∑ (n − k) + ∑ (k − 1) + ∑ (n − k) + n k=1 n−1
k=1 n−1
n−1
k=1
k=1
n−1
= ∑ k2 + ∑ k + ∑ k + ∑ k + n k=1
k=1
k=1
k=1
n(n − 1) n(n − 1) n(n − 1)(2n − 1) +3 +n = (2n − 1 + 9) + n = 6 2 6 n(n − 1)(n − 4) = +n 3 ⇒
NLU =
n(n − 1)(n − 4) 1 1 + n = n((n − 1)(n − 4) + 3) = n(n2 − 5n + 7) . 3 3 3
https://doi.org/10.1515/9783110644173-009
(9.3)
104 | 9 Vergleich der Verfahren
Cholesky-Verfahren: n
n
n
NCL = ∑ (k − 1 + 1 + (n − k)k) + ∑ k + ∑ (n − k + 1) k=1 n
k=1 n
n
k=1 n
n
n
= ∑ (n − k + 1)k + ∑ k − ∑ k + ∑ (n + 1) = (n + 1) ( ∑ k + n) − ∑ k 2 k=1
k=1
k=1
k=1
k=1
k=1
n(n + 1) n(n + 1)(2n + 1) n(n + 1)2 n = (n + 1) ( + n) − = − n(n + 1) ( − 1) 2 6 3 6 n+1 7 n(n + 1)2 7 n(n + 1)2 − n(n + 1) ( − )= + n(n + 1) =2 6 6 6 6 6 ⇒
NCL =
1 n(n2 + 9n + 8) . 6
(9.4)
Gram-Schmidt-Algorithmus: n
n
NGM = ∑ (2n(k − 1) + 3n + n − k + 1) = (2n − 1) ∑ k + 2n2 + n k=1
⇒
NGM
k=1
1 n(n + 1)(2n − 1) 5 + n(2n + 1) = n (n2 + n + ) . = 2 2 2
(9.5)
Givens-Verfahren bei voll besetzter Matrix: n−1
n
NGV ≤ ∑ (5(n − p) + 1 + 2(n − p)(n + 1 − (p − 1)) + 2(n − p)) + ∑ ((n − k) + 1) p=1
k=1
n−1
n−1
= ∑ (11(n − p) + 1 + 2(n − p)2 ) + ∑ k + n p=1
k=1 n−1
n−1
n−1
= 11 ∑ p + 2 ∑ p2 + ∑ k + 2n − 1 p=1
p=1
k=1
(2n − 1) 1 n(n − 1) (12 + 2 ) + 2n − 1 = n(n − 1)(18 + 2n − 1) + 2n − 1 = 2 3 3 ⇒
NGV ≤
2 19 17 2 17 n(n − 1) (n + ) + 2n − 1 = n (n2 + n− )−1. 3 2 3 2 2
(9.6)
Enthält die Systemmatrix sehr viele Null-Elemente, liegt also der Sonderfall einer dünn bzw. schwach besetzten Matrix vor, kann diese Eigenschaft beim Givens-Verfah ren und auch bei den iterativen Verfahren zur Laufzeitverkürzung genutzt werden, indem sämtliche Multiplikationen, an denen Null-Elemente beteiligt sind, vermieden werden. Bei den iterativen Verfahren sind hierzu lediglich die von Null verschiede nen Matrixelemente im Arbeitsspeicher vorzuhalten, was als zusätzlichen Vorteil die
9.1 Laufzeit | 105
Reduktion des erforderlichen Speicherbedarfs mitbringt. Mit der Definition des Besetzungsgrades einer Matrix
ρ=
Anzahl der von Null verschiedenen Matrixelemente Anzahl aller Matrixelemente (= n2 )
kann direkt auf die Zahl der Nicht-Null-Elemente geschlossen werden, welche als Randbedingung beim Auszählen der Multiplikationsanzahl zu folgenden Ergebnis sen führt: Givens-Verfahren bei dünn besetzter Matrix: n−1
n
NGV = ρ ∑ (5(n − p) + 1 + 2(n − p)(n + 1 − (p − 1)) + 2(n − p)) + ∑ ((n − k) + 1) p=1
k=1
n−1
n−1
= ρ ∑ (11(n − p) + 1 + 2(n − p)2 ) + ∑ k + n p=1
k=1
n−1
n−1
n−1
= 11ρ ∑ p + 2ρ ∑ p2 + ∑ k + n + ρ(n − 1) p=1
p=1
k=1
(2n − 1) n(n − 1) (11ρ + 2ρ + 1) + n(1 + ρ) − ρ = 2 3 1 = n(n − 1)(4ρn + 31ρ + 3) + n(1 + ρ) − ρ 6 1 = n(4ρn2 + 31ρn + 3n − 4ρn − 31ρ − 3 + 6 + 6ρ) − ρ 6 ⇒
NGV =
1 n(4ρn2 + (27ρ + 3)n − 25ρ + 3) − ρ . 6
(9.7)
Ein spezieller Fall liegt vor, wenn die Matrix eine Fast-Dreiecksstruktur aufweist, und die LU-Zerlegung nur in der Aufgabe besteht, die untere Nebendiagonale zu eliminie ren. Bei Anwendung des Givens-Verfahrens folgt hierbei für die Anzahl der Multipli kationen (mit Divisonen): n−1
n
NGV = ∑ (6 + 2(n + 1 − (p − 1)) + 2) + ∑ ((n − k) + 1) p=1 n−1
k=1 n−1
n−1
n−1
= ∑ (12 + 2(n − p)) + ∑ k + n = 12(n − 1) + 2 ∑ p + ∑ k + n p=1 n−1
= 3 ∑ p + 13n − 12 = p=1
⇒
NGV =
3 2 23 n + n − 12 . 2 2
k=1
p=1
k=1
3 n(n − 1) + 13n − 12 2 (9.8)
106 | 9 Vergleich der Verfahren
Der Einsatz des Householder-Verfahrens ist wiederum nur bei voll besetzten Matrizen interessant, da seine Besonderheit in der Elimination aller Spaltenelemente unterhalb der Nebendiagonalen in einem einzigen Iterationsschritt besteht. Kombiniert man die ses Verfahren mit dem Givens-Verfahren, mit dem die untere Nebendiagonale elimiert wird, erhält man für die gesamte Anzahl der Multiplikakationen beim HouseholderVerfahren einschließlich der Givens-Methode: n−2
NHH = ∑ ((n − k) + 1 + 3 + 4 + (n − k + 1) + (n − k + 1)(n − k) + 2 + 2(n − k)2 ) + NGV k=1
n−2
n−1
= 11(n − 2) + 3 ∑ ((n − k) + (n − k)2 ) + NGV = 11(n − 2) + 3 ∑ (k + k 2 ) + NGV k=1
k=2
n−1
n−1
n−1
= 11n − 22 + 3 ∑ (k + k 2 ) − 6 + NGV = 3 ∑ k + 3 ∑ k 2 + 11n − 28 + NGV k=1
k=1
k=1
n(n − 1) 45 (2n − 1) 3 =3 (1 + ) + n2 + n − 40 2 3 2 2 45 3 3 43 = n(n − 1)(n + 1) + n2 + n − 40 = n (n2 + n + ) − 40 2 2 2 2 ⇒
NHH = n (n2 +
3 43 n+ ) − 40 . 2 2
(9.9)
Vernachlässigt man bei großen n die Glieder niedrigeren Grades, kann bei voll be setzten Matrizen folgender Zusammenhang zwischen den Multiplikationszahlen der direkten Verfahren hergestellt werden: NCL ≈
1 3 1 2 n < NLU ≈ n3 < NGV ≈ n3 < NHH ≈ n3 < NGM ≈ n3 . 6 3 3
(9.10)
Die kürzeste Laufzeit erzielt man mit dem Cholevsky-Verfahren, welches jedoch im Ge gensatz zu den anderen Verfahren eine symmetrische Systemmatrix voraussetzt. Ist die Systemmatrix dünn besetzt, erzielt man mit der Givens-Methode häufig die kür zeste Laufzeit. Ein spezielles Beispiel hierfür ist eine Matrix mit einer Fast-Dreiecks struktur, bei der die Zahl der Multiplikationen nach (9.8) nur noch eine Funktion zwei ten Grades ist. Bei den anderen direkten Verfahren hat ein geringerer Besetzungsgrad keinen begünstigenden Einfluss auf die Zahl der Multiplikationen und somit auf die Laufzeit. Da bei den iterativen Lösungsverfahren sehr viele Vektor-Vektor- und Matrix-Vek tor-Multiplikationen durchgeführt werden, wird zunächst eine Tabelle erstellt, aus der die Anzahl der Multiplikationen für die jeweilige Grundoperation sehr einfach abge lesen werden kann:
9.1 Laufzeit |
Skalar Vektor [n] Matrix [n, n] Matrix [m, n]
Skalar
Vektor [n]
Matrix [n, n]
1 n n2 m⋅n
n n n2 m⋅n
n2
107
n3 m ⋅ n2
Hiermit ergibt sich in Abhängigkeit vom Besetzungsgrad ρ der Systemmatrix für ite rative Verfahren jeweils der im Folgenden dargestellte Zusammenhang zwischen der Anzahl von Multiplikationen (einschließlich Divisionen) und der Systemgröße n sowie der Zahl der Iterationsschritte m. Zu Beginn wird das GMRES-Verfahren untersucht, für das sich nach Auszählen der Rechenoperationen auf die beschriebene Weise und auf Basis des Ablaufdiagramms in Abschnitt 5.1. folgende Anzahl von Multiplikationen ergibt: m
m
NGR = ρn2 + 2n + ∑ (ρn2 + 2kn + n + 9(k − 1) + 7) + (m − 1)n + ∑ ((m − k) + 1) + mn k=1
m
k=1
m−1
2
= (m + 1)(ρn + n) + ∑ (2kn + 9k − 2) + ∑ k + m + 2 mn k=1
k=1 m−1
m−1
m−1
= (m + 1)(ρn2 + n) + 2n ( ∑ k + m) + 9 ( ∑ k + m) + ∑ k + m(2n − 1) k=1
k=1
k=1
m−1
= (m + 1)(ρn2 + n) + (2n + 10) ∑ k + m(4n + 8) k=1
m(m − 1) + m(4n + 8) 2 = (m + 1)(ρn2 + n) + (n + 5) m(m − 1) + 4 m(n + 2)
= (m + 1)(ρn + n) + (2n + 10) 2
⇒
NGR = mn(ρn + m) + n(ρn + 1) + m(5 m + 4n + 3) .
(9.11)
Wie bereits zu Beginn von Kapitel 3 geschildert wurde, erreicht man mit dem GMRESVerfahren spätestens im n-ten Iterationsschritt die gesuchte Lösung. Für m = n folgt aus (9.11), dass hierbei NGR = 2ρn3 + (9 + ρ)n2 + 4n Multiplikationen anfallen, was im Vergleich zu direkten Verfahren, besonders bei voll besetzten Matrizen, eine Ver schlechterung bedeutet. Geht man aber bei einer voll besetzten Matrix von einer klei neren Iterationszahl aus, z. B. m < n/10, so folgt NGR
k : ajk = 0, (10.8)
folgt für 1 ≤ j ≤ n: p+j
∑ ajk fk = gj .
(10.9)
k=1
Der Ausdruck (10.8) lässt sich vereinfachen wegen der Eigenschaft p
a(j+m)(k+m) = (−1)k+m−j−m
∑ i=k+m−j−m
i! ci ⋅ (k + m − j − m)!(i + j + m − k − m)! (−h)i
= ajk .
(10.10)
Das bedeutet, dass sämtliche Elemente auf der Haupt- und auf jeder Nebendiagonalen der Systemmatrix jeweils unveränderlich und mit dem Element in der ersten Zeile der jeweiligen Diagonalen identisch sind. Setzt man m = 1 − j, folgt hieraus für 1 ≤ j ≤ n und j ≤ k ≤ n + p: ajk = a1,(k−j+1) = ak−j+1 p
i! ci . ⋅ i (k − 1)!(i + 1 − k)! (−h) i=k−1
mit ak = a1k = (−1)k−1 ∑
(10.11)
Für (10.9) kann somit geschrieben werden: p+j
p+1
∑ ak−j+1 fk = ∑ ai fj+i−1 = gj k=j
für
1≤j≤n.
(10.12)
i=1
Definiert man ai = 0 für i < 1 und für i > p + 1, können die Begrenzungen des Sum menausdrucks in (10.12) erweitert werden: n+p
∑ ak−j+1 fk = gj
für 1 ≤ j ≤ n
k=1
(10.13)
mit ak−j+1 = 0 für k < j und für k > p + j . Das aus n Gleichungen bestehende System (10.13) lässt sich nur dann eindeutig auflösen, wenn die linke Seite der Gleichung nur n Unbekannte, z. B. f1 bis fn enthält. Für die übrigen Größen fn+1 bis fn+p sind Werte vorzugeben, was bei der Lösung einer Differentialgleichung p-ten Grades der Vorgabe von p Randwerten entspricht. Da bei manchen Aufgabenstellungen auch Randwerte im Bereich mit niedrigeren Indexwer ten j vorliegen, wird der allgemeinere Ansatz gewählt, dass die Unbekannten durch die Größen fm+1 bis fm+n mit 0 ≤ m ≤ p repräsentiert werden. Wertevorgaben für f1
118 | 10 Spezielle Problemlösungen bis fm bei m > 0 und bei m < p für fm+n+1 bis fn+p nennt man dann Randbedingungen erster Art bzw. Dirichlet’sche Randbedingungen. Stellt man (10.13) so um, dass auf der linken Seite lediglich die Unbekannten verbleiben, erhält man m+n
n+p
m
∑ ak−j+1 fk = gj − ∑ ak−j+1 fk − k=m+1
k=1
∑
ak−j+1 fk
für
1≤j≤n.
(10.14)
k=n+m+1
Bei homogenen Randbedingungen werden die Randwerte auf Null gesetzt und die Summenausdrücke auf der rechten Seite verschwinden hierbei. Bei Berücksichtigung von (10.13) folgt dann min(m+n,j+p)
∑
ak−j+1 fk = gj
für
1≤j≤n.
(10.15)
k=max(m+1,j)
Bringt man diese Gleichung in Matrixform, gilt bei homogenen Randbedingungen am+1 am .. .
am+2 am+1 .. .
⋅⋅⋅ ⋅⋅⋅ .. .
a1
a2
⋅⋅⋅
0 .. .
a1 .. .
⋅⋅⋅ .. .
0
0
⋅⋅⋅
0 .. . [ 0
0 .. . 0
⋅⋅⋅ .. . ⋅⋅⋅
[ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [ [
Ein einfaches Beispiel problem −
ap+1 ap .. .
0 ap+1 .. .
⋅⋅⋅ ⋅⋅⋅ .. .
0 0 .. . .. . .. . .. . .. . .. . .. . am
0 0 .. . .. . .. . .. . .. . .. . .. .
f g ] [ m+1 ] [ 1 ] ] [ fm+2 ] [ g2 ] ][ [ . ] ][ . ] [ . ] ] [ .. ] [ . ] ] ][ [ ] ][ . ] [ . ] ] ] [ [ ] . . ap−m+1 ap−m+2 ⋅ ⋅ ⋅ ][ . ] [ . ] ] ][ [ . ] ][ . ] [ . ] ] [ .. ] ap−m ap−m+1 ⋅ ⋅ ⋅ ] [ . ] ][ [ ] ][ . ] .. .. .. ]=[ . ] . ] [ [ ] . . . . . ][ . ] [ . ] ] ][ [ . ] ][ . ] [ ] ] [ .. ] [ .. ] a1 a2 ⋅⋅⋅ ] ][ [ ] ][ . ] [ ] . ][ . ] [ . ] 0 a1 ⋅⋅⋅ ][ . ] [ . ] ] ][ [ ] .. .. .. ] [fm+n−1 ] ] [gn−1 ] ] . . . 0 0 ⋅⋅⋅ am+1 ] [ fm+n ] [ gn ] (10.16) ist das eindimensionale homogene Dirichlet’sche Randwert
d2 f (x) = g(x) dx2
mit der Randbedingung
f (0) = f (L) = 0 .
(10.17)
Nach Umsetzung dieser linearen Differentialgleichung 2. Grades in eine Differenzen gleichung mit p = 2, m = 1 und c0 = c1 = 0 sowie c2 = −1 ergibt sich gemäß (10.11): a1 = −
1 ; h2
a2 =
2 ; h2
a3 = −
1 ; h2
ak = 0 für k > 3 .
(10.18)
10.1 Lineare Differentialgleichungen |
119
Die Matrizendarstellung dieser Aufgabe analog zu (10.16) führt zu folgender Glei chung: f2 g1 2 −1 0 0 ⋅⋅⋅ 0 ] [ g ] [−1 2 −1 0 ⋅ ⋅ ⋅ 0 ] [ f [ 2 ] 3 ] ][ [ ] [ ] ][ [ [ .. ] [ .. ] ] [ 0 −1 2 −1 ⋅ ⋅ ⋅ 0 ] [ . ] 1 [ . ][ [ ] [ ] (10.19) [ . .. ] .. .. .. .. [ . ]=[ . ] . h2 [ .. .. ] [ .. ] . ] . . . . ][ [ [ [ ] ] ] [ ] [ ] [0 0 0 −1 2 −1] [ [ fn ] [gn−1 ] 0 0 0 −1 2 ] fn+1 [0 [ ] [ gn ] Die Systemmatrix ist nicht strikt diagonaldominant, allerdings weicht sie nur gering fügig von einer derart beschaffenen Matrix ab. Sind anstelle von p Randwerten genau so viele Werte für die Ableitungen bis (p−1)-ter Ordnung vorgegeben, spricht man von einem Anfangswertproblem p-ter Ordnung. Vorgegeben sind also in diesem Fall dk f (x0 ) = bk+1 dxk
für
0≤k