Der implizit neugestartete Arnoldialgorithmus in Theorie und Praxis. Stud.Ing. Christian Schröder



Ähnliche Dokumente
3.3 Eigenwerte und Eigenräume, Diagonalisierung

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Primzahlen und RSA-Verschlüsselung

Musterlösungen zur Linearen Algebra II Blatt 5

9.2. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse Lösung 10 Punkte

Austausch- bzw. Übergangsprozesse und Gleichgewichtsverteilungen

Bestimmung einer ersten

Eigenwerte und Eigenvektoren von Matrizen

LU-Zerlegung. Zusätze zum Gelben Rechenbuch. Peter Furlan. Verlag Martina Furlan. Inhaltsverzeichnis. 1 Definitionen.

Lineare Gleichungssysteme

Einführung in die Algebra

Basis und Dimension. Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren.

7 Rechnen mit Polynomen

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.

Lineare Gleichungssysteme

Rekursionen. Georg Anegg 25. November Methoden und Techniken an Beispielen erklärt

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

5 Eigenwerte und die Jordansche Normalform

Absolute Stetigkeit von Maßen

Tangentengleichung. Wie lautet die Geradengleichung für die Tangente, y T =? Antwort:

Lineare Algebra und Lösung linearer zeitinvarianter Differentialgleichungssysteme

Lineare Differentialgleichungen erster Ordnung erkennen

x 2 2x + = 3 + Es gibt genau ein x R mit ax + b = 0, denn es gilt

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

Kevin Caldwell. 18.April 2012

Division Für diesen Abschnitt setzen wir voraus, dass der Koeffizientenring ein Körper ist. Betrachte das Schema

7 Die Determinante einer Matrix

1 Mathematische Grundlagen

OECD Programme for International Student Assessment PISA Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

Fachschaft Mathematik und Informatik (FIM) LA I VORKURS. Herbstsemester gehalten von Harald Baum

Gleichungen Lösen. Ein graphischer Blick auf Gleichungen

11.3 Komplexe Potenzreihen und weitere komplexe Funktionen

1 topologisches Sortieren

Nichtlineare Optimierung ohne Nebenbedingungen

Übungen zum Ferienkurs Lineare Algebra WS 14/15

6.2 Scan-Konvertierung (Scan Conversion)

Einführung in die Vektor- und Matrizenrechnung. Matrizen

(λ Ri I A+BR)v Ri = 0. Lässt sich umstellen zu

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

Kapitel 15. Lösung linearer Gleichungssysteme

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Mathematik für Informatiker II. Beispiellösungen zur Probeklausur. Aufgabe 1. Aufgabe 2 (5+5 Punkte) Christoph Eisinger Sommersemester 2011

Tutorial: Homogenitätstest

Matrizennorm. Definition 1. Sei A M r,s (R). Dann heißt A := sup die Matrixnorm. Wir wissen zunächst nicht, ob A eine reelle Zahl ist.

Lösungsvorschlag für die Probeklausuren und Klausuren zu Algebra für Informations- und Kommunikationstechniker bei Prof. Dr.

Konzepte der Informatik

0, v 6 = , v 4 = span(v 1, v 5, v 6 ) = span(v 1, v 2, v 3, v 4, v 5, v 6 ) 4. span(v 1, v 2, v 4 ) = span(v 2, v 3, v 5, v 6 )

Lösungsmethoden gewöhnlicher Differentialgleichungen (Dgl.)

a n auf Konvergenz. Berechnen der ersten paar Folgenglieder liefert:

Binärdarstellung von Fliesskommazahlen

Charakteristikenmethode im Beispiel

LANGFRISTIGE HAUSAUFGABE (LINEARE GLEICHUNGSSYSTEME)

Maple-Skripte. A.1 Einleitung. A.2 Explizite Zweischritt-Runge-Kutta-Verfahren. Bei der Ausführung

Höhere Mathematik 3. Apl. Prof. Dr. Norbert Knarr. Wintersemester 2015/16. FB Mathematik

Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen

Die reellen Lösungen der kubischen Gleichung

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Lineare Gleichungssysteme

Anleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Grundlagen der Theoretischen Informatik, SoSe 2008

DIFFERENTIALGLEICHUNGEN

ERGÄNZUNGEN ZUR ANALYSIS II MITTELWERTSATZ UND ANWENDUNGEN

Informationsblatt Induktionsbeweis

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Lineare Gleichungssysteme I (Matrixgleichungen)

Güte von Tests. die Wahrscheinlichkeit für den Fehler 2. Art bei der Testentscheidung, nämlich. falsch ist. Darauf haben wir bereits im Kapitel über

4 Vorlesung: Matrix und Determinante

Lösungen zum 3. Aufgabenblatt

2 Die Darstellung linearer Abbildungen durch Matrizen

Dokumentation. estat Version 2.0

Approximation durch Taylorpolynome

Datensicherung. Beschreibung der Datensicherung

Einführung in die Kodierungstheorie

Mathematischer Vorbereitungskurs für Ökonomen

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter

Zeichen bei Zahlen entschlüsseln

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

Skript und Aufgabensammlung Terme und Gleichungen Mathefritz Verlag Jörg Christmann Nur zum Privaten Gebrauch! Alle Rechte vorbehalten!

Gruppenrichtlinien und Softwareverteilung

Algorithmen II Vorlesung am

Frohe Weihnachten und ein gutes neues Jahr!

Theoretische Grundlagen der Informatik

Programmiersprachen und Übersetzer

Professionelle Seminare im Bereich MS-Office

13. Lineare DGL höherer Ordnung. Eine DGL heißt von n-ter Ordnung, wenn Ableitungen y, y, y,... bis zur n-ten Ableitung y (n) darin vorkommen.

Anleitung über den Umgang mit Schildern

15 Optimales Kodieren

3. Zusammenhang. 22 Andreas Gathmann

Grundbegriffe der Informatik

8. Quadratische Reste. Reziprozitätsgesetz

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

Lineare Funktionen. 1 Proportionale Funktionen Definition Eigenschaften Steigungsdreieck 3

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume?

Umgekehrte Kurvendiskussion

Im Jahr t = 0 hat eine Stadt Einwohner. Nach 15 Jahren hat sich die Einwohnerzahl verdoppelt. z(t) = at + b

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Transkript:

Der implizit neugestartete Arnoldialgorithmus in Theorie und Praxis Stud.Ing. Christian Schröder Oktober 2002

Inhaltsverzeichnis I Theorie 1 1 Eigenwerte... 1 1.1 Schurzerlegung.......................... 1 1.1.1 QR Algorithmus..................... 3 1.2 Projektionsverfahren....................... 3 1.2.1 Orthogonale Projektionsverfahren............ 5 1.3 Krylovräume........................... 6 2 Arnoldiverfahren 7 2.1 Grundalgorithmus......................... 7 2.1.1 Arnoldiresiduum..................... 11 2.1.2 Konvergenz des Arnoldialgorithmus........... 13 2.2 Neustarts............................. 14 2.2.1 Implizite Neustarts.................... 15 2.3 Deflation.............................. 19 2.3.1 Locking.......................... 20 2.3.2 Purging.......................... 23 II Praxis 25 3 Arpack 25 3.1 Reverse Communication Interface................ 26 3.2 Implementationsdetails...................... 27 3.3 Benutzerfreundlichkeit...................... 28 4 Dünnbesetzte Matrizen 29 4.1 SparseKit............................. 29 5 Tests 30 5.1 Die Probleme........................... 31 5.1.1 Das Schiff......................... 33 5.1.2 Die Membran....................... 33 5.1.3 Die Säule......................... 34 5.2 Testbedingungen......................... 34 5.3 Ergebnisse............................. 36 5.4 Vergleich mit Arncheb,QMR................... 37

Literatur 38

1 Teil I Theorie 1 Eigenwerte... Eines der fundamentalen Probleme der Linearen Algebra ist das Eigenwertproblem. Dabei sind zu gegebenem A C n n Werte λ C und Vektoren x C n \ {0} gesucht, die Ax = λx (1.1) erfüllen. Definition 1.1 Gilt (1.1), so heißt x Eigenvektor, λ nennt man Eigenwert. In der Praxis treten oft große, dünnbesetzte Matrizen auf. Eine Matrix heißt dünnbesetzt, wenn eine Matrix-Vektor-Multiplikation mit ihr nur O(n), anstatt der allgemeinen O(n 2 ) FLOPS braucht. Oft ist eine dünnbesetzte Matrix auch so groß, daß sie voll gespeichert nicht in den Speicher paßt. Algorithmen für dünnbesetzte Matrizen sollten ihre Informationen über die Matrix also hauptsächlich durch Multiplikationen erhalten. Im Weiteren wird davon ausgegangen, daß der Leser mit den grundlegenden Begriffen der Eigenanalyse vertraut ist. Dazu gehören z.b. charakteristisches Polynom, einfache/mehrfache Eigenwerte, algebraische und geometrische Vielfachheiten, Jordanzerlegung, Methoden für dichtbestzte Probleme, Projektoren, invariante Unterräume,.... Totzdem werden im Rest dieses Abschnitts einige Dinge wiederholt, da sie für spätere Ausführungen wichtig sind. Im zweiten Abschitt folgt die Vorstellung des Arnoldialgorithmus, dem zentralen Thema dieses Dokuments. Im Abschnitt 3 wird ARPACK, eine FORTRAN-Implementierung einer Variante des Arnoldialgorithmus betrachtet. Abschnitt 4 beschäftigt sich mit dünnbesetzten Matrizen, während im fünften Abschitt Testergebnisse vorgestellt werden. 1.1 Schurzerlegung Die Jordanzerlegung beschreibt das Eigensystem vollständig, wird für praktische Algorithmen aber nicht verwendet, da sie numerisch extrem instabil sein kann. Stattdessen wird die Schurzerlegung benutzt, die A unitär auf Dreiecksform transformiert.

2 1 EIGENWERTE... Satz 1.2 (Schurzerlegung) Sei A C n n. Dann existieren eine unitäre Matrix Q C n n und eine obere Dreiecksmatrix R C n n, sodaß A = QRQ bzw. Q AQ = R bzw. AQ = QR (1.2) Beweis: Sei A = XJX 1 die Jordanzerlegung von A und X = QR X die QR Zerlegung von X. Damit gilt A = QR X JR 1 X Q. Mit J, R X und R 1 X ist auch R X JR 1 X obere Dreiecksmatrix. Bemerkung 1.3 Der Beweis besagt, daß Schurvektoren in einem gewissen Sinn als orthogonaler Teil der Eigenvektoren verstanden werden können. Für einen Induktionsbeweis, der die Jordanzerlegung nicht benötigt siehe Saad [14] oder Voss [20]. Die Schurzerlegung ist natürlich genausowenig eindeutig wie die Jordanzerlegung. Unter anderen gibt es für jede Anordnung der Eigenwerte auf der Diagonalen der Dreiecksmatrix eine Schurzerlegung. Es existieren Umsortieralgorithmen [1, 4, 19, laut [11]], die eine gegebene Schurzerlegung in eine andere mit anderer Anordnung umschreiben. Eng verwandt damit ist die Deflation aus Abschnitt 2.3. Die drei Varianten von (1.2) sind natürlich gleichbedeutend, spiegeln aber verschiedene Eigenschaften wieder: (1.2.a) rechtfertigt die Bezeichnung Zerlegung, nach (1.2.b) kann man R als Projektion von A auf den Spaltenraum von Q sehen und (1.2.c) besagt, daß die Spalten von Q einen invarianten Unterraum bzgl. A aufspannen. Mit den Eigenwerten einer reellen Matrix können auch Q und R komplex werden. Um die auf der Schurzerlegung basierenden Algorithmen nicht in komplexer Arithmetik implementieren zu müssen, verwendet man die sogenannte reelle Schurzerlegung. Satz 1.4 Sei A R n n. Dann existieren eine orthogonale Matrix Q R n n und eine obere Quasidreiecksmatrix R R n n n, sodaß AQ = QR gilt. R besitzt skalare und (2 2) Diagonalelemente, wobei die (2 2) Blöcke nur komplexe Eigenwerte besitzen.

1.2 Projektionsverfahren 3 Beweis: Siehe Voss [20] Wertet man nur die ersten m Spalten einer (reellen) Schurzerlegung AQ = QR aus, so ergibt sich AQ m = Q m R m. (1.3) Dabei bezeichnet Q m die Matrix der ersten m Spalten von Q und R m die (m m) Hauptuntermatrix von R. (1.3) nennt man die partielle Schurzerlegung von A. Geht man von einer reellen Schurzerlegung aus, so darf man die (2 2) Blöcke auf der Diagonalen von R nicht trennen. Das Ergebnis ist eine partielle, reelle Schurzerlegung. 1.1.1 QR Algorithmus Der QR Algorithmus bestimmt iterativ eine (reelle) Schurzerlegung der Matrix A. Der Algorithmus lautet: Algorithmus 1.5 1. Reduziere A orthogonal auf Hessenberggestalt A 0 2. for i = 0... until convergence do (a) Bestimme QR--Zerlegung: A i µ i I = Q i R i (b) Setze A i+1 = R i Q i + µ i I A i bleibt wärend der gesamten Iteration eine zu A orthogonal ähnliche Hessenbergmatrix. Die Shifts µ i werden so gewählt, daß das letzte Subdiagonalelement möglichst schnell gegen Null konvergiert. Es ist möglich, die Shifts implizit anzuwenden. Dadurch kann auch bei komplexen Eigenwerten in reeller Arithmetik gerechnet werden. Ist ein Subdiagonalelement nahe genug an Null, wird es nullgesetzt, wodurch das Problem in kleinere zerfällt. Durch diese Deflation und die impliziten Shifts ist der QR Algorithmus das beste bekannte Verfahren für dichtbesetzte Systeme. 1.2 Projektionsverfahren Projektionsmethoden suchen den Eigenvektor u nicht im C n, sondern Approximationen ũ davon in einem m dimensionalen Unterraum, dem sogenannten rechten Unterraum K. Die Forderung (A λi)u = 0 wird ersetzt durch die Galerkinbedingung (A θi)ũ L (1.4)

4 1 EIGENWERTE... mit einem m dimensionalen linken Unterraum L. Seien V = [v 1,..., v m ] und W = [w 1,..., w m ] biorthogonale Basen von K bzw. L, dann läßt sich ũ schreiben als ũ = V y und (1.4) wird zu Das heißt, θ und y erfüllen W (A θi)v y = 0 (1.5) B m y := W AV y = θw V y = θy (1.6) Dieses m-dimensionale Eigenwertproblem nennt man die Projekton des n- dimensionalen Ausgangsproblems auf den Unterraum K. Es hat sich herausgestellt, daß die Ergebnisse besser sind, wenn man die Dimension m von K höher wählt, als die Anzahl gesuchter Eigenwerte k. Die Eigenwerte werden dann nach gewünschten Eigenschften, wie größter/kleinster Realteil/Betrag o.ä. ausgewählt. Zusammengefaßt erhält man die Rayleigh Ritz Methode zur approximativen Eigenpaarberechnung: Algorithmus 1.6 1. Berechne biorthonormale Basen V,W der Unterräume K, bzw L. 2. Berechne B m = W AV 3. Berechne die Eigenwerte von B m und wähle k gewünschte aus θ i, i = 1,..., k k < m 4. Berechne die zu den θ i gehörenden Eigenvektoren y i i = 1... k von B m und die approximativen Eigenvektoren von A als ũ i = V y i Definition 1.7 Die approximativen Eigenwerte θ nennt man Ritzwerte, die zugehörigen Vektoren ũ = V y heißen Ritzvektoren und die Tupel (θ, ũ) bezeichnet man als Ritzpaare. Bemerkung 1.8 1. Die Eigensystemberechnung während der Rayleigh-Ritz-Prozedur kann mit Standardroutinen (z.b. LAPACK) durchgeführt werden, da m n. 2. Statt Eigenvektoren können auch Schurvektoren von B m berechnet werden, was in approximativen Schurvektoren von A resultiert. Man unterscheidet in orthogonale und schiefe Projektionsmethoden. Letztere spielen im Weiteren keine Rolle und werden deshalb hier nicht betrachtet.

1.2 Projektionsverfahren 5 1.2.1 Orthogonale Projektionsverfahren Bei orthogonalen Projektionen sind rechter und linker Unterraum identisch, damit kann V = W als Orthonormalbasis von K gewählt werden. (1.6) wird dadurch zu B m y := V AV y = θv V y = θy (1.7) Bemerkung 1.9 Die Ritzwerte θ, die von orthogonalen Projektionsverfahren zu Ritzvektoren x = V y geliefert werden, entsprechen den Rayleighquotienten von x bzgl. A, denn R A (x) = x T Ax = y T V T AV y = y T B m y = θ y 2 = θ Wie der nächste Satz zeigt, sind unter bestimmten Voraussetzungen die approximierten Eigenpaare sogar exakt. Satz 1.10 Sei K invariant unter A. Dann sind alle aus orthogonalen Projektionsverfahren resultierenden Ritzpaare exakte Eigenpaare. Beweis: Jedes Ritzpaar (θ, x) ist definiert durch V (Ax θx) = 0 (1.8) Sei r := Ax θx das Residuum. Der Ritzvektor x = V y liegt definitionsgemäß in K. Wegen der Invarianz gilt dies auch für Ax und damit für r. D.h. r hat eine Darstellung r = V f. Eingesetzt in (1.8) ergibt sich 0 = V r = V V f = f Mit f ist auch r gleich Null und das Ritzpaar ist exakt. Die Bedingung der Invarianz ist sicher wenig praxistauglich, da man eher selten Kenntnis über invariante Unterräume besitzt, wenn man Eigenpaare sucht. Einige Algorithmen versuchen aber, den Projektionsraum K iterativ immer invarianter zu machen, um die Genauigkeit der Approximationen schrittweise zu erhöhen (siehe Abschnitt 2.2).

6 1 EIGENWERTE... 1.3 Krylovräume Die Potenzmethode ist eine der ältesten und einfachsten Methoden, um einen Eigenwert zu finden: Algorithmus 1.11 1. wähle x 0 2. for i = 1... until convergence do (a) x i = Ax i 1 (b) λ (i) = x i (c) x i = 1 λ (i) x i Unter milden Vorraussetzungen konvergieren λ (i) und x i gegen den dem Betrag nach größten Eigenwert und seinen assoziierten Eigenvektor. Die Konvergenzrate entspricht asymptotisch λ 2 λ 1. Falls die größten Eigenwerte betragsmäßig sehr dicht zusammen liegen, kann die Konvergenz damit nur äußerst langsam voranschreiten. Eine naheliegende Idee ist nun, die Iterationsvektoren der Potenzmethode linear zu kombinieren. Das führt zu folgender Definition: Definition 1.12 Der von den ersten m Vektoren der Potenzmethode aufgespannte Unterraum heißt m-ter Krylovraum K m. K m (A, v) := span{v, Av, A 2 v,..., A m 1 v} (1.9) Krylovräume besitzen einige interresante Eigenschaften, auf die jetzt näher eingegangen wird. Lemma 1.13 K m ist der Raum aller Vektoren x, die als x = p(a)v geschrieben werden können, wobei p ein Polynom vom Höchstgrad m 1 ist. Lemma 1.14 K m ist invariant unter Verschiebung des Spectrums von A, also K m (A, v 1 ) = K m (A µi, v 1 ) (1.10) Beweis: Folgt aus Lemma 1.13, da (A µi) i, i = 1... m 1 selber Polynome in A sind.

7 Definition 1.15 Das Minimalpolynom p eines Vektors v ist das nicht verschwindende, normierte Polynom kleinsten Grades, das p(a)v = 0 erfüllt. Der Grad des Minimalpolynoms heißt auch Grad von v bzgl. A. Korollar 1.16 Der Krylovraum K m hat die Dimension m genau dann, wenn der Grad von v größer als m 1 ist. Beweis: Die Vektoren v, Av, A 2 v,..., A m 1 v bilden genau dann eine Basis des K m, wenn es kein m Tupel α i, i = 0 : m 1 ungleich Null gibt, das m 1 i=0 α ia i v = 0 erfüllt. Das ist aber äquivalent mit der Bedingung, daß es kein Polynom p vom Höchstgrad m 1 gibt, für das p(a)v = 0 gilt. Korollar 1.17 Sei k der Grad von v. Dann ist K k invariant unter A. Außerdem gilt K m = K k m k. 2 Arnoldiverfahren Der Arnoldialgorithmus ist eine orthogonale Projektionsmethode auf den Krylovraum K m für die Approximation einiger Eigenpaare einer nicht notwendig hermiteschen Matrix. Der Originalalgorithmus wurde 1951 von Arnoldi vorgeschlagen, um eine Matrix orthogonal auf Hessenberggestalt zu transformieren. Wird er vor Beendigung abgebrochen, lassen sich gute Eigenpaarnäherungen gewinnen. Da das Verfahren die Matrix A nur zur Multiplikation mit einem Vektor benötigt, eignet es sich hervorragend für große spärlich besetzte Matrizen. 2.1 Grundalgorithmus Der Algorithmus erzeugt Stück für Stück eine Orthonormalbasis des Krylovraumes K m (A, v 1 ). Die einfachste Form des Algorithmus lautet folgendermaßen: Algorithmus 2.1 1. Wähle Startvektor v 1 mit Norm 1. 2. for j = 1... m do (a) h ij = (Av j, v i ), (b) f j = Av j j i=1 h ijv i i = 1... j

8 2 ARNOLDIVERFAHREN (c) h j+1,j = f j 2, if h j+1,j = 0 stop (d) v j+1 = f j /h j+1,j Der Algorithmus besitzt ein paar einfache und dennoch wichtige Eigenschaften. Korollar 2.2 Die Vektoren v 1, v 2,..., v m bilden eine Orthonormalbasis des K m = span{v 1, Av 1,..., A m 1 v 1 }. Beweis: Die Vektoren v i, i = 1... m sind nach Konstruktion orthonormal zueinander. Daß sie den K m aufspannen, folgt aus der Tatsache, daß jedes v j als v j = q j 1 (A)v 1 geschrieben werden kann, wobei q j 1 ein Polynom vom Grade j 1 ist. Korollar 2.3 Sei V m := [v 1, v 2,..., v m ] die Matrix der Arnoldivektoren und H m := (h ij ) die im Algorithmus erzeugte Hessenbergmatrix. Dann gelten AV m = V m H m + f m e T m (2.1) V T m AV m = H m. (2.2) Definition 2.4 Eine Zerlegung der Matrix A der Form (2.1) heißt Arnoldizerlegung, falls V T V = I m, V T f = 0 und H obere Hessenberggestalt besitzt. Beweis: (von Korollar 2.3) Aus 2b und 2d (in Algorithmus 2.1) folgt j+1 Av j = h ij v i, j = 1... m (2.3) i=1 Dies ist die Zeilenschreibweise von (2.1). Gleichung (2.2) folgt aus der Multiplikation von (2.1) mit V T m von links unter Ausnutzung der Orthonormalität von {v 1,..., v m, f m }. Bemerkung 2.5 Gleichung (2.2) zeigt, daß die Arnoldimethode zu den orthogonalen Projektionsverfahren zählt. Die Eigenwerte von H m sind also Ritzwerte von A, während sich die Ritzvektoren durch Multiplikation von V m mit den Eigenvektoren von H m ergeben.

2.1 Grundalgorithmus 9 Der Arnoldialgorithmus kann als Verallgemeinerung der Potenzmethode gesehen werden, da die Eigenvektoren in einem Krylovraum gesucht werden. Deshalb und aufgrund von Lemma 1.14 kann man erwarten, daß externe Eigenwerte zuerst gefunden werden [21]. Versuche unterstützen diese These. Eine andere Form von Algorithmus 2.1 ist die folgende. Sie expandiert eine k Schritt Zerlegung in eine (k + p) Schritt Zerlegung und implementiert die Schritte 2a und 2b als Matrix Vektor Multiplikationen. Algorithmus 2.6 function [V k+p, H k+p, f k+p ] = arnoldi(a, V k, H k, f k, k, p) on Input: AV k V k H k = f k e T k ist k--schritt Arnoldizerlegung on Output: AV k+p V k+p H k+p = f k+p e T k+p ist (k + p)--schritt Arnoldizerlegung 1. for j = 1... p do (a) β k+j := f k+j 1 ; if β k+j == 0 then stop (b) v k+j := f k+j 1 β 1 k+j ; (c) V k+j := [ V k+j 1 v k+j ] ; Ĥk+j := (d) w := Av k+j (e) h k+j := V T k+j w (f) f k+j := w V k+j h k+j (g) H k+j := [ Ĥ k+j h k+j ] [ Hk+j 1 0 0, β k+j In exakter Arithmetik bricht der Algorithmus zusammen, wenn f k = 0 für ein k. Die Hessenbergmatrix H k ist nicht reduziert (sonst wäre das Verfahren schon eher zusammengebrochen). Der folgende Satz gibt an, wann ein Zusammenbruch eintritt und warum dies sogar wünschenswert ist (lucky breakdown). Satz 2.7 Sei eine k Schritt Arnoldizerlegung AV k = V k H k + f k e T k gegeben mit nicht reduzierter Hessenbergmatrix H k. Dann sind folgende Aussagen äquivalent: 1. f k = 0 ]

10 2 ARNOLDIVERFAHREN 2. v 1 ist vom Grad k. 3. v 1 hat eine Darstellung v 1 = Q k y mit einer partiellen, reellen Schurzerlegung AQ k = Q k R k der Ordnung k, aber bzgl. keiner kleineren Ordnung. 4. Der Raum K k ist invariant unter A, wärend alle Räume K i, i < k nicht invariant sind. Außerdem sind in diesem Fall die approximierten Eigenwerte und vektoren exakt. Beweis: 2 1 Ist v 1 vom Grad k, muß nach Korollar 1.17 f k = 0 gelten, sonst könnte v k+1 gebildet werden und dimk k+1 wäre k +1, was im Widerspruch zur Annahme steht. 2 4 Die Invarianz folgt auch aus Korollar 1.17. 1 2 Angenommen, f k = 0 gilt. Dann folgt für den Grad j von v 1, daß j k. Wäre j < k, hätte der Algorithmus aber schon im j ten Schritt gehalten. Also j = k. 4 3 Sei K k invariant und AQ k = Q k R k eine partielle, reelle Schurzerlegung bzgl. dieses Raumes, also span{q 1... q k } = K k. v 1 liegt demnach im Spaltenraum von Q k und hat eine Darstellung v 1 = Q k y. 3 2 Sei v 1 = Q k y mit AQ k = Q k R k. Dann ist A j Q k = Q k R j k j N und es folgt A k v 1 = A k Q k y = Q k Rky k Range(Q k ). (2.4) Damit ist dimk k+1 rang(q k ) = k. Da H k nichtreduziert ist, gilt auch dimk j = j, j = 1... k. Der Rang von v 1 beträgt also k. Die Exaktheit folgt aus Satz 1.10. Aussage 3 in Satz 2.7 bedeutet, daß v 1 in einem invarianten Unterraum liegt. Es wäre also wünschenswert, eine Methode zu finden, die v 1 in so einen Unterraum zwingt.

2.1 Grundalgorithmus 11 2.1.1 Arnoldiresiduum Für die praktische Verwendbarkeit des Algorithmus ist es wichtig, das Residuum eines Ritzpaares (θ, x = V y) schnell berechnen zu können. In der Tat ist dies sogar ohne Multiplikation mit A möglich, wie folgende Überlegungen zeigen. Daraus folgt für das Residuum (A θi)x = (AV θv )y (2.5) = AV y V Hy (2.6) = f k e T k y (2.7) (A θi)x = f k e T k y (2.8) = f k e T k y (2.9) Definition 2.8 Gleichung (2.9) wird als Arnoldiresiduum des Ritzpaares (θ, x) bezeichnet. Im Fall einer normalen Matrix A ist der Fehler λ θ durch das Residuum beschränkt (Satz von Bauer und Fike, z.b. [20, Seite 157]). Im Allgemeinen sagt das Residuum aber nicht viel über die Güte der Approximation aus und kann höchstens als Fehlerindikator dienen. In diesem Fall muß man sich mit einer Rückwärtsfehlerabschätzung zufrieden geben. Lemma 2.9 Sei ( λ, ũ), ũ = 1 ein approximatives Eigenpaar von A mit Residuum r := Aũ λũ. Dann existiert eine Matrix E, E = r, so daß Beweis: Sei E = rũ T. Damit gilt Für E ergibt sich (A + E)ũ = λũ. (2.10) (A + E)ũ = Aũ rũ T ũ (2.11) = Aũ r (2.12) = λũ (2.13) E = rũ T = r. (2.14) Bemerkung 2.10 Falls die Matrix A stark nichtnormal ist (d.h. die relative Abweichung AA T A T A F / A 2 F von der Normalität groß ist), kann das Arnoldiresiduum weit vom echten Residuum entfernt sein [5, 6, 8, laut [11]]. Bennani und Braconnier [2, laut [11]] empfehlen, das Arnoldiresiduum mit der Norm von A zu normieren.

12 2 ARNOLDIVERFAHREN Der Arnoldi Algorithmus zur Berechnung von k Eigenwerten mit Toleranz τ hat damit folgende Form: Algorithmus 2.11 1. wähle Startvektor v 1, Toleranz τ 2. for m = k, k + 1,... do (a) Expandiere die Zerlegung zu AV m = V m H m + f m e T m (b) Berechne die k gewünschten Ritzpaare (θ i, x i ), i = 1... k (c) if arnoldires(θ i, x i ) < τ, i = 1... k then stop Bemerkung 2.12 Mit wachsendem m wird die Norm von f m fallen und die Ritzwerte werden bessere Approximationen der Eigenwerte von A. Rechnen in endlicher Genauigkeit verhindert, daß f m beliebig klein wird, ganz zu schweigen von Null. Mit wachsendem m wird es auch immer schwieriger, die Basis orthogonal zu halten, weshalb man bessere Orthonormalisierungsverfahren einsetzt: modifizierter Gram Schmitt Zerlegung mit Householdermatrizen Reorthogonalisierung, wenn notwendig Der modifizierte Gramm Schmidt Algorithmus ist gegenüber der normalen Version bei gleicher Rechenzeit numerisch stabiler. Zu den stabilsten Methoden überhaupt gehört der Householder Algorithmus, der aber ca. doppelt so viel FLOPS braucht. Beide Alternativen besitzen allerdings den Nachteil, schlecht parallelisierbar zu sein. Das Konzept der Reorthogonalisierung ist auf jeden der QR-Algorithmen anwendbar. Nach der DGKS Methode (Daniel,Gragg,Kaufmann,Stewart[7, laut [11]]) wird dabei, falls nötig, nach dem Orthogonalisierungsschritt (hier aus Algorithmus 2.6) ein Korrekturschritt f k+1 := w V k+1 h k+1 (2.15) c = V T k+1f k+1, f k+1 := f k+1 V k+1 c, h k+1 := h k+1 + c (2.16) ausgeführt. Ob die Korrektur notwendig ist, kann anhand einer einfachen Toleranzabfrage entschieden werden.

2.1 Grundalgorithmus 13 2.1.2 Konvergenz des Arnoldialgorithmus Es gibt nur wenige Resultate, die die Konvergenzgeschwindigkeit des Arnoldiprozesses betreffen, geschweige denn eine geschlossene Konvergenztheorie. Was es gibt, sind Aussagen über den Abstand u i û i 2 = (I P m )u i 2 zwischen dem Eigenvektor u i und der orthogonalen Projektion û i = P m u i auf K m. Diese Größe kann aber nur als untere Schranke für den wirklichen Fehler ũ i u i 2, ũ i = V y i dienen, da nicht garantiert ist, daß die Näherung ũ i gleich der besten Approximation û i von u i im Krylovraum K m ist. Das Thema Konvergenz wird deshalb nur kurz behandelt. Der Einfachheit halber sei angenommen, daß A diagonalisierbar ist. Weiter sei ɛ (m) i := min max p(λ), (2.17) λ σ(a) λ i p P m 1 mit P m 1 als die Menge aller Polynome vom Höchstgrad m 1, die p(λ i ) = 1 erfüllen. In Worten beschreibt ɛ (m) i die kleinstmögliche Unendlichnorm über σ(a) unter allen Polynomen der Form 1 (z λ 1 )s(z) mit s vom Höchstgrad m 2. Das folgende Lemma stellt eine Beziehung zwischen der Größe ɛ (m) i und dem Abstand (I P m )u i 2 her. Lemma 2.13 Sei A diagonalisierbar und habe der Startvektor v 1 die Darstellung v 1 = n k=1 α ku k bzgl. der Eigenbasis {u k } k=1...n, u k 2 = 1. Sei weiter α i 0. Dann gilt mit (I P m )u i 2 ξ i ɛ (m) i (2.18) ξ i = n j=1 j i α j α i. (2.19) Beweis: Aus x P m x 2 = minˆx Km x ˆx 2 und Lemma 1.13 folgt (I P m )α i u i 2 = min q P m 1 α i u i q(a)v 1 2 (2.20) j=1 j i min α i u i q(a)v 1 2. (2.21) q P m 1 Sei p das Polynom, das dieses Minimum erreicht. Mit der Dreiecksungleichung und der Forderung p(λ i ) = 1 ergibt sich n n (I P m )α i u i 2 α j p(λ j )u j 2 max p(λ j ) α j (2.22) j i Das Teilen beider Seiten durch α i schließt den Beweis. j=1 j i

14 2 ARNOLDIVERFAHREN Damit stellt sich jetzt die Frage, wie man die Größe ɛ (m) i Eine einfache Abschätzung von ɛ (m) 1 ist die folgende: berechnen kann. Lemma 2.14 Sei K(c, r) ein Kreis mit Mittelpunkt c und Radius r, der alle Eigenwerte von A, außer λ 1 umschließt. Dann gilt ( ) m 1 ɛ (m) r 1. (2.23) λ 1 c Beweis: Bei Benutzung des speziellen Polynoms q(z) = (z c) m 1 /(λ 1 c) m 1 in der Definitionsgleichung (2.17) folgt ( ) m 1 ( ) m 1 ɛ (m) λj c r 1 max. (2.24) j=2...n λ 1 c λ 1 c Bemerkung 2.15 Die Abschätzung kann bei Verwendung einer Ellipse statt des Kreises noch verbessert werden (Saad [14, Seite 213]). Neben diesen Abschätzungen kann man mit Ergebnissen aus der Approximationstheorie (Saad [14, Seiten 205 209]) auch folgende Identität beweisen, die eher theoretischer Natur ist. Satz 2.16 Sei m < n. Dann existieren m Eigenwerte (λ 2... λ m+1 genannt) von A so daß 1 m+1 ɛ (m) m+1 λ k λ 1 i =. (2.25) λ k λ j 2.2 Neustarts j=2 k=2 k j Da die Informationen, die durch den Arnoldialgorithmus gewonnen werden können, durch die Wahl des Startvektors vollständig bestimmt sind, kann k bei ungünstiger Wahl von v 1 sehr groß werden, bevor die gewünschten Informationen erscheinen. Ist dies der Fall, so ist es sehr schwer, die Basisvektoren V k ortogonal zu halten. Außerdem steigt der Speicherbedarf rasant an und die Kosten, das Eigensystem von H k zu berechnen, wachsen mit O(k 3 ) FLOPS.

2.2 Neustarts 15 Um diese Kosten in vertretbaren Maßen zu halten, werden Neustartmechanismen eingesetzt. Da der Arnoldialgorithmus genau dann nach m Schritten abbricht, wenn der Startvektor in einem m-dimensionalen invarianten Unterraum liegt (vgl. Satz 2.7), schlug Saad [16, laut [11]] vor, den Algorithmus nach je m Schritten mit einen verbesserten Startvektor neuzustarten, der mehr und mehr in so einem invarianten Unterraum liegt. Die Verbesserung erfolgt als Anwendung eines Polynoms in A auf den alten Startvektor, um ungewollte Anteile aus der Eigenvektorexpansion herauszudämpfen. Der explizit neugestartete Arnoldialgorithmus (ERAM=explicit restarted arnoldi method) hat damit folgende Gestalt: Algorithmus 2.17 1. Wähle v 1 2. do (a) Berechne m--schritt Arnoldizerlegung (b) Prüfe auf Konvergenz (c) Berechne Ψ, um ungewünschte Komponenten auszudämpfen (d) v 1 := Ψ(A)v 1 Ein geeignetes Polynom Ψ könnte man z.b. generieren, indem man eine Ellipse um die ungewünschten Eigenwerte vom H legt und Ψ als Chebyshevpolynom wählt, das auf dieser Ellipse minimal wird. Diese Wahl wird u.a. von Blömeling [3] näher besprochen. Eine andere Wahl wird im nächsten Abschnitt vorgestellt zusammen mit einer Technik, die Neustarts wesentlich rechenzeitsparsamer ermöglicht. 2.2.1 Implizite Neustarts Die Neustarts haben die Lage ein wenig verbessert, da der Speicherbedarf begrenzt wurde. Allerdings werden bei den expliziten Neustarts fast alle Informationen verworfen, die man gesammelt hatte, und die Anwendung von Ψ benötigt weitere Multiplikationen mit A. Sorensen [17] zeigte, daß es möglich ist, beide Probleme zu umgehen. Dabei wird der geshiftete QR-Algorithmus (siehe Abschn. 1.1.1) auf die projezierte Matrix H angewendet, weshalb alle Operationen in R m m anstatt in R n n stattfinden. Ähnlich wie bei der impliziten Anwendung der Shifts im QR Algorithmus, basiert auch der implizite Neustart der Arnoldimethode auf einem Eindeutigkeitssatz.

16 2 ARNOLDIVERFAHREN Satz 2.18 (impliziter Q Satz) Seien AV = V H + fe T k AQ = QG + re T k zwei Arnoldizerlegungen der Matrix A. Sei weiter V e 1 = Qe 1, dann gilt V = Q, H = G und f = r Beweis: Ein einfacher induktiver Beweis. Ausgehend von (2.1) gilt mit der QR-zerlegung H k+1 µi = QR: AV k+1 V k+1 H k+1 = f k+1 e T k+1 (2.26) (A µi)v k+1 V k+1 (H k+1 µi) = f k+1 e T k+1 (2.27) (A µi)v k+1 V k+1 QR = f k+1 e T k+1 (2.28) (A µi)(v k+1 Q) (V k+1 Q)(RQ) = f k+1 e T k+1q (2.29) A(V k+1 Q) (V k+1 Q)(RQ + µi) = f k+1 e T k+1q. (2.30) Mit den Vereinbarungen V + k+1 := V k+1q, H + k+1 := RQ + µi hat man AV + k+1 V + k+1 H+ k+1 = f k+1e T k+1q. (2.31) V + k+1 hat orthonormale Spalten und H+ k+1 ist obere Hessenbergmatrix (da R obere Dreiecks- und Q obere Hessenberggestalt hat). Trotzdem ist (2.31) keine Arnoldizerlegung, da die kte Spalte der Matrix f k+1 e T k+1q nicht verschwindet. Unterteilt man die Matrizen aus (2.31) erhält man A [ ] [ ] [ ] V + k v + k+1 = V + k v + H + k h + [ ] k+1 k+1 β + k+1 et k α + + f k+1 σk e T k γ k k+1 (2.32) mit σ k := e T k+1 Qe k und γ k := e T k+1 Qe k+1. Die ersten k Spalten von (2.32) ergeben sich zu AV + k = V + k H+ k + (β+ k+1 v+ k+1 + σ kf k+1 )e T k. (2.33) Mit f + k := β+ k+1 v+ k+1 + σ kf k+1 ist (2.33) eine k Schritt Arnoldizerlegung, da (V + k )T f + k = 0.

2.2 Neustarts 17 Für den Startvektor der neuen Zerlegung ergibt sich (A µi)v 1 = (A µi)v k+1 e 1 2.28 = V k+1 Qe 1 r 11 + f k+1 e T k+1e 1 (2.34) = V k+1 Qe 1 r 11 (2.35) = v + 1. (2.36) Der neue Startvektor v 1 + ergibt sich also aus v 1 durch Anwendung eines Polynoms (ersten Grades) in A, das bei µ seine Nullstelle hat. Durch p maliges Anwenden obiger Prozedur auf eine (m = k + p)-schritt Arnoldizerlegung mit den Shifts µ 1... µ p erhält man eine k Schritt Zerlegung mit wie folgt aktualisiertem Startvektor. p v 1 + = (A µ i I)v 1 =: Ψ(A)v 1 (2.37) i=1 Satz 2.18 sagt nun das diese k Schritt Zerlegung identisch ist mit einer durch v 1 + explizit neugestarteten. Deshalb nennt man die Zerlegung implizit neugestartet. Bemerkung 2.19 Sei AV n V n H n = 0 die auf n Schritte erweiterte Zerlegung aus (2.26) und H n µi = Q n R n die QR-Zerlegung von H n µi, so bildet V k+1 die ersten Spalten von V n und Q bzw. R sind Hauptunterabschnittsmatrizen von Q n bzw. R n. Daraus folgen V n Q n R n e 1 = V k+1 QRe 1 und (R n ) 11 = (R) 11. Zusammen ergibt sich: V + k e 1 = V k+1 Qe 1 = V n Q n e 1 = Ṽne 1 (2.38) Da Ṽn die Matrix ist, die sich nach einem vollen QR-Schritt mit A ergeben hätte, kann man den Arnoldi-Algorithmus mit impliziten Neustarts als abgeschnittene Version des QR-Algoritmus sehen. Eine naheliegende Wahl des Filterpolynoms ist die folgende. Seien die Eigenwerte θ i, i = 1... m von H m, unterteilt in einen gewünschten (i = 1... k) und einen ungewünschten (i = k + 1... m) Teil. Wählt man nun die ungewünschten Eigenwerte als Shifts, so wendet man implizit das Polynom Ψ(A) = m i=k+1 (A θ i I) (2.39) an. Da diese Ritzwerte θ i, i = k+1... m Approximationen der ungewünschten Eigenwerte von A sind, ist das Polynom in den nicht interessanten Bereichen

18 2 ARNOLDIVERFAHREN klein, wärend es nach außen stark anwächst. Die Wahl der ungewünschten Ritzwerte als Nullstellen des Filterpolynoms wird auch als Strategie der exakten Shifts bezeichnet. Der Algorithmus mit impliziten Neutstarts (IRAM, implicit restarted Arnoldi method) lautet damit wie folgt. Algorithmus 2.20 1. Wähle Sartvektor v 1, Toleranz τ 2. Erzeuge k--schritt Arnoldizerlegung 3. do (a) Expandiere auf m--schritt Zerlegung (b) Berechne alle Eigenwerte θ i von H m Sortiere nach gewünschten(i = 1... k) und ungewünschten (i = k + 1... m) Werten, Berechne Eigenvektoren y i, i = 1... k zu den gewünschten Eigenwerten. (c) if arnoldires(theta i, x i = V m y i ) < τ, i = 1... k then stop (d) Wende QR--Algorithmus auf H m an mit den ungewünschten Ritzwerten als Schifts: ẽ T = e T m for i = k + 1... m do i. H θ i =: QR ii. H := RQ + θ i iii. V m := V m Q, ẽ T := ẽ T Q (e) Werte die ersten k Spalten der Zerlegung aus β = (H m ) k+1,k, σ = ẽ T e k f k = βv k+1 + σf m AV k = V k H k + f k e T k Anders als oben dargestellt, wird wegen der Möglichkeit konjugiert-komplexer Shifts die implizite Version des QR Algorithmus benutzt. Damit können auch die impliziten Neustarts vollständig in reeller Arithmetik ausgeführt werden. Zusammenfassend lauten die Vorteile dieser Methode: Feste Speicheranforderungen Spaltenorthonormalität von V kann aufrecht erhalten werden, da m von moderater Größe ist.

2.3 Deflation 19 Anwendung eines Polynoms (mit komplexen Nullstellen) Ψ in A, ohne die Matrix Vektor Multiplikationen ausführen oder komplexe Arithmetik verwenden zu müssen. Einbeziehung des QR Algorithmus, bzw. seines gut verstandenen numerischen sowie theoretischen Verhaltens. 2.3 Deflation Mit fortschreitender Iteration steigt die Approximationsgüte der Ritzwerte. Im allgemeinen fallen die Arnoldiresiduen der verschiedenen Ritzpaare aber unterschiedlich schnell. Ist ein Arnoldiresiduum klein genug, wird der zugehörige Ritzwert als konvergiert bezeichnet. Zur Veranschaulichung sei angenommen, daß nach m Schritten des Arnoldialgorithmus A [ ] [ ] [ ] H V 1 V 2 = V1 V 1 G 2 ( 0 0 0 ɛ + f ) H m e T m (2.40) 2 gilt mit V 1 R n j, H 1 R j j für ein j < m. Wäre ɛ = 0, so wären alle Ritzpaare von H 1 exakte Eigenpaare von A. In exakter Arithmetik kann ɛ nicht Null werden, aber beliebig klein. Ist ɛ kleiner als eine Toleranzgrenze, bilden die Ritzpaare von H 1 gute Eigenpaar Approximationen, da ihre Arnoldiresiduen von der Größe ɛe T j y sind. Wird ɛ jetzt null gesetzt, so spricht man analog zum QR-Algorithmus von Deflation (nach Lehoucq und Sorensen [11]). Man erhält dann die Zerlegung eines leicht gestörten Problems, wie folgendes Lemma zeigt. Lemma 2.21 Sei (2.40) eine Arnoldizerlegung von A. Dann existiert ein E R n n, E ɛ, mit dem (A + E) [ ] [ ] [ ] H V 1 V 2 = V1 V 1 G 2 + f 0 H m e T 2 m. (2.41) Beweis: Wähle E = ɛv j+1 v T j. Wertet man nach der Deflation die letzten m j Spalten von (2.40) aus und multipliziert von links mit (I V 1 V T 1 ), so ergibt sich (I V 1 V1 T )AV 2 = (I V 1 V1 T )(V 1 G + V 2 H 2 + f m e T m) (2.42) = V 2 H 2 + f m e T m. (2.43)

20 2 ARNOLDIVERFAHREN Deflation von V 1 und H 1 resultiert also in einer Arnoldizerlegung der Matrix (I V 1 V1 T )A mit Startvektor v j+1. Dies erlaubt die Berechnung mehrfacher Eigenwerte. Wie nach der Deflation weiterverfahren wird, hängt davon ab, ob die konvergierten Ritpaare gewollt oder nicht gewollt sind. 2.3.1 Locking Ist ein konvergiertes Ritzpaar gewollt, gelten die Spalten von V 1 als gesperrt (engl.: locked). D.h. nachfolgende implizite Neustarts geschehen auf Basis von (2.43) und wirken sich nur auf V 2, H 2 und G aus. Die Expansion der Arnoldizerlegung nach einem impliziten Neustart orthogonalisiert dagegen die neuen Arnoldivektoren auch gegen die konvergierten Ritzvektoren in V 1. Dieses Vorgehen verhindert die Konvergenz gegen schon bekannte Eigenpaare. Ritzpaare können konvergieren, ohne daß ein Subdiagonalelement vernachlässigbar wird. In diesem Fall sorgt der Term e T my für ein kleines Arnoldiresiduum. Durch einen orthogonalen Basiswechsel und Übergang auf ein leicht gestörtes Problem ist es dann aber möglich, das Paar von den anderen Eigenvektoren von H m zu entkoppeln. Um dies zu zeigen, wird folgendes Lemma gebraucht. Lemma 2.22 Sei y R m, τ = sign(e T 1 y) und Q eine Householdermatrix, die Qy = e 1 τ y erfüllt. Sei weiter w T := e T mq e T m (2.44) die Abweichung der letzten Zeile von Q von e T m. Dann gilt w 2 et my y. (2.45) Ist y darüberhinaus Eigenvektor der Matrix H R m m zum Eigenwert θ, dann gilt außerdem Q T HQe 1 = θe 1 (2.46) Beweis: Die benötigte Householdermatrix Q ist unabhängig von y. Sei daher obda y = 1. Dann ist Q von der Form Q = I γ(y τe 1 )(y τe 1 ) T (2.47)

2.3 Deflation 21 mit γ = (1 + e T 1 y ) 1. Eine direkte Rechnung ergibt e T mq = e T m + w T mit w T = γe T my(τe T 1 y T ). Aus y τe 1 = = = folgt die Schranke für w, denn w = ( ( ( (e T 1 y τ) 2 + ( e T 1 y + 1) 2 + 2 e T 1 y + 1 + Gleichung (2.46) zeigt man folgendermaßen ) 1 2 m (e T i y) 2 i=2 ) 1 2 m (e T i y) 2 i=2 ) 1 2 m (e T i y) 2 i=1 (2.48) (2.49) (2.50) = ( 2 + 2 e T 1 y ) 1 2 (2.51) = e T my 1 + e T 1 y y τe 1 (2.52) e T my 2(1 + e T 1 + e T 1 y ) (2.53) 1 y 2 e T my. (2.54) Q T HQe 1 Q T =Q = τ 1 Q T Hy = θτ 1 Q T y QT =Q = θe 1. (2.55) Bemerkung 2.23 Aufgrund der Symmetrie von Householdermatrizen erfüllt Q natürlich auch y T Q = y T Q T = (Qy) T = (τe 1 ) T (2.56) = τe T 1. (2.57) Sollte y Linkseigenvektor von H sein, gilt entsprechend e T 1 Q T HQ = τ 1 y T HQ = θτ 1 y T Q (2.58) = θe T 1 (2.59)

22 2 ARNOLDIVERFAHREN Erweiterung einer Arnoldizerlegung mit Q ergibt unter Ausnutzung von (2.44) sowie (2.46) AV m Q = V m QQ T H m Q + f m e T mq (2.60) [ ] θ g T = V m Q + f 0 H m e T m + f m w T (2.61) Gleichung (2.61) ist keine Arnoldizerlegung mehr. Um das zu ändern, muß die (m 1 m 1) Matrix H auf Hessenberggestalt zurücktransformiert und der Term f m w T unterdrückt werden, ohne die Matrix f m e T m oder die erste Spalte von Q T HQ zu stören. Dafür werden wiederum Householdermatrizen U i verwendet. Zuerst berechnet man U 1, sodaß e T m 1U 1 = e T m 1 und [ ] U1 T HU H 1 = 11 ĥ 12 (2.62) 0... 0, β α Wiederholen dieser Methode resultiert in Matrizen U 1,... U m 3, die H auf Hessenberggestalt transformieren. Mit der Definition [ ] 1 0 U = (2.63) 0 U 1 U 2 U m 3 folgt aus der Konstruktion der U i, daß e T mu = e T m und U T Q T H m QUe 1 = θe 1 (2.64) Da f m w T U = f m U T w = f m w, bleibt f m w T konstant. Mit den Aktualisierungen V m := V m QU, H m := U T Q T H m QU, w T := w T U erhält man AV m = V m H m + f m e T m + f m w T. (2.65) Aus Gleichung (2.65) wird durch Streichen des Terms f m w T eine Arnoldizerlegung, was nach folgendem Lemma einem Übergang auf ein leicht gestörtes Problem entspricht. Lemma 2.24 Sei durch (2.65) eine gestörte Arnoldizerlegung gegeben. Sei weiter H m y = yθ, y = 1 und 2 e T my f m ɛ A für ein ɛ. Dann existiert eine Matrix E R n n, E ɛ A, sodaß (A + E)V m = V m H m + f m e T m. (2.66) Beweis: Wähle E = f m (V m w) T. Die Abschätzung folgt aus Lemma 2.22 und E = f m w 2 e T my f m ɛ A (2.67)

2.3 Deflation 23 2.3.2 Purging Ist das konvergierte Ritzpaar(θ, y) ungewollt, muß es aus der Zerlegung gestrichen(eng.:purge) werden, damit es nicht mehr stört. In exakter Arithmetik ist Purging nicht nötig, da ein QR Schritt mit Shift θ die Anteile in Richtung des konvergierten Ritzvektors ausdämpft. Allerdings zeigt der QR-Algorithmus eine starke Vorwärtsinstabilität, wenn der Shift einem Eigenwert von H nahe kommt und die letzte Komponente des Eigenwertes klein ist [13, laut [11]], was das Purging erforderlich macht. Um das Paar streichen zu können, muß es erst vom Rest der Zerlegung entkoppelt werden. Dazu berechnet man einen Linkeigenvektor z zu θ, was wegen der moderaten Größe von m kein Problem ist. Sei Q die Householdermatrix, die z T Q = sign(z T e 1 )e 1 erfüllt. Nach Erweiterung der Arnoldizerlegung mit diesem Q gilt wegen Lemma 2.22 und Bemerkung 2.23 AV Q = V QQ T HQ + fe T mq (2.68) [ ] θ = V Q + fe h H T m + fw T (2.69) Durch Auswertung der letzten m 1 Spalten ergibt sich A(V Q) 2:m = (V Q) 2:m H + fe T m 1 + fw T 2:m. (2.70) Wie beim Locking wird H jetzt durch Householdertransformationen U = U 1 U m 3 wieder in Hessenberggestalt überführt, ohne den Term fe T m zu stören. Mit den Aktualisierungen V m 1 := (V Q) 2:m U, H m 1 := U T (Q T HQ) 2:m,2:m U (2.71) und Weglassen des Terms fw T U (was wieder dem Übergang auf ein leicht gestörtes Problem entspricht) erhält man schließlich eine (m 1) Schritt Arnoldizerlegung von A. Bemerkung 2.25 Das aktualisierte H m 1 besitzt, wie H auch, alle Eigenwerte des ursprünglichen H m, mit Ausnahme von θ. Dieser Ritzwert wurde aus der Zerlegung gestrichen. Das bedeutet jedoch nicht, daß er in späteren Phasen des Algorithmus nicht wieder aufgenommen werden kann. Sind vor dem Purging schon gelockte Vektoren vorhanden, so wird diese Struktur leider zerstört. Da die konvergierten Ritzpaare durch das Purging aber nicht an Approximationsgüte verlieren, können sie in der nächsten Iteration erneut gelockt werden.

24 2 ARNOLDIVERFAHREN Die Konstruktion des Q in Lemma 2.22 benötigt nicht die Hessenberggestalt der Matrix H. Es können also mehrere konvergierte, ungewollte Ritzpaare nacheinander gepurged werden, ohne die Matrix zwischendurch wieder auf Hessenberggestalt zurückzutransformieren. Ähnliches gilt für das Locking. Die an die Matrix Q gestellten Anforderungen lauten: Orthogonalität, Qy = αe 1 (locking) bzw. y T Q = αe T 1 (purging) für gegebenes y, sowie e T mq = e T m + w T, w klein und Q T HQe 1 = θe 1 bzw. e T 1 Q T HQ = θe T 1, falls y (Links-)Eigenvektor von H ist. Dadurch ist Q noch nicht festgelegt. Lemma 2.22 konstruiert eine Householdermatrix. Es gibt aber Bestrebungen, bessere Alternativen zu finden. Lehoucq und Sorensen [9] schlagen eine Dreiecksmatrix mit erster Spalte vor. Der Vektor w hat dann die Form w = (η, 0... 0, γ) T, mit η = e T my und γ = 1 1 η 2 < η 2 Diese Form hat Vorteile beim Purging, da das w praktisch wegfällt und ein Übergang auf ein gestörtes Problem nicht notwendig ist. Der Arnoldialgorithmus mit Locking und Purging hat somit folgende Gestalt. Algorithmus 2.26 1. Berechne k--schritt Arnoldi Zerlegung 2. do (a) Expandiere die Zerlegung auf k + p Schritte (b) Berechne alle Eigenpaare von H k+p (c) Prüfe Ritzpaare auf Konvergenz wenn k gewollte Ritzpaare konvergiert sind dann stoppe Sei i bzw. j die Anzahl gewünschter bzw. ungewünschter konvergierter Ritzpaare (d) Purging der j ungewünschten konvergierten Ritzpaare, resultierend in einer (k + p j)--schritt Arnoldizerlegung (e) Lock die i gewünschten konvergierten Ritzpaare (f) Impliziter Neustart (unter Benutzung der ungewollten nicht konvergierten Ritzwerte als Shifts) resultierend in einer k--schritt Arnoldizerlegung

25 Teil II Praxis 3 Arpack ARPACK, eine Sammlung von FORTRAN77 Routinen, wurde designed, um große Eigenwertprobleme zu lösen. Der Name steht für ARnoldi PACKage. Das Paket wurde ab 1990 an der Rice Universität in den USA entwickelt und ist im Internet als Quellcode frei verfügbar 1. Die aktuelle Version ist von August 2002. ARPACK implementiert die implizit neugestartete Arnoli- Methode. Daraus ergeben sich die grundlegenden Eigenschaften der Software. ARPACK... ist für dünnbesetzte Probleme besonders geeignet, da ausschließlich durch Multiplikationen auf die Matrix(-zen) zugegriffen wird. wurde konzipiert, um einige, sprich k, Eigenwerte mit vorgebbaren Eigenschaften, wie größtem Realteil oder größtem Betrag zu berechnen. hat feste Speicheranforderungen von n O(k) + O(k 2 ). berechnet eine Schurbasis für den gewünschten k-dimensionalen Eigenraum. Eigenvektoren sind bei Bedarf ebenfalls verfügbar. Auf Seite 39 sind die Eigenschaften in einem Steckbrief (Figur 5.8) zusammengefaßt. Bemerkung 3.1 ARPACK bietet auch Routinen für verallgemeinerte Probleme der Form Ax = λbx an. Ist B spd, ändert sich durch Übergang auf die B-Norm und spezielle Transformationen an der Theorie nicht viel. Auch für das Standardproblem stehen Shift-and-Invert-Transformationen bereit. Der Benutzer muß dann die Multiplikation w = (A σi) 1 v bereitstellen. Für Parallelarchitekturen existiert eine spezielle Version, P ARPACK. Sie unterstützt die Multiprozessorinterfaces MPI und BLACS. 1 http://www.caam.rice.edu/software/arpack

26 3 ARPACK 3.1 Reverse Communication Interface Normalerweise werden in der Programmiermethodik Unteraufgaben von Unterprogrammen ausgeführt. Hier würde das heißen, daß der Benutzer eine Subroutine mit vordefiniertem Namen schreibt, die die Matrix-Vektor- Multiplikation durchführt. Wann immer während des Algorithmus eine solche benötigt wird, springt das Programm in die Subroutine und die Multiplikation wird berechnet. Allerdings hätten die Softwaredesigner nicht nur den Namem der Routine definieren müssen, sondern auch ihre Parameter und damit die Speicherstruktur der Matrix. Da es gerade für dünnbesetzte Matrizen eine Vielzahl an Speicherstrukturen gibt (vgl. Abschnitt 4) und die Matrix nicht einmal existieren muß, sind die Designer diesen Weg nicht gegangen. Stattdessen wurde ein Reverse Communication Interface implementiert, d.h. sobald eine Aktion vom Benutzer erforderlich ist, wird die ARPACK- Routine beendet. An einem Rückgabewert erkennt der Benutzer, was von ihm gefordert ist. Nach der Ausführung wird das ARPACK-Programm erneut aufgerufen, diesmal mit etwas anderen Parametern. ARPACK erkennt daran, daß es nicht zum ersten Mal gestartet wird und an welcher Stelle die Unterbrechung stattfand. Diese Technik verkompliziert das Design ungemein, läßt dem Benutzer aber jede Freiheit in der Implementierung der geforderten Aktionen. Beispiel 3.2 Das folgende Codesegment zeigt die Verwendung des Reverse Communication Interfaces ido=0 10 continue call dnaupd(ido,...,workd,...,ipntr,...) if(ido.eq. 1) call Ax( A,n,workd(ipntr(1)),workd(ipntr(2))) goto 10 end if ido (Zeile 1) ist der Parameter, der ARPACK sagt, ob und wo eine Unterbrechung stattfand. ido = 0 steht für den ersten Aufruf. In Zeile 2 wird die Schleife eingeleitet. In Zeile 3 wird die ARPACK-Routine für nichtsymmetrische, reelle, doppeltgenaue Matrizen dnaupd aufgerufen. workd ist ein Arbeitsarray, ipntr ein Array aus Zeigern. Nach Ende von dnaupd wird geprüft, was zu tun ist. ido = 1 fordert eine Matrix-Vektor-Operation, die in Zeile 5 aufgerufen wird. Der Faktor steht im Arbeitsarray an Stelle ipnter(1), das Ergebnis wird ins Arbeitsarray an Stelle ipntr(2) geschrie-

3.2 Implementationsdetails 27 ben. In Zeile 6 wird nach Adresse 10 (Zeile 2) zurückgesprungen, wodurch dnaupd erneut aufgerufen wird. Ein Reverse Communication Interface bietet also viele Vorteile. In einer Sprache, wie FORTRAN77 ist es wohl die beste Wahl des Benutzerinterfaces. Wie dem auch sei, es bringt auch Nachteile mit sich: die Programmierung wird komplexer und damit fehleranfälliger, die Softwarehierarchie wird gebrochen, der Benutzer hat während der Unterbrechungen (in denen das Matrix-Vektor-Produkt gebildet werden soll), vollen Zugriff auf alle AR- PACK Variablen. Versehentliche Änderungen derer resultieren in schwer lokalisierbare Fehler. Moderne Programmiersprachen bieten im Vergleich mit FORTRAN77 viele zusätzliche Konstrukte und Mechanismen, mit denen ein Reverse Communication Interface nicht mehr nötig ist. 3.2 Implementationsdetails ARPACK implementiert die in Algorithmus 2.20 vorgestellte IRA-Methode. Auf einige Besonderheiten wird im Folgenden kurz eingegangen. ARPACK benutzt standardmäßig die exakte shift Strategie. Man kann aber auch via Reverse Communication Interface eigene shifts vorgeben. Das ist z.b. dann sinnvoll, wenn man einige Kenntnisse bzgl. der Lage der Eigenwerte besitzt. Hat man ungefähre Informationen über den gesuchten invarianten Unterraum, so kann man einen Startvektor daraus vorgeben. Ansonsten wird mit einem Zufallsvektor gestartet. Ein Ritzpaar gilt als konvergiert, falls das Residuum r(θ, x) mit einer vorgebbaren Toleranz τ und Maschinengenauigkeit ɛ M r(θ, x) max(ɛ M H m, τ θ ) (3.1) erfüllt. Aus θ H m A folgt, daß Gleichung (2.10) mit E τ A erfüllt ist. Als Orthogonalisierungsmethode wird aufgrund seiner hervorragenden Parallelisierbarkeit der Standard Gramm-Schmidt-Algorithmus eingesetzt, wobei die Reorthogonalisierungsmethode DGKS bei Bedarf zusätzlich ausgeführt wird.

28 3 ARPACK Einen großen Teil seiner Robustheit, Genauigkeit und Rechenleistung verdankt ARPACK der starken Nutzung von BLAS- und LAPACK- Subroutinen. Die Ausführungsrate der ARPACK-Iteration entspricht asymptotisch der der BLAS-Routine xgemv. In der aktuellen Version sind Deflationsregeln nicht implementiert. Sie sollen aber in eine zukünftige Version eingebaut werden [11, Seite 24]. Es ist zwar möglich, aus dem Algorithmus von Seite 18 ein funktionierendes Eigenwertprogramm zu schreiben, dies ist aber nicht empfehlenswert. Die kleinen Details, die aus Gründen der Übersichtlichkeit nicht erscheinen, sind wichtig für Stabilität und letztendlich Erfolg der Methode. 3.3 Benutzerfreundlichkeit Jedes Programm ist bestenfalls so gut, wie seine Dokumentation, an diesen Grundsatz haben sich die Entwickler gehalten und ARPACK ausgezeichnet dokumentiert. Im Header jeder Subroutine sind Aufgabe sowie Parameter ausführlich beschrieben. Auch der Code selbst ist vorbildlich kommentiert. Außerdem existieren Readmedateien in jedem Verzeichnis. Daneben ist der ARPACK Users Guide als Buch erschienen [12], sowie im Internet als HTML-Version frei verfügbar 2. Er erklärt verständlich jeden Aspekt des Programms und enthält auch einen Abschnitt über den zugrundeliegenden Arnoldi-Algorithmus. Weiterhin gibt es verschiedene Dokumente, die sich mit ARPACK beschäftigen. Zum Beispiel wird in [10] die Umstellung von Programmen von Unterraumiteration auf ARPACK untersucht. Im Lieferumfang enthalten sind Beispielprogramme. Ein unerfahrener Benutzer kann dadurch erste Versuche anstellen. Es gibt Beispielprogramme für symmetrische, nichtsymmetrische, Band- und komplexe Matrizen, jeweils eines für jeden Rechenmodus, den ARPACK unterstützt. Daneben gibt es auch Beispiele, um eine Singulärwertzerlegung mit ARPACK durchzuführen, ohne die Matrix A T A explizit zu bilden. Auch diese Programme sind ausführlich dokumentiert. Sie eignen sich hervorragend als Vorlagen für eigene Programme. Weiterhin bietet ARPACK Mechanismen an, den Fortschritt des Lösungsprozesses zu verfolgen. Dazu muß im aufrufenden Programm eine Headerdatei eingebunden werden. Durch Setzen der darin definierten Variablen kann man von jeder der Phasen des Algorithmus ein wählbares Maß an Zustandsinformationen erhalten. Das reicht von der Benachrichtigung über einen Neustart bis hin zur Ausgabe sämtlicher berechneter Matrizen und Vektoren. 2 www.caam.rice.edu/sowtware/arpack/ug/ug.html

29 4 Dünnbesetzte Matrizen ARPACK eignet sich besonders für dünnbesetzte Matrizen, da nur durch Matrix-Vektor-Produkte auf sie zugegriffen wird und das Reverse Communication Interface die Implementation der Multiplikation ganz dem Benutzer überläßt. Mit Standardprogrammen wie dgemv aus BLAS ist dies nicht möglich, da die Matrix voll gespeichert nicht in den Speicher paßt und viele unnütze Multiplikationen mit Null durchzuführen wären. Es existieren viele Formate, um dünnbesetzte Matrizen zu speichern. Je nach Verwendungszweck ist ein anderes sinnvoll. Drei davon sollen hier näher vorgestellt werden. COO Beim coordinate format werden nur die Nicht Null Elemente gespeichert. Für jedes dieser Elemente existiert ein Tripel, bestehend aus Zeilenindex, Spaltenindex und Wert. Für eine Matrix mit nnz Nicht Null Elementen braucht man somit drei Arrays der Länge nnz. Je eines für Zeilen und Spaltenindizes, ein drittes für die Werte. Das Matrix Market Format ist ein erweitertes coo Format. CSR Drei Arrays pro Matrix werden auch beim compressed sparse row format benötigt. In einem werden die Nicht Null Elemente zeilenweise gespeichert, in einem weiteren die Spaltenindizes, während im dritten Array Zeiger auf die Zeilenanfänge in den anderen Arrays stehen. CSC Beim verwandten compressed sparse column format sind die Rollen von Zeilen und Spaltenindizes vertauscht, was zur Folge hat, daß die Darstellung einer Matrix im csr Format der Darstellung der transponierten Matrix im csc-format gleicht. Will man also mit der Transponierten einer csr gespeicherten Matrix multiplizieren, muß man sie nicht transponieren, sondern benutzt den Algorithmus für csc-matrizen. 4.1 SparseKit SPARSEKIT ist eine Sammlung von FORTRAN77 Routinen, die den Umgang mit dünnbesetzten Matrizen erleichtern soll. Ziel war es weniger, Algorithmen für komplexe Aufgaben, wie das Lösen Linearer Gleichungssysteme oder Eigenwertprobleme zu liefern, als vielmehr die Bereitstellung der kleinen, nützlichen Werkzeuge wie zum Beispiel Extraktion von Untermatrizen, Formatkonvertierungen oder Matrix Vektor Multiplikationen. Die Routinen sind ihren Aufgaben nach sortiert und in einzelne Module aufgeteilt.

30 5 TESTS FORMATS Es werden insgesamt 13 Speicherformate unterstützt, darunter das dense, coo, csr und csc Format. Intern wird fast immer das csr Format verwendet. Dieses Modul besteht aus Konvertierungsroutinen. Jedes unterstützte Format kann in das csr Format konvertiert werden und umgekehrt. MATVEC Hierin wurden alle Routinen zusammengefaßt, die Matrix Vektor Operationen durchführen wie eine Matrix Vektor Multiplikation oder ein Löser für Dreieckssysteme. INOUT Dieses Modul besteht aus Unterprogrammen für das Einlesen und Speichern dünnbesetzter Matrizen in verschiedenen Formaten. UNARY Hier findet man Subroutinen, die auf einer Matrix angewendet werden. Man kann Matrizen kopieren, transponieren, durchsuchen, permutieren, Diagonalen oder Untermatrizen extrahieren, uvm. BLASSM Dieses Modul enthält Methoden für die Grundprobleme der Linearen Algebra mit dünnbesetzte Matrizen, wie C = AB, C = A + B, C = A ± B T,.... MATGEN Generieren von Testmatrizen, z.b. durch Fünf oder Sieben Punkt Diskretisierung einer elliptischen partiellen Differentialgleichung auf einem rechteckigem Grundgebiet. Finite Element Matrizen des Wärmeleitungsproblems Markov Ketten Matrizen. Eine komplette Beschreibung ist in [15] zu finden. 5 Tests Abschlißend soll die Performanz der vorgestellten Methode untersucht werden. Dazu werden drei Testfälle definiert (Abschnitt 5.1), die ARPACK unter festgelegten Bedingungen (Abschnitt 5.2) lösen soll. In den Abschnitten 5.3 und 5.4 werden die Resultate von ARPACK, bzw. anderen Krylovraumprojektionsverfahren präsentiert.