155 41 34MB
German Pages 164 [169] Year 1983
Numerische Verfahren in Aktion 2 Ein Programmsystem für Matrizeneigenwertprobleme vonWilgard Lang
Akademie-Verlag - Berlin
In z w a n g l o s e r Folge w e r d e n A r b e i t e n publiziert, die die S o f t w a r e E n t w i c k l u n g für n u m e r i s c h e Verfahren u n d P r o b l e m e der n u m e r i s c h e n V e r f a h r e n s t e c h n i k b e h a n d e l n . I n s b e s o n d e r e sollen erprobte A l g o r i t h m e n für n u m e r i s c h e B e r e c h n u n g e n unterschiedlichster A r t z u s a m m e n g e s t e l l t w e r d e n . Dabei ist u. a. an f o l g e n d e Themen gedacht: — Lineare u n d nichtlineare G l e i c h u n g e n , U n g l e i c h u n g e n u n d Funktionalgleichungen, — Eigenwertprobleme, — Approximation und Interpolation, — n u m e r i s c h e Integration, — partielle D i f f e r e n t i a l g l e i c h u n g e n u n d A n f a n g s - u n d R a n d wertprobleme, — Optimierungsprobleme, — a u s g e w ä h l t e P r o b l e m e der W a h r s c h e i n l i c h k e i t s r e c h n u n g u n d m a t h e m a t i s c h e n Statistik. Die einzelnen B ä n d e sind j e w e i l s e i n e m T h e m a g e w i d m e t . S o f e r n keine z w i n g e n d e n G r ü n d e d a g e g e n sprechen, w i r d als Programmiersprache F O R T R A N benutzt. D i e B e s c h r e i b u n g der e n t w i c k e l t e n P r o g r a m m e w i r d so gestaltet, d a ß der A n w e n d e r daraus alle für ihn n ö t i g e n I n f o r m a t i o n e n e n t n e h m e n kann. Die Herausgeber n e h m e n gern A n r e g u n g e n für die W e i t e r g e s t a l t u n g der B ä n d e e n t g e g e n u n d d e n k e n d a b e i —• an E r f a h r u n g e n all d e r j e n i g e n , die m i t diesen P r o g r a m m e n arbeiten, — an V o r s c h l ä g e für z u k ü n f t i g e T h e m e n u n d A u t o r e n . E n t s p r e c h e n d e H i n w e i s e w e r d e n an d e n A k a d e m i e - V e r l a g oder direkt an die Herausgeber erbeten.
Numerische Verfahren in Aktion
2
Numerische Verfahren in Aktion
herausgegeben von Prof. Dr. V. Friedrich Technische Hochschule Karl-Marx-Stadt Prof. Dr. H. Hollatz Technische Hochschule „ O t t o von Guericke" Magdeburg, Prof. Dr. H. Schwetlick Martin-Luther-Universität Halle-Wittenberg
Band 2 Ein Programmsystem für Matrizeneigenwertprobleme
Ein Programmsystem für Matrizeneigenwertprobleme von Wilgard Lang mit Anhängen von B. Döhler, A. Meyer, L. Skurt und J. P. Sommer
Akademie-Verlag • Berlin 1982
Das Programmsystem wurde an der Sektion Mathematik der Technischen Hochschule Karl-Marx-Stadt von der Forschungsgruppe ..Lineare Algebra" erarbeitet; an der Entwicklung waren beteiligt: Dr. rer. nat. Arnd Meyer Dr. rer. nat. Johann-Peter Sommer Dipl.-Math. Bernd Döhler Dipl.-Math. Gabriele Meinel Dipl.-Math. Wolfgang Müller
Dr. rer. nat. Dipl.-Math. Dipl.-Math. Dipl.-Math.
Magdalene Meyer Matthias Pester Lothar Skurt Christine Konzack
Vom Manuskript des Autors gedruckt
Erschienen im Akademie-Verlag. DDR-1086 Berlin, Leipziger Straße 3 — 4 Lektor: Dr. Reinhard Höppner © Akademie-Verlag Berlin 1982 Lizenznummer: 202 100/421/82 Umschlaggestaltung: Rolf Kunze Gesamtherstellung: VEB Kongreß- und Werbedruck. 9273 Oberlungwitz Bestellnummer: 763 008 5 (6580/2) LSV 1065 Printed in GDR DDR 25 — M
IHHALT 1. 2. 3. 4. 5. 5.1. 5.2. 5.3. 6. 7. 7.1. 7.2. 7.3. 7.4. 8. 9. 10.
Einführung Hathematiacbe Grundlagen dar Ittaungaalgorithmen Vergleiche zum Programmpaket EISPACK Aufgabenstellungen Die Struktur dea Programmayatema fleell-aynnnetriBobe Matrizen Reell-niobtaymmetrlaohe Matrizen Komplexe Matrizen fflitzungablnwelae Modellbeaobreibungen Symmetrlacber Zweig Reell-nicbtsymmetriBober Zweig Komplex-bermlteaober Zweig Allgemein-komplexer Zweig Anwendungabeiapiele Quelltextbeispiele Bemerkungen zu weiteren Entwicklungen
7 8 15 20 21 22 24 27 30 38 39 54 86 89 101 110 116
Anbang A.
B.
C.
D.
Döhler, Bernd: Sie Bereobnung von Eigenvektoren zu diobt benaobbarten Eigenwerten aymmetrlacber Matrizen
123
Meyer, Arndt Die Berechnung von Eigenwerten nlobtaymmetrlaober Matrizen In vorgegebenen Kreiaen
135
Skurt, Lotbari Ein Verfahren zur Bereobnung dea Perron-Eigenwertes und -vektora für nlohtnegatlve Matrizen
144
Sommer, Jobann-Peter1 Eine Modifikation dea QR-Algorltbmua zur Verbeaaerung vorgegebener Eigenwertnäherungen bei allgemein reellen Matrizen
150
5
Modulvorzeichnis BAliBK
84
IHMOU
60
BISECT
44
IMVTBK
83
BLOCAN
63
INVITO
80
CBAIi CDEP
89
INVITR
79
95 100
KREIQR
71
CERR
MEIWEP
33
CHES
90
ORTHO
53
CINMOU
99
POI/TES
72
CIHVTT
97
POLTRA
73
CODEIG
31
POSMA
59
CPOLTE
72
qMm
82
CPOIffR
73 98
QlIULC
82
QMU1S
52
92 98
QR2
67
QRALL
73
CREBAL
95
QRBK
77
CRETRA C SHI KD
99
QRDEF
78
94
QREV
75
CTRAMA
91
QRKREI
70
DEPUOR
53
QRNAEH
64
DTRAK2
41
QRZS
51
DTRED2
QRZU
81
QRZUC
82
GAUSS
39 72 60
RADIUS
73
HDTRED
86
RATQR
46
HOUSE
61
RBAL
56
HSAKK
62
RHOIT
58
HTRAK
42 88
SCALBK
85
SMITES
54
HTRED TMTQT.
39
TINVIT
49
42
TRBAK2
54
IHMOC
82
UFEX
38
I HMOS
52
VORKRE
68
RBAL
110
QRZUC
114
IHVITC
112
QMUIiC
115
CQMÜI. CQR CQRZER
PROBEN
HERBAK
Quelltexte
6
1. Einführung Das In diesem Heft vorgestellte Programmsystem MBIWEP dient der Lösung von Hatrlzeneigenwertproblemen. In Ihm sind Lösungsalgorithmen für Aufgabenstellungen des speziellen Eigenwertproblems ftlr beliebige reelle und komplexe Matrizen enthalten. Das Programasystea soll Nutzem sowohl mit als auoh ohne Spezialkenntnissen auf den Gebieten Humerlsähe Mathematik und Rechentechnik die schnelle und unkomplizierte Lösung eines Im Zuaansnenbang mit anderen Aufgaben auftretenden Eigenwertproblems ermöglichen. Bei der Nutzung des Programmsystems sind weder die Vorgabe eines Lösungsalgorithmus noch ein hoher zusätzlicher Programmieraufwand nötig. Entsprechend der Aufgabenstellung wird ein günstiger Algorithmus ausgewählt, so daß Insgesamt ftlr die Lösung des Problems eine möglichst geringe Reohenzeit benötigt wird. Bei der Realisierung des Programmsystems wurde angestrebt, mit wenigen Algorithmen die Lösung der auftretenden Probleme zu errelohen, um dem Steuerungsaufwand bei der Algorithmenauswahl sinnvoll zu begrenzen. Das Hauptaugenmerk bei der Algorlthmenauswahl ist darauf gerlohtet, in möglichst geringer Reohenzelt numerlsoh stabile Lösungen und auf Vunsoh des Nutzere auoh Aussagen Uber die Genauigkeit der Lösung zu erhalten. Das Progranmsystem Ist nodular aufgebaut, und jeder Algorithmus Im Programsystem wird aus einzelnen Moduln, die Teilalgorithmen realisieren, zusammengestellt. Diese Struktur ermöglicht es, das Programm— System sowohl als Ganzes mit seiner selbständigen Algorithmenauswahl als auch als Programpaket, d. h. als eine Sammlung von Verarbeitungsmoduln zum Matrlzenelgenwertproblem, zu nutzen. Die Moduln sind bezüglich .ihrer Programm- und ihrer Datenstruktur aufeinander abgestimmt. Alle Programme sind als FORTRAB-Unterprogramme geschrieben und können als solche genutzt werden. Auoh das gesamte Programmsystem kann als Unterprogramm in ein Hutzerprogramm aufgenommen werden. Die Algorithmen des Programmsystems basleren auf den Algorithmen, die hauptsächlich in den BUohern von Vllklnson C16], Wllkinson, Relnsoh [193 und Im EISPACK-Guide C15I veröffentlicht sind. Auf diese Quellen wird bei den ausführlichen Beschreibungen nioht noch einmal besonders hingewiesen. Bei der Ausarbeitung des Programmsystems wurden umfangreiche theoretische Untersuchungen angestellt [4, 5l , um die Algorlthmenauswahl automatisieren zu können und dabei zu errelohen, daß die berechneten Lösungen den exakten nahekommen und wenig Rechenzelt
7
erforderllob Ist. Ptlr einlas Aufgabenstellungen wurden spezielle Varianten von bekannten leistungsfähigen Algorithmen ausgearbeitet [4, 7» 16» 14]. Die dazugehörigen theoretlsohen Untersuchungen sind In Beiträgen dargestellt, die aus einen Heft der Wissenschaftlichen Schriftenreihe der THK [4] entnommen und In Anbang des vorliegenden Heftes enthalten sind. Das Kapitel 2 Ist einer Einführung In die theoretlsohen Grundlagen der •erwendeten nunerlsohen Algorithmen gewidmet, und 1& Kapitel 3 werden einige Besonderheiten dos Progrannsystens MBIWEP gegenüber den Pro» gramnpaket EISPACK hervorgehoben. In Kapitel 4 des vorliegenden Heftes werden kurz die Aufgabenstellungen des speziellen Eigenwertproblens oharakterlslert, die von Progranmsyaten automatisiert gelöst werden, und Kapitel 5 enthalt eine Uberslobt Uber die Struktur des Programsystens und seiner einzelnen Zweige für die versohledenen Matrizentypen. Die Möglichkeiten der Einordnung des Progrannaystens In ein Hutzerprogranm und die Formulierung einer Hutzeraufgabe werden In Kapital 6 erläutert. Kapitel 7 umfaßt die Beschreibungen der Moduln des Progrannaystens soweit Ihre Butzung auch außerhalb des Progrannsystems möglioh und sinnvoll Ist. Ausführliche Beschreibungen sind In der Dokunentatlon desfrogranasystems£6] enthalten. Zur Yeransohaullohung der HutzungsnBgllohkelten sind In Kapitel 8 einige Anwendungsbeispiele zusannengestellt.
2. Mathenatisohe Grundlagen der Lösungsalgorithmen Das spezialle Eigenwertprobien für eine quadratische Matrix 1 besteht In der Aufgabe, die Werte k zu finden, für die das henogene lineare Glelohungsaysten (A - Al)x - 0 Lösungsvektoren x besitzt, die verschieden von Vullvektor sind. Eine solobe Lösung existiert genau dann, wenn det (A - AI) - 0 gilt. Explizit geschrieben Ist die Determinante dar Matrix A - A I ein Polynom in A, und zwar wird det (A - AI) - p(\) - (-1)H(AS • a ^ A*"1 + ... • aQ). 8
erforderllob Ist. Ptlr einlas Aufgabenstellungen wurden spezielle Varianten von bekannten leistungsfähigen Algorithmen ausgearbeitet [4, 7» 16» 14]. Die dazugehörigen theoretlsohen Untersuchungen sind In Beiträgen dargestellt, die aus einen Heft der Wissenschaftlichen Schriftenreihe der THK [4] entnommen und In Anbang des vorliegenden Heftes enthalten sind. Das Kapitel 2 Ist einer Einführung In die theoretlsohen Grundlagen der •erwendeten nunerlsohen Algorithmen gewidmet, und 1& Kapitel 3 werden einige Besonderheiten dos Progrannsystens MBIWEP gegenüber den Pro» gramnpaket EISPACK hervorgehoben. In Kapitel 4 des vorliegenden Heftes werden kurz die Aufgabenstellungen des speziellen Eigenwertproblens oharakterlslert, die von Progranmsyaten automatisiert gelöst werden, und Kapitel 5 enthalt eine Uberslobt Uber die Struktur des Programsystens und seiner einzelnen Zweige für die versohledenen Matrizentypen. Die Möglichkeiten der Einordnung des Progrannaystens In ein Hutzerprogranm und die Formulierung einer Hutzeraufgabe werden In Kapital 6 erläutert. Kapitel 7 umfaßt die Beschreibungen der Moduln des Progrannaystens soweit Ihre Butzung auch außerhalb des Progrannsystems möglioh und sinnvoll Ist. Ausführliche Beschreibungen sind In der Dokunentatlon desfrogranasystems£6] enthalten. Zur Yeransohaullohung der HutzungsnBgllohkelten sind In Kapitel 8 einige Anwendungsbeispiele zusannengestellt.
2. Mathenatisohe Grundlagen der Lösungsalgorithmen Das spezialle Eigenwertprobien für eine quadratische Matrix 1 besteht In der Aufgabe, die Werte k zu finden, für die das henogene lineare Glelohungsaysten (A - Al)x - 0 Lösungsvektoren x besitzt, die verschieden von Vullvektor sind. Eine solobe Lösung existiert genau dann, wenn det (A - AI) - 0 gilt. Explizit geschrieben Ist die Determinante dar Matrix A - A I ein Polynom in A, und zwar wird det (A - AI) - p(\) - (-1)H(AS • a ^ A*"1 + ... • aQ). 8
Ein Polynom B-ten Grades alt ran Hull verschiedenem Koeffizienten der littobsten Potenz besitzt genau H (reelle oder komplexe) Hullstellen, wenn Jede entsprechend Ihrer Vlelfaobhelt gezählt wird. Besitzt das Polynom p(A) 5 verschiedene Hullstellen Aj,, 1 » 1»..», H, dann gibt ea zu jeder dieser Bullstellen, es sind die Eigenwerte der Matrix A, genau einen Eigenvektor x^. Es gilt also ftlr alle 1 mit 1ii» fahren die Hullstellen dieser Pelyneme bestlnmt werden. Auf dieser Baals entstanden die Verfahren ven Krylov, Hessenberg, Danllewskl, Ianozes und anderen. Sie benötigen alle wesentliche Operationen zur Bereohnung der Koeffizienten des obaralrfcerlatlsohen Polynoms. Wllklnson [18J analysiert diese Vorgehenswelse ausführlich und stellt einige der genannten und ander« Algorithmen dieses Typs gegenüber. Er zeigt dabei, d&Q diese Strategie wesentllohe Haohteile besitzt« erstens Ist der Aufwand ftlr diese Verfahren vergleichsweise hooh, und zweitens können geringfügige Fehler bei der Berechnung der Polynom» keefflzlenten zu sehr großen Fehlern bei den Eigenwerten fuhren. Auf Grund dieser negativen Eigenschaften werden die Verfahren, die auf der Bereohnung der Polynomkoeffizienten beruhen, nloht mehr direkt zur Losung von Eigenwertproblemen verwendet, sie können aber als Hilfsmittel bei der Diagnose der Elgenwertprebleme und zur Steuerung des Lösungsprozesses dienen. Ein anderer Teil von Verfahren, die auf der Eigenschaft der Eigenwerte als Hullstellen des charakteristischen Polynoms basieren, kann zur Lösung ven teilweisen Eigenwertproblemen, d. h. zur Bereohnung einiger ausgewählter Eigenwerte benutzt werden. Wieder wird die gegebene Matrix zuerst In eine ftlr die folgenden Berechnungen geeignetere Fora transformiert, und danaofa werden mit Hilfe ven Deterolnantenbereohnungen Punktionswerte des charakteristischen Polynoms bestimmt. Mit Hilfe von Interpolation oder Intervallhalbierungsverfahren werden dann die Eigenwerte angenähert. Ein Verfahren, das auf diesem Prinzip beruht, Ist die Blsektlon, mit deren Hilfe ftlr symmetrische trldlagonale Matrizen Eigenwerte aus vorgegebenen Intervallen auf effektive Weise berechnet werden können. Auf Punktlonswertberechnungen ftlr das charakteristische Polynom basiert auch die Näherung von Eigenwerten mit Hilfe des Hewton-Ver» fahrens oder der quadratischen Interpolation, die zur Beschleunigung anderer Eigenwertalgorithmen benutzt werden. Zu der Gruppe der Verfahren, die eine Transformation der gegebenen Matrix In Diagonal- oder Blookdrelecksgestalt anstreben, gehört das Jacobi-Verfahren fUr symmetrische Matrizen. Die dabei verwendeten Transformationsmatrizen sind Drehungsmatrizen, die so gewühlt werden, daß ein ausgewähltes Element außerhalb der Diagonalen bei der Ausführung der entsprechenden Äbnlichkeltstransformatlon Null wird. Eine ändere Möglichkeit der iterativen Bestimmung einer Matrix X, so daß 12 c
X -1 AX = U g i l t » wobei III im allgemeinen eine obere Blockdreleoksmatrlx i s t , i s t die, eine Folge von Matrizen A^ durob fortlaufende Faktorlslerung zu erzeugen. Es s e i A^ •» A, und ein Iterationaaohritt bestehe in folgen« dem: Die Matrix A^ wird in das Produkt zweier Matrizen zerlegt A
k 3 v k * *k» und die näohste Matrix A j ^ entsteht aus der Multiplikation der bei» den Matrizen in ungekehrter Reihenfolge A
A V # k+1 " w k , v k " k k Wenn die Matrizen V^ a l l e niohtsingulitr sind, besteht die Folge von Matrizen A^ aus zur Matrix A Hhnliohen Matrizen, die a l l e die g l e l ohen Eigenwerte besitzen. Die Eigenschaften der Matrizen V^ und W^ bestimmen die Eigenschaften des jeweiligen Algorithmus.
Wesentliche Vertreter dieser Gruppe von Verfahren sind der LR-Algorithmus (V^ i s t eine Linksdreleoks- und W^ eine Reohtsdreleoksaatrlx) und der QR-Algorithmus (V^ i s t eine unitHre und V^ wieder eine Reohtsdreieoksmatrix) [ 1 9 ] . Bezüglich Sioherhelt und S t a b i l i t ä t besitzt der qR-Algorithmus gegenüber dem IA-Algorlthmus V e r t e i l e . Ftlr allgemeinkomplexe Matrizen konvergiert die Folge der Matrizen Ak gegen eine obere Dreiecksmatrix, auf deren Diagonale bei nioht zerfallenden Matrizen die Eigenwerte In betragsmgßlg f a l l e n d e r Folge angeordnet sind [18]. Im F a l l r e e l l e r Matrizen werden orthogonale Matrizen V^ verwendet, und es entsteht eine Folge orthogonal-Khnlioher Matrizen Ajg, die ftlr symmetrische Matrizen A gegen eine Diagonal- und f ü r allgemein-reelle Matrizen gegen eine obere Blockdreleoksmatrix konv e r g i e r t . In der bisher angegebenen Form konvergiert die Folge der entstehenden Matrizen l i n e a r gegen die entsprechende Grenzmatrlx, und der Kbnvergenzfaktor i s t abhängig vom Quotienten der Beträge zweier benachbarter Eigenwerte. Durch die Verwendung geeigneter Verschiebungen des Spektrums der Matrix A, d. h., anstelle von A^ wird A k ~ skI Aktoren z e r l e g t , wird eine Beschleunigung der Konvergenz erreloht. Als besonders gttnstlg haben sich die von Francis vorgeschlagenen Verscblebungsstrategien herausgestellt [ 2 ] , die auch im Progranmsystem MEIWEP verwendet werden. Sie zerstören jedoch die sich theoretisch auf der Hauptdiagonalen einstellende Anordnung der Eigenwerte, was aber bei der Berechnung a l l e r Eigenwerte einer Matrix nioht von Bedeutung i s t . Um Genauigkeitsverluste durch die Subtraktion der Verschiebung von den Diagonalelementen, die sloh 13
besonders auf die betragsmäßig kleinen Eigenwerte auswirken, zu vermelden, wird eine Variante dea ®-Algerlthmua -verwendet, die die explizite Subtraktion nloht erfordert. Diese Möglichkeit beruht auf der Aussage Uber die Deflnlertheit der Hatrlzen Q k und A k + 1 durch die Matrix Ajj. und die erste Spalte von Q^, wenn A k und Aj£+1 Hessenberg» Matrizen sind (eine Hessenbergmatrix Ist eine ober« Drelecksmatrlx, bei der zusätzlich neoh eine Subdiagonale besetzt Ist). Die so modifizierte Methode wird impliziter QR-Algorlthmus genannt. Ein weiteres Preblem entsteht bei der Anwendung des QR-Algorlthmus auf reelle niohtsymmetrische Matrizen, wenn komplexe Eigenwerte auftreten. Komplexe Rechnung kann vermieden werden, wenn zwei Iteratlonssohrltte mit konjugiert komplexen Verschiebungen zu einem Schritt zusammengefaßt werden. Es entsteht daraUB der "Doppelschrltt-QR-Algorithmus". Ein weiterer Typ von Verfahren beruht auf der Potenzierung von Matrizen. Der bekannteste und Kiteste Vertreter dieses Typs ist die Potenzmethode Ton Mlses C18], die In unterschiedlichen Varlanten besonders von Ingenieuren häufig zur Lösung von Eigenwertproblemen angewandt wird. Bei der ursprünglichen Methode besteht ein Iterationssahritt darin, einen Vektor aus einem Vektor x^ duroh die Vorschrift *k+l = A x k ° A \ zu erhalten. Die Folge der Vektoren x k konvergiert bei gegebenem Vektor x Q gegen den Eigenvektor zum betragsmäßig größten Eigenwert für eine symmetrische Matrix A. Beztlglloh des Aufwandes, der Kbnveiv genzgesohwlndlgkelt und der Genauigkeit können sowohl die ursprtingllohe Potenzmetbode als auch ihre Varianten nloht mit der Variante des QR-Algorlthmus konkurrieren, die ebenfalls den betragsgrößten Eigenwert einer symmetrischen Matrix bestimmt. Wesentlich günstigere Eigenschaften besitzt die als "Inverse Iteration" bezeichnete Methode, in deren Verlauf ein ebenfalls beliebiger Vektor x Q in eine Näherung für den Eigenvektor zum betragsklelnsten Eigenwert einer Matrix A transformiert wird. Dabei entsteht der Vektor duroh Auflösen des Glelohungssystems " * k^k» webei ec ^ einen Hormierungsfakter darstellt; es wird *k+1 " * Kit sehr gutem Erfolg wird die Inverse Iteration zur Elgenvektorbereohnung eingesetzt, wenn bereits Eigenwertnäherungen mit Hilfe anderer Verfahren bestimmt wurden, die nloht gleichzeitig Elgenvektei— näherungen mit bereitstellen. Dabei erhält die Iteratlonsvorsohrlft die Form 14
(A - A l ) * ^ - « kx]£, und X sollt« eine möglichst gute Elgenwertnähorung sein. Der QR-Algerithauia besitzt die Elgensohaft, daß er, angewandt auf eine Hessenbergmatrix, auoh eine Felge von Hessenbergmatrizen erzeugt ; entsprechendes gilt für symmetrisobe Trldlagenalmatrlzen. Dadurch wird dar Aufwand für die Durchführung des QR-Algorithaua um eine Ordnung von 1 reduziert, wenn nur Eigenwerte berechnet werden. Auch die Inverse Iteration ftlr Hessenberg- bzw, Trldlagonalmatrizen benötigt wesentlich weniger arithmetische Operationen. Es Ist also sinnvoll, vor den Einsatz der eigentlichen Eigenwertalgorithmen die Tfrsprungsmatrlx mit Hilfe von Ähnllobkeitstransformatlonen In Tridlagonal- bzw. Hessenberggestalt zu überführen. Die übnllchkeltstransfoxmatlonen können mit Hilfe von unltären oder Ellmlnatlonsmatrlzen ausgeführt werden. Die von Vllklnson L18] dargestellte Rundungsfehleranalyse demonstriert den Torteil der Verwendung unitarer Ähnllchkeltstransformationen, auch wenn diese etwa den doppelten RechenaufWand im Vergleich mit nlcbtunltSren Ähnllohkeltstransformationen erfordern. Die Transformation einer reellen niohtsymetrlsoben Matrix In Hessenberggestalt mit Hilfe unitärer Splegelungsmatrlzen (Verfahren von Householder Cl8j) erfordert 5/3H3 + OCH2) und mit Hilfe von Ellmlnatlonsmatrlzen 5/6N3 + (XN 2 ) arithmetische Operationen. Im Programmsystem MEIWEP werden zur Trldlagonallsierung und zur Überführung In Hessenberggestalt Spiegelungsmatrizen verwendet und die arithmetischen Operationen mit doppelt-genauer Arithmetik ausgeführt, um zu slobem, daß die Matrizen, auf die die Eigenwertalgorithmen angewandt werden, möglichst genau Khnlioh zu den Ursprungsmatrizen sind.
3. Vergleiche zum Programmpaket EISPACK Während Im Programmpaket EISPACK dem JTutzer eine Menge von Eigenwertalgorithmen zur Verfügung gestellt wird, mit deren Hilfe er seinen Lösungsalgorithmus aufbauen kann, wird im Programmsystem MEIWEP ein Sohritt weiter gegangen. Aus der gegebenen Algorithmenmenge wird automatisch entsprechend der Aufgabenstellung ein Gesamtlösungsalgorlthmus aufgebaut. Diese Vorgehenswelse bedingt auch eine automatisierte Fehlersteuerung und Fehlerbehandlung, auf die im folgenden nKher eingegangen werden soll.
15
(A - A l ) * ^ - « kx]£, und X sollt« eine möglichst gute Elgenwertnähorung sein. Der QR-Algerithauia besitzt die Elgensohaft, daß er, angewandt auf eine Hessenbergmatrix, auoh eine Felge von Hessenbergmatrizen erzeugt ; entsprechendes gilt für symmetrisobe Trldlagenalmatrlzen. Dadurch wird dar Aufwand für die Durchführung des QR-Algorithaua um eine Ordnung von 1 reduziert, wenn nur Eigenwerte berechnet werden. Auch die Inverse Iteration ftlr Hessenberg- bzw, Trldlagonalmatrizen benötigt wesentlich weniger arithmetische Operationen. Es Ist also sinnvoll, vor den Einsatz der eigentlichen Eigenwertalgorithmen die Tfrsprungsmatrlx mit Hilfe von Ähnllobkeitstransformatlonen In Tridlagonal- bzw. Hessenberggestalt zu überführen. Die übnllchkeltstransfoxmatlonen können mit Hilfe von unltären oder Ellmlnatlonsmatrlzen ausgeführt werden. Die von Vllklnson L18] dargestellte Rundungsfehleranalyse demonstriert den Torteil der Verwendung unitarer Ähnllchkeltstransformationen, auch wenn diese etwa den doppelten RechenaufWand im Vergleich mit nlcbtunltSren Ähnllohkeltstransformationen erfordern. Die Transformation einer reellen niohtsymetrlsoben Matrix In Hessenberggestalt mit Hilfe unitärer Splegelungsmatrlzen (Verfahren von Householder Cl8j) erfordert 5/3H3 + OCH2) und mit Hilfe von Ellmlnatlonsmatrlzen 5/6N3 + (XN 2 ) arithmetische Operationen. Im Programmsystem MEIWEP werden zur Trldlagonallsierung und zur Überführung In Hessenberggestalt Spiegelungsmatrizen verwendet und die arithmetischen Operationen mit doppelt-genauer Arithmetik ausgeführt, um zu slobem, daß die Matrizen, auf die die Eigenwertalgorithmen angewandt werden, möglichst genau Khnlioh zu den Ursprungsmatrizen sind.
3. Vergleiche zum Programmpaket EISPACK Während Im Programmpaket EISPACK dem JTutzer eine Menge von Eigenwertalgorithmen zur Verfügung gestellt wird, mit deren Hilfe er seinen Lösungsalgorithmus aufbauen kann, wird im Programmsystem MEIWEP ein Sohritt weiter gegangen. Aus der gegebenen Algorithmenmenge wird automatisch entsprechend der Aufgabenstellung ein Gesamtlösungsalgorlthmus aufgebaut. Diese Vorgehenswelse bedingt auch eine automatisierte Fehlersteuerung und Fehlerbehandlung, auf die im folgenden nKher eingegangen werden soll.
15
Als Eingabewerte für das Programms?stem dienen neben den Matrlxelei» Ilten der relative bzw. absolute Fehler o* „ bzw. OB der UatrixeleKente. Wegen der notwendigen Konvertierung der Eingabewerte von Dezimal- io Hexadezimalzahlen ergibt sloh mindestens ein relativer Fehler der Matrixelemente i g r - £ m 1 = 16~5 für REAL- und è0I> = - 16"13 für DREAL-Variable bel ESER-Anlagon. Die Vèrte bzw. B ^ stellen die sogenannte Maschinengenauigkeit dar. Es Ist die kleinste Gleitkommazahl in der benutzten Maschinenarithmetik, für die n
1 i (1 + £ m i ) > 1 » • 1« 2 gilt, wenn fl^ (x + y) bzw. flg (x + y) die Gleitkommazahl darstallt» die bei der Operation x + y in elnfaoh-genauer bzw. doppelt-genauer Arithmetik entsteht.
Es ist also die Matrix A, bestehend aus den Eingabeelementen, als numerlsohe Repräsentation einer Matrix A + F mit ' V
Ä e
er,Ai3'
lp
i3l ' £ea
anzusehen. Die berechneten Eigenwert- und Elgenvektornäherungen X und y» werden als Lösung der gegebenen Aufgabe akzeptiert, wenn sie die exakte Lösung für eine gestorte Matrix A + E sind und «Ell 6
e a r IaII
bzw.
lBlal fi eea
gilt. Die Fehlermatrix E setzt sloh im wesentlichen aus zwei Antollen zusammen E o E h + Ba, wobei E r aus den ßundungsfehlern und E A aus dem Abbruohfehler der Iterationsvorfahren resultieren. Für den Rundungsfehlor dor ELgenwertalgorlthmen gilt allgemein E R FI
f(H,k)
HAII
E
6ml, 1
-
1,2,
je nach verwendeter Arithmetik, wobei k die Anzahl dor Iterationen und IlAllg die Euklldlsohe Horm der Matrix A ist. Der Abbruohfehler ergibt sloh aus den verwendeten Abbruchsohranken der jeweiligen Iterationsverfahren. Aus der Angabe der Fehler der Elemente der Ursprungsmatrix lassen sloh Abbruohsohranken bereohnen, so daß dor Abbruohfehler den Eingangsfehler nloht überschreitet [8 Die Größe des duroh die Rundungsfehler hervorgerufenen Fehlers kann a priori nicht abgeschätzt werden, er hängt wesentlich von der Anzahl der ausgeführten Iterationen und von den speziellen Eigenschaften der Matrix ab. 16
Beim Vergleloh der Eigenwerts dar Matrix A + E a l t denen der Matrix A ergeben slob Abweichungen derart, daß IX^A + E) - X j U ) ! ä
te (X) . «Ell
g i l t , webet « ( I ) - H Xll . «X"1U die Kenditionszahl der Elgenvaktormatrlx der Matrix A i s t . Aus den eben Gesagten f o l g t , daß bei der Betrachtung von II Ell der Anteil E a vernaohl&Bslgt werden kann, da er duroh die Wahl der Ab» bruohsohranken so begrenzt wird, daß IIE^II < £ 0 r IIA II /2 I s t . Damit wird also der Fehler In den berechneten Eigenwerten proportional zu ee(Z) und zur Euklldlsohen Horm der Matrix A Bein. FUr beliebige Matrizen A g i l t
und das Infimum wird Uber a l l e nichtslngul&ren Matrizen I genommen. Das Qleiohbeltszelohen Bteht genau dann, wenn A eine normale Matrix I s t . Damit Ist eine Möglichkeit gegeben, die Größe des Rundungsfehlers des Elgenwertalgorlthmus zu reduzieren, indem er auf eine zur Ursprungsmatrlx Hhnllohe Matrix mit niedrigerer Euklidisoher Norm angewandt wird. Mit dem von Osbome [ 1 0 ] vorgeschlagenen Verfahren der Voxkondltlonlerung, auch Balanoierung genannt, wird eine Methode zur Erzeugung einer Diagonalmatrix duroh sukzessive Anglelchung der Dörmen entsprechender Zeilen und Spalten der aktuellen Matrix angegeben, so daß eine zur Ursprungsmatrix diagonal ähnliche Matrix niedrigerer Euklidlsoher Norm entsteht. Dieses Verfahren i s t besonders wirkungsvoll bei eohleoht konditionierten Eigenvektorsystemen. Bei der Bearbeitung des Elgenwertproblems für r e e l l e symmetrische Matrizen werden im Programmsystem MEIWEP dieselben Algorithmen wie im EISPACK^Guide [15] vorgeschlagen, verwendet. In der Art ihrer Anwendung gibt es Jedoch einige Abweichungen: 1. Im Programmsystem MEIWEP wird die Ursprungsmatrix zuerst mit H i l f e von Spiegelungsmatrizen (Verfahren von Householder) in Tridiagonalgestalt ohne Akkumulation der Transformationsmatrix analog dem Programm TRED 1 aus EISPACK jedoch mit doppelt-genauer Arithmetik überführt. Die Akkumulation erfolgt erst naoh der Analyse der Aufgabenstellung, wenn bekannt i s t , welcher Algorithmus im weiteren verwendet wird.
17
2. Zur Bereohnung aller Eigenwerte und eventuell allar Eigenvektoren wird In Prograamsystem MEIWEP nur der Implizite QL-Algorlthmus benatzt. 3. Dem Algorithmus aus EISPACK zur Bereohnung betragalclelnater bzw. betragsgrößter Eigenwerte werden einige Oft-Schritte mit Hewtonversoblebung vorangestellt bis eine relativ gute Jttherung des Eigenwerte b erreicht Ist. Diese HKherung wird dann als AusgangsnMherung für den eigentlichen Algorithmus HATQR verwendet. Daduroh wird eine wo« sentllobe Verringerung der auftretenden Hundungsfehler, die besonders stark bei betragsmäßig kleinen Eigenwerten In Ersohelnung treten, erreicht. 4. Der Modul Till VIT im Programms?stem MEIWEP unterscheidet sich vom entsprechenden Modul In EISPACK Im wesentlichen daduroh, daß die Startvektoren unter weltgehender Berücksichtigung der Struktur dar Trldlagonalmatrlx gewählt werden. Duroh diese spezielle Wahl werden die sogenannten "sohwaohen Kopplungen11, die duroh sehr kleine, aber nloht vernaoblSaslgbare Subdlagenalelemente entstehen, sehr schnell Uberwunden. Ein weiterer Unterschied ist die Art der Lösung des bei der Inversen Iteration auftretenden linearen Glelohungssystems (T -
p l ) ^
- oc k x k .
Die Hatriz (T - pl) wird In eine orthogonale und eine Rechtsdreleoksmatrlx zerlegt, und zur Stabilisierung des Lösungsprozesses wird der Nermlerungsfaktor «ABS VON [-Bis] , »VON [-BIS] Cm> , «NAEH[ERUNGJ , «REAI/EEIL
t:«»
Dabei bedeuten« , , (rad>
.PROTON
[ - ] .,
[,'ZWI'L W G I S S L ; , ! : '
}
1>
raalla Variable oder Konstante, , (n2) bezeiehnen die Nummern der zu berechnenden Eigenwerte, wobei die Numerierung beim (betrags-)klelnsten beginnt ; (cfeld) enthält die Elgenwertnäherungen (mit Real- und Imaginärteil), die duroh MEIWEP verbessert werden sollen die Anzahl dieser Näherungen wird duroh den hier ebenfalls folgenden Parameter (anz) mitgeteilt; (wert) gibt die untere bzw.obere Sohranke der Realteile der zu berechnenden Eigenwerte an. Bei der Vorgabe von Protokollwtinschen duroh den Nutzer erfolgt bei der Abarbeitung des Programmsystems MEIWEP eine Protokollierung der verwendeten Verfahren bzw. von Zwischenergebnissen. • Ausgangs-Parameter EIG Feld der länge 5(m-1), wobei n die Anzahl der In (aufgebe) beschriebenen Tellaufgaben ist. Es enthält die Teilkodierung der Aufgabenstellung, die von MEIWEP bearbeitet wird, 32
IANZ
INTEGER-Variable, die die Anzahl der durch CODEIG kodierten Teilaufgaben e n t h ä l t .
Die Ausgangsparameter müssen unverändert (auch ohne Umspeloherung) dem Modul MEIWEP Ubergeben werden. « Funktion des Moduls Der Modul CODEIG r e a l i s i e r t die Umsetzung der f a s t verbalen Aufgaben« besohreibung i n eine f ü r dem Modul MEIWEP v e r s t ä n d l i c h e Form. Da zwischen CODEIG und MEIWEP Speicheradressen v e r m i t t e l t werden, müssen die in der Parameterliste angegebenen Variablen bzw. Konstanten i n derselben Programmphase des Nutzers d e f i n i e r t s e i n , zu der auoh der Modul MEIWEP g e h ö r t , während der Modul CODEIG s e l b s t zu e i n e r anderen Phase gehören kann. D e r Speicherbedarf des Moduls CODEIG b e t r ä g t etwa 3k Byte. Der Modul MEIWEP • Rufzeile CALL MEIWEP (NM,N,M,TYP,SYM,POS,IPD,IAHZ,EIG,CODER,EWC, IEWANZ,EV,IEVANZ,IER,SPFORM, GEHK) • Besonderheiten Der Modul MEIWEP i s t von FORTRAN-Programmen a u f r u f b a r . Läßt der Comp i l e r keine komplexen Variablen zu, so i s t b e i Bedarf eine z u s ä t z l i c h e Größe der Dimension 2 aufzunehmen, so daß j e w e i l s Real- und I m a g i n ä r t e i l aufeinanderfolgen. Einige Parameter des Moduls MEIWEP werden a l s Zeichenkette ( L i t e r a l ) v e r l a n g t , dadurch wird die Lesbarkeit des Programms v e r b e s s e r t . Bei d e r a r t i g e n Zeiohenketten sind j e w e i l s die e r s t e n d r e i Zeichen s i g n i f i kant, d . h, die b e i der Erläuterung der Parameter angegebenen Sohlüsselworte können b i s auf d r e i Zeichen abgekürzt werden (außer beim Parameter SPFORM); z. B. sind folgende Parameterangaben ä q u i v a l e n t t 'SYMMETRISCH',
'SYMMETR.«, 'SYM'.
Der Hutzer kann die l e t z t e n k (iik^5) weglassen. Eventuelle Ausgangsgrößen des Programmsystems f ü r weggelassene Parameter werden i g n o r i e r t , fUr Eingangsgrößen werden Standardwerte angenommen. • Eingangsparamater NM: INTEGER.Variable, e n t h ä l t die Zeilen- bzw. Spaltenanzahl der im rufenden Programm vereinbarten Matrizen (A und EV); N: INTEGER-Variable, Dimension der Ursprungsmatrix, N < NM; Mt INTEGER-Variable, Bandbreite der Ursprungsmatrix (=» 1 + Anzahl der s ubdiagonalen); A: Feld f ü r die Ursprungsmatrix, f ü r die Eigenwerte und Elgenvek33
toren bereobnet worden sollen. D«r Typ der Elemente von A muß mit der Angabe im Parameter TYP Übereinstimmen, die Speieberform der Matrix A muß mit der Angabe Im Parameter SPFORM Ubereinstimmen. TYP»
Literal für den Typ der Elemente der Matrizen A und EV, mögliobe Schlüsselworte sind: «REELL' für reell, einfach genau, »DREELII» für reell, doppelt genau, 'KOMPLEX' für komplex, einfach genau, •DKOMPLEX« für komplex, doppelt genau.
SYMi
Literal oder 0, Angabe Uber eventuelle Symmetrie der Ursprungsmatrix, mögliche SohlUsselworte sindt 'SYMMETRISCH' bei reeller symmetrischer Ursprungsmatrix, 'HERMZTESCH' bei hermltesoher komplexer Ursprungsmatrix, 0 besagt, daß die Ursprungsmatrix unsymmetrisch ist oder der Nutzer keine Aussage machen kann.
POS:
Literal oder 0, Angabe Uber eventuelle Positlvität der Ursprungsmatrix; mögliche ScblUsselworte sind« »POSITIV* für eine niohtnegative Ursprungsmatrix, 'NEGATIV* für eine niohtpositive Ursprungsmatrix, sonst ist 0 zu sobrelben.
IPDt
Literal oder 0, Angabe Uber eventuelle Deflnitbeit der Ursprungsmatrix; mögliohe SohlUsselworte slndt •DPOSITIV* für eine positiv definite Ursprungsmatrix, •DNEGATIV' für eine negativ definite Ursprungsmatrix, sonst ist 0 zu schreiben.
IANZ:
INTEGER-Variable, Anzahl der Spalten des Feldes EIG, das mit Aufgabenbesobreibungen belegt ist,
EIG»
REAL»4—Feld der Dimension (5,L) in PORTRAH mit L = IANZ + 1, enthält die Aufgabenstellung für daB Programmsystem MEIWEP in kodierter Form.
CODER:
Literal, Angabe Uber die Art der Kodierung der Aufgabenstellung; als Schlüsselworte sind möglich: 'SYSTEM' wenn IANZ und EIG durch den Modul CODEIG belegt worden sind, 'NUTZER' wenn der Nutzer die Kodierung der Aufgabe im Feld EIG selbst vorgenommen bat; in diesem Falle müssen noch die folgenden Elemente belegt werden: 34
EIG (1.IAHZ+1) = flf nur EW Z u berechnen 1 EW und zugehörige EV zu berechnen - 1 EV und einig« EV zu bereobnen EIG (2,IANZ+1) a 1 Protokoll dor verwendeten Verfahren e r f o r d e r l i o h 0 sonst EIG (3.IABZ+1) o 1 Protokoll von Zwisohenergebnlssen e r f o r d e r l i c h 0 sonst. L i t e r a l , 0 oder l e e r , Angabe zur Speioberform der Ursprungsmatrix A; folgende Scblilsselworte sind zulässig« 'SP' A i s t spaltenweise in e i n e r NUxHU-Matrlx g e s p e i chert (FORTRAN-Sta ndard), 'ZW A i s t zeilenweise in e i n e r HMxNM-Matrix g e s p e i chert ( P l / 1 - S t a n d a r d ) , * SYM-SP'1 Das obere Dreieck der symmetrischen oder bermite'SYM-ZW«> sehen Matrix i s t a l s l i n e a r e s Feld der Länge (H(H+1))/2 lückenlos gespeiobert (d. h. NM i s t ohne Bedeutung) - der Zusatz SP bedeutet s p a l t e n weise und ZW zeilenweise. •BAHD—SP'^ Die symmetrische oder bermitesobe Bandmatrix mit •BAHD-ZW'Jder Bandbreite M i s t a l s NMaM-Matrlx g e s p e i c h e r t , so daß deren e r s t e Spalte die Hauptdiagonale der Ursprungsmatrix e n t h a l t , die zweite die e r s t e Superdiagonale usw. Die r e c h t e untere Ecke der BMrMMatrlx i s t bei d i e s e r Speioberform nicht b e l e g t . - der Zusatz SP bedeutet spaltenweise und ZW zeilenweise. 9 oder l e e r führt zur Standardannahme «SP*. Vektor der Länge 4 , Angaben Uber Genauigkeit der Ursprungsmatrix A und Genauigkeitsforderungen f ü r die zu berechnenden Eigenwertet GEHK(1) r e l a t i v e Genauigkeit der Elemente von A, GEHK(2) absolute Genauigkeit der Elemente von A, GEHK(3) r e l a t i v e Genauigkeit der Eigenwerte, GEHK(4) absolute Genauigkeit der Eigenwerte. Für a l l e Genauigkeitsangaben kann 9 eingetragen werden, es wird dann mit Standardgenauigkeit gerechnet. Die Genauigkeitsangaben dtlrfen jeweils nur entweder absolut oder r e l a t i v gegeben werden,d. h., mindestens eines der Elemente 35
GENK(1) und GEMK(2) bzw. GENK(3) und GENK(4) muß 0 sala. Beim Weglassen des Parameters GEHK wird standardgemäß für alle Elemente 0 angenommen. «
Ausgangsparameter
EWC:
Vektor der Länge L (IEWAMZ ¿ L í 11), reell, falls duroh die Parameter TYP und SYM eine reelle symmetrische oder eine komplexe hermitesche Matrix spezifiziert wurde, sonst komplex; enthält in den ersten IEWANZ Elementen die berechneten Eigenwerte.
IEWANZt
INTEGER-Variable, enthält die Anzahl der bereohneten Eigenwerte.
EV«
Feld der Dimension (MM, 1) in FORTRAN bzw. (L,MM) in PL/1 mit IEVANZ 6 L 6 MM; der Typ der Elemente von EV stinmt mit dem der Elemente der Ursprungsmatrix A Uberein. Die ersten IEVAUZ Spalten (in FORTRAN) bzw. Zeilen (in PL/1) von EV enthalten die bereohneten Eigenvektoren in der Reihenfolge der zugehörigen Eigenwerte in EWC, die dort ebenfalls als die ersten IEVANZ Eigenwerte gespeichert sind. V / e r d e n für eine reelle niohtsymmetrische Ursprungsmatrix konjugiert komplexe Eigenwerte berechnet, enthalten die beiden zugehörigen Spalten von EV den Real- und Imaginärteil des ersten der beiden konjugiert komplexen Eigenvektoren.
IEVANZt
IMTEGER-Variable, enthält die Anzahl der in EV enthaltenen Eigenvektoren der bereohneten Eigenvektoren.
IER:
INTEGER-Variable, enthält den Fehleranzeiger des P r o g r a m m Systems. = 0.) UG OG KK IL
•
•
(E,A) = STEUER(37), REAL*4-Variable, enthält die absolute Abbruchschranke für die Bisektion
REAL*4-Vektor der Dimension N, enthält untere Schranken für die Eigenwerte REAIac4-Vektor der Dimension N, enthält obere Schranken für die Eigenwerte INTEGER-Variable, enthält Index des kleinsten zu berechnenden Eigenwertes INTEGER-Variable, enthält Index des grüßten zu berechnenden Eigenwertes
Ausgangsparameter W REAIat4-Vektor der Dimension N, enthält die berechneten Eigenwerte in den Positionen KK bis LL TJG REALx4-Vektor der Dimension N, enthält in den entsprechenden Positionen verbesserte untere Schranken für die berechneten Eigenwerte (jeweils linker Randpunkt des letzten Bisektionsintezvalls) OG REAI«4-Vektor der D i m e n s i o n H, enthält in den entsprechenden Positionen verbesserte obere Sohranken für die berechneten Eigenwerte (jeweils rechter Randpunkt des letzten Bisektionsintervalls) IND INTEGER-Vektor der Dimension N, enthält für die berechneten Eigenwerte die Nummer des Diagonalblocks, in dem der jeweilige Eigenwert gefunden wurde KK INTEGER-Variable, enthält den Index des kleinsten berechneten Eigenwertes LL INTEGER-Variable, enthält den Index des größten berechneten Eigenwertes Hilfsfelder BD REAIdt4-Peld der Dimension N
Der Modul RATQR Autor: Dipl.-Math. G. Meine1 • Aufgabe Es werden die M kleinsten bzw. größten Eigenwerte der durch D und E gegebenen Tridiagonalmatrix mit Hilfe einer rationalen Variante des 46
QR-Algorithmus berechnet. Zunächst wardea die Subdiagonalelemente auf Vernachlässigbarkeit get e s t e t . Sie werden a l s vemachläasigbar erkannt, wenn [|E(I)I
6 MACHEP» (|D(I)| + |D(I-1)|]/I [|E(I)| Ä MACHEP.ANORM J
s i l t , worden E ( I ) und E 2 ( I ) Null gesetzt und daduroh die gegebene T r l diagonalmatrix in eine Blockdiagonalmatrix gewandelt. Diese Blockdiagonalmatrix wird dann um ihre untere Gersohgorinschranke verschoben, und mit dieser so entstandenen Matrix werden nun die QRSohritte mit Newton-Verschiebungen ausgeführt. Die QR-Sohritte werden f ü r jeden Eigenwert zunächst a l s Voriterationen ausgeführt. Nach der Ausfuhrung einer bestimmten Anzahl von Voriterationen wird der I t e r a tionsprozeß mit der aktuellen Verschiebung, aber mit Diagonal- und Subdiagonalelementen, wie s i e vor den Voriterationen waren, f o r t g e f ü h r t . Diese Verfahrensweise siohert eine Verringerung der Rundungsf e h l e r im Vergleich zum Iterationsprozeß ohne Voriterationen. Die Anzahl der Voriterationen wird in Abhängigkeit von der Dimension der Matrix f e s t g e s e t z t . Für N(I.J)I ) 1 / 2 gilt. Zur Berechnung des Wertes SCALE! wird das Unterprogramm UFEX benutzt. Insgesamt wird die Rechnung in RBAL demnach so ausgeführt, daß Rundungsfehler nur bei der einmaligen Diagonaltransformation der Ureprungsmatrix in doppelt-genauer Arithmetik auftreten; d. h., der relative Fehler ist maximal •
•
Rufzeile des Moduls CALL RBAL (NM,A,X,D,DIAGON,HV) COMMON-Variable N (E) = STEUER(1), IHTEGER-Variable, enthält die Dimension der Ursprungsmatrix LOW (A) = STEUER(15), INTEGER-Variable, enthalt den Anfangsindex des Hauptdiagonalblookes, der nicht in obere Dreiecksgestalt gebraoht wurde UPP (A) - STEUER(16), INTEGER-Varlable, enthält den entsprechenden Endindex (siehe LOY/) AHORM (a) « STEUER(31), REAI*4-Variable, enthält eine obere SCALE
•
•
(A)
Schranke fUr die Spektralnorm der balancierten Matrix a STEUER(40), REAIä4-Variable, enthält einen Skalierungsfaktor für die balancierte Matrix
Eingangsparameter NM INTEGER-Variable, enthält die Zellenanzahl der im rufenden Programm vereinbarten Matrix A REAI*4-Feld der Dimension (NM,N), enthält die Elemente der Ursprungsmatrix Ausgangsparameter D REAIü8-Feld der Dimension (NM,N), enthält die Elemente der balancierten Matrix; um den Speicherbedarf zu verringern, kann das Feld D den gleichen Speicherplatz wie die Felder A und X zusammen belegen, wenn das Feld A an einer Doppelwortgrenze beginnt und das Feld X unmittelbar daran anschließt. DIAGON REAI*4-Vektor der Dimension N, enthält die Informationen Uber die ausgeführten Ähnlichkeitstransformationen
57
•
Hilfsfeider X KEAI*4-Peld der Dimension (MM,N) HV REAI*4-Vektor der Dimension N
Der Modul RHOIT Autor» Dipl.-Math. L. Skurt • Aufgabe Mit Hilfe des Moduls RHOIT werden der betragsgrößte Eigenwert und der zugehörige Eigenvektor einer nlobtnegativen bzw. niohtposltiven Matrix berechnet. Falls die EingangBeatrix nichtpositiv ist, wird sie durch Multiplikation mit -1 in eine niobtnegative umgewandelt. Bei der Arbelt des Moduls wird angenommen, daß die Eingangsmatriz durah den Modul RBAL balanolert wurde; von ihm werden LOW und UFF belegt. Sonst muß LOW = 1 und UFF => N gesetzt werden. Wenn die gegebene Matrix reduzlbel sein kann, lBt es jedoch ratsam, vorher den Modul HBAL einzusetzen. Naohdem zuerst der größte Eigenwert des Teiles der Matrix bestimmt wurde, der schon Dreieoksgestalt besitzt, wird mit Hilfe des Moduls FOSMA der größte Eigenwert mit zugehörigem Eigenvektor des Hauptdiagonalblockes in den Grenzen LOW und UFF berechnet. Je nachdem, ob der größte Eigenwert der Gesamtmatrix der größte der Dreiecksmatrix oder des Hauptdiagonalblockes ist, muß noch der zugehörige Eiganvektor berechnet werden oder nicht. Der Modul RHOIT stellt das Steuerprogramm zur Berechnung des betragsgrößten Eigenwertes dar und ruft die Moduln FOSMA, GAUSS und INMOU auf. Rufzelle des Moduls v CALL RHOIT (HM,A,X,EWR,EWI,MARK,E-| ,E2,E3) • COMMOU-Variable II (E) = STEUER(1), IMTEGER-Variable, enthält die Dimension der Ursprungsmatrix P (E) = STEUER(4), INTEGER-Variable, = 1j die Eingangsmatrix ist nichtnegativ, = -1s die Eingangsmatrix ist nichtpositiv IPROTD (E) = STEUER(14), DJTEGER-Variable, enthält eine Steuergröße für die Datenprotokollierungs >0 der Eigenwert und >1 zusätzlich der Eigenvektor werden ausgedruckt LOW (E) = STEUER(15), IHTEGER-Variable, enthält den Anfangsindex des balancierten Hauptdiagonalblockes UFP (E) = STEUER(16), IHTEGER-Variable, enthält den entsprechenden Endindex (siehe LOW) 58
IERR
0
•
•
(A)
=
STEUER(17), IHTEGER-Variable, enthält einen Fehleranzeiger; = 11, wenn naoh 100 Iterationen im Modul POSMA keine Konvergenz eingetreten ist
Eingangsparameter UM INTEGER-Variable, enthält die Zeilenanzahl der im rufenden Programm vereinbarten Matrizen A REALs4-Feld der Dimension (HM,N), enthält die balancierte Matrix mit nichtnegativen bzw. nichtpositiven Elementen Ausgangsparameter X REAIx4-Feld der Dimension (MM,N), enthält in der ersten Spalte den berechneten Eigenvektor EVVR REAIä4-Vektor der Dimension N, EWR(1) ist mit dem berechneten Eigenwert belegt EWI REAI*4-Vektor der Dimension N, EVYI(1) = 0. MARK IMTEGER-Vektor der Dimension N, MARK(1) «1, MARK(i) = 0 für 1 ^ 1 Hilfsfelder Ei i = 1,2,3; REAI«4-Vektoren der Dimension N
Der Modul POSMA Autor: Dipl.-Math. L. Skurt • Aufgabe Die Berechnung des größten Eigenwertes und des zugehörigen Eigenvektors erfolgt für einen Hauptdiagonalblook in den Grenzen LOW und UPP einer niohtnegativen Matrix mit Hilfe einer speziellen Variante der Inversen Iteration [13, 14]. In jedem Iterationsschritt wird ein Gleichungssystem (Mk0I - A ) x ^ >
=
mit Hilfe des GgUßschen Algorithmus gelöst; t^ ist ein Normierungs— faktor. Um Rechenzeit einzusparen, wird der Spektralverschiebungsparameter nicht in jedem Iterationsschritt aktualisiert, sondern entsprechend einer vorgegebenen Strategie [ 1 4 J . Usch der Berechnung der neuen Näherung werden
- Mk ßk+1 " P k *
(«i k ) ).* k
»"
4k) - 4k)/4k)
und
(flf^J^k » n = UPP - LOW + 1,
berechnet, wobei fiy. obere und ^ Eigenwert der Matrix A sind.
untere Schranken ftir den größten
59
Als Startwerte werden
m 1)
x ( o ) - (1,1
und
u r
= max 11*i«Sn ilÄn
verwendet Der Abbruch der Iteration erfolgt, wenn ñc - Pk+i *
8
•
P \ f=T
h»i
gilt. Für die Lösung des Gleichungssystems wird das Unterprogramm GAUSS aufgerufen. Dor Modul GAUSS Autor: Dipl.-Math. L. Skurt • Aufgabe Das Unterprogramm dient der Lösung eines linearen Gleichungssystems, dessen Systemmatrix eine M-Matrix ist [l2.|. Solche Matrizen entstehen bei der Anwendung der Xnversen Iteration zur Berechnung des größten Eigenwertes für Matrizen mit nichtnegativen Elementen. In diesem Zusammenhang wird das Unterprogramm vom Modul POSMA aufgerufen. Falls K >0 gilt, wird die Eingangsmatrix B in des Produkt einer Links- und einer Reohtsdreieoksmatrix zerlagt. Da die Matrix B nach Voraussetzung eine M-Matrix sein soll, muß 0 für die Diagonalelemente der Reohtsdreieoksmatrix gelten. Die LR-Zerlegung wird aus diesem Grunde nur so lange durchgeführt, wie die Eigenschaft r ^ > 0 erfüllt ist. Andernfalls ist die M-Matrizeneigenschaft verletzt, und der Algorithmus GAUSS kann in dieser Form nicht mehr verwendet werden. WQnn K = 0 gilt, wird die im Feld B gespeicherte LR-Zerlegung verwendet und nur das Rechtsdreieckssystem gelöst; dazu wird der Modul IMMOU aufgerufen. Die auftretenden Skalarprodukte werden doppelt-genau berechnet. Der Modul IHMOU Autor: Dipl.-Math. A. Meyer/Dipl.-Math. W. Iffllller • Aufgabe Mit Hilfe des Moduls IHMOU wird ein singulares oder fast singulares Gleichungssystem mit der oberen Dreiecksmatrix R gelöst, wobei die Elemente des Lösungsvektors durch geeignete Skalierung betragsmäQig kleiner als 1 gehalten werden. Unter Verallgemeinerung einer in [17] vorgeschlagenen Variante zur Lösung solcher Gleichungssysteme für tridiagonale Rechtsdreiecksmatrizen wird anstelle des Systems 60
Rx « b das System Hx - tb gelHst, wobei der Skalierungsfaktor t Im Verlaufe der Rechnung so bestimmt wird, daß llxlloo < 1 Vgilt. Die Skalierung wird rundungsfehlerfrei mit Faktoren 16 vorgenommen, die durch das Unterprogramm UFEX erzeugt werden. Der Modul INMOU wird zur Lösung der In den Moduln INVTTR und GAUSS auftretenden Oleiohungssysteme mit Reohtsdreieoksmatrizen, die sich aus der Anwendung der Inversen Iteration ergeben, verwendet. Der Modul HOUSE Autort Dipl.-Math. J.-P. Sommer • Aufgabe Die Transformation der vollen Matrix D auf ober« Hessenberggestalt wird naoh dem Householderverfahren vorgenommen! es wird h = wobei H die obere Hessenbergmatrix ist und die Matrix I aus T = S
L O WSL0ff+1 • * * ^ P P ^
entsteht und S^ » I -
1 = LOW,...,UPP-2, w^w^ » 1,
gilt. Die Vektoren w^ werden so gewählt, daß in der Spalte 1 unterhalb des Elementes mit den Indizes 1+1, 1 Nullen erzeugt werden, wenn mit der Matrix S^ eine Ähnlichkeitstransformation ausgeführt wird. Die Transformationsmatrix wird im Modul HOUSE nicht explizit berechnet, die dafür notwendigen Informationen sind in der linken unteren Ecke des Feldes D und dem Vektor R enthalten. Venn erforderlioh, kann die Transformationsmatrix mit Hilfe des Moduls HSAKK berechnet werden. Sind nur einige Eigenvektoren zu berechnen, können die mit Inverser Iteration berechneten Eigenvektoren der Hessenbergmatrix H nachträglich durch den Modul INVIBK in Eigenvektoren der Matrix D rüoktransfornlert werden. Alle Berechnungen werden mit doppelt-genauer Arithmetik ausgeführt. »
Rufzelle des Moduls CALL HOUSE (HM,F,Q,R,D)
»
COMMON-Variable N (E) m STEUER(1), INTEGER-Variable, enthält die Dimension der Matrix D LOW (E) =• STEÜER(15), INTEGER-Variable, enthält den Anfangsindex des Hauptdiagonalblockes, der in Hessenberg61
gestalt transformiert werden soll (E) - 3TEUEH(16), IBTBGER-Variable enthält den Endindex des zu betraobtenden Hauptdiagonalblookes (siebe LOW) - die Variablen LOW und UPP werden vom Uodul BBAL belegt • Eingangsparameter HM HKPEQER-Variable, enthalt die Zeilenanzahl der im Hauptprogramm vereinbarten Matrizen D REAL*8-Feld der Dimension (HU,IQ» enthält die zu transformierende volle Matrix • Ausgangsparameter D REALM8-7eld der Dimension (HM,H), enthält in der reohten oberen Eoke die obere Hessenbergmatrix und in den Übrigen Elementen Informationen über die ausgeführten Iransformationen R HEAI«B-Vektor der Dimension Ii, enthält weitere Informationen Uber die ausgeführten Iransformationen • Hilfsfelder P, Q REAI«8-Vektoren der Dimension N UPP
Der Modul HSAKK Autori Dipl.-Math. J.-P. Sommer • Aufgabe Der Modul HSAKK baut aus den vom Modul HOUSE bereitgestellten Informationen Uber die ausgeführten orthogonalen Ähnlichkeitatransformationen die vollständige Iransformationsmatrix auf. Der Modul HSAKK wird benötigt, wenn mit Hilfe des Moduls QRALL alle Eigenwerte und die dazugehörigen Eigenvektoren berechnet werden sollen. Alle Berechnungen erfolgen mit doppelt-genauer Arithmetik. •
Rufzeile des Moduls CALL HSAKK (HM,P,Q,R,D)
•
COMMOB-Variable . LOW (E) » STEUER(15)» OTEGER-Variable, enthält den Anfangsindex des im Modul HOUSE transformierten Hauptdiagonalblookes UPP (E) » STEUER(16), IHTEGER-Variable, enthält den entspreohenden Bndindex des Hauptdiagonalblookes (siehe LOW) 0 Eingangsparameter UM IHTEGER-Variable, enthält die Zeilenanzahl der im Hauptprogramm vereinbarten entsprechenden Matrix
62
D
R m
•
R E A I « 8 - F e l d d e r D i m e n s i o n (HM,H), e n t h a l t I n d e n E l e m e n t e n D ( I , J ) m i t I > J + 1 I n f o r m a t i o n e n U b e r d i e I n HOUSE a u s g e führten Transformationen R E A I a 8 - V e k t o r d e r D i m e n s i o n IT, e n t h ä l t w e i t e r e I n f o r m a t i o -
n e n U b e r d i e i n HOUSE a u s g e f ü h r t e n T r a n s f o r m a t i o n e n Ausgangaparameter D REAIifB—Feld d e r D i m e n s i o n (HM,1Q, e n t h a l t d i e T r a n s f o r m a tionsmatrix Hilfsfelder P, Q
R E A I * 8 - V e k t o r e n d e r D i m e n s i o n IT
D e r Modul BLOCAfl A u t o r s D i p l . - M a t h . A. Meyer • Aufgabe Für e i n i g e V a r l a n t e n des qR-Algorittamuolat e s n ö t i g , d i e B l o o k s t r u k t u r e i n e r H e s s e n b e r g m a t r i x z u k e n n e n . Der Modul BLOGAU s t e l l t d i e s e I n f o r m a t i o n e n i n z w e i V e k t o r e n b e r e i t . G l e l o h z e l t i g w e r d e n vt>n d e n d a b e i e r k a n n t e n ( 1 x 1 ) - und ( 2 x 2 ) - H f l u p t d i a g o n a l b l 8 o k e n d i e E i g e n w e r t e b e r e c h n e t . Wenn f U r e i n e n I n d e x 1 la
i+1,i'
J. Der Lösungsalgorithmus ist eine Verallgemeinerung des Algorithmus« 82
der im Modul IBHOU realisiert ist.
«
Der Modul IBVIBK Autori Dipl.-Math. J.-P. Sommer • Aufgabe Der Modul IN7IBK führt die RUcktransformation der mit Hilfe der Inversen Iteration berechneten Bigenvektoren der oberen Hessenbergmatrix aus, so daß danach die Bigenvektoren der vollen balancierten Matrix zur Verfügung stehen. Unter Berücksichtigung der speziellen Struktur der Spiegelungsmatrizen und der Speicherung der wesentlichen Informationen Uber die Transformationen durch den Modul HOUSB, wird die RUcktransformation vorgenommen. Bs ist unbedingt erforderlich, daß die Transformation auf Hessenberggestalt durch Modul HOUSB erfolgte. Bs werden nur die Spalten der Matrix X, deren Indizes im Vektor MARK mit 1 markiert sind, transformiert. Die Bingangsparameter A und ALPHA für IHVIBK stimmen mit den Ausgangsgrößen D (konvergiert auf einfache Wortlänge) und R des Moduls HOUSB Uberein. •
Rufzeile des Moduls CALL INVIBK (MM,A,X,ALPHA,MARK) • COMMON-Variable (B) - STEUBR(1), INTEGER-Variable, enthält die aktuelle H Dimension der Matrizen A und X LOW (B) = STEUBR(15), INTEGER-Variable, enthält den Anfangsindex des Hauptdiagonalblockesj der durch RBAL nicht auf obere Dreiecksgestalt transformiert wurde UPP (E) = STBUBR(16), INTEGER-Variable, enthält den entsprechenden Endindex (siehe LOW) • Eingangsparameter NM INTEGER-Variable, enthält die Zeilenanzahl der im Hauptprogramm vereinbarten entsprechenden Matrizen A RBAI«4-Peld der Dimension (NM,N), enthält in den Positionen (I,J) mit I > J+1 Informationen über die ausgeführten Spiegelungstransformationen im Modul HOUSB X RBAI*4-Feld der Dimension (NM,N), enthält die Bigenvektoren der Hessenbergmatrix ALPH REAI*8-Vektor der Dimension N, enthält weitere Informationen Uber die Spiegelungstransformationen im Modul HOUSB MARK INTBGER-Vektor der Dimension N, enthält Markierungen für die zu transformierenden Bigenvektoren; MARK(I) • 1 der in 83
der Spalte 4» I der Matrix X stehende Vektor soll transfor0
miert werden Ausgangsparameter X REAL*4-Feld der Dimension (NM,H), enthält die Eigenvektoren der balancierten Matrix
Der Modul BALBK Autort Dipl.-Math. J.-P. Sommer « Aufgabe Der Modul transformiert die berechneten Eigenvektoren der balancierten Matrix in Eigenvektoren der Ursprungsmatrix. Dabei werden lediglich diejenigen Eigenvektoren rücktransformiert, die in Spalten der Matrix Z stehen, deren Indizes im MARK-Vektor ein Wert +1 entspricht. Eigenvektoren, deren Indizes zwischen LOW und UFP liegen, werden mit der durch die Balancierungsdiagonale angegebenen Diagonalmatrix multipliziert. Anschließend werden noch die im Modul RBAL vorgenommenen Permutationen von Zeilen und Spalten rückgängig gemacht und die Eigenvektoren im euklidischen Sinn normiert. Den Balancierungsvektor BAL stellt der Modul RBAL zur Verfügung. • Rufzeile des Moduls CALL BALBK (NM,Z,BAL,MARK,EWI) • COMMON-Variable N (E) = STEUER(1), INTEGER-Variable, enthält die Dimension der Matrix Z LOW (E) = STEUER(15), INTEGER-Variable, enthält den Anfangsindex des Hauptdiagonalblockes, der vom Modul RBAL nicht in obere Dreiecksgestalt transformiert wurde UPP (B) = STEUER(16), INTEGER-Variable, enthält den entsprechenden Endindex (siehe LOW) • Eingangsparameter NM INTEGER-Variable, enthält die Zeilenanzahl der im Hauptprogramm vereinbarten entsprechenden Matrizen Z REAL*4-Feld der Dimension (NM,N), enthält die Eigenvektoren der balancierten Matrix BAL REALs4-Vektor der Dimension N, enthält die Balancierungsdiagonale MARK INTEGER-Vektor der Dimension N, enthält die Markierungen ftlr die berechneten Eigenvektoren| 1IARK(I) - 1 der in der Spalte I der Matrix Z stehende Sigenvektor ist zu transformieren • Ausgangsparameter Z RBAI*4-Feld der Dimension (ZM,N), enthält die Bigenvektoren 84
der Ursprungsmatrix Der Modul 3CALBK Autori Dipl.-Math. J.-P. Sommer 0 Aufgabe Der Modul SCAT./RK führt die RUckskalierung der Eigenwerte aus und ordnet Eigenwerte, Eigenvektoren und Defekte in den Anfangsplätzen der entsprechenden Felder an. Der Uodul SCALBK macht die im Modul RBAL vorgenommene Skalierung rückgängig, indem alle Bigenwerte mit dem im COMMON-Bereich stehenden Wert SCALE multipliziert werden» Außerdem werden die Brgebnisfelder aufbereitet, so daß in den ersten IEVANZ Komponenten der Vektoren EWR, EWI und DBF dl« den Big«Direktoren in den ersten IEVANZ Spalten der Matrix Z entsprechenden Eigenwerte und Defekte enthalten sind, während In den Komponenten IEVANZ-1,.. .,IEWANZ der Vektoren EWR und EWI die Eigenwerte stehen, zu denen keine Eigenvektoren berechnet wurden. •
Rufzeile des Moduls CALL SCALBK (NM,Z,EWR,WEI,MARK,DEF,E1,B2) • COMMON-Variable (B) » STEUBR(1), INTEGER-Variable, enthält die Dimension N der Matrix Z BV (B) - STEUER(8), INTEGER-Variable, enthält eine Steuergröße für die Eigenvektorberechnung; • 0 es sind keine Eigenvektoren berechnet worden ^ 0 es gibt Eigenvektoren, die umzuordnen sind IBWANZ (A) - STBUER(27), INTEGER-Variable, enthält die Anzahl der bereohneten Eigenwerte IBVAHZ (A) - STEÜER(28), IMTBGBR-Variable, enthält die Anzahl der bereohneten Eigenvektoren SCALE (E) - STEUER(40), RBALü4-Variable, enthält den Skalierungsfaktor für die Bigenwerte • Eingangsparameter NM mrSQER-Variable, enthält die Zellenanzahl der im Hauptprogramm vereinbarten entsprechenden Matrizen Z RBAI*4-?eld der Dimension (BM,Ii), enthält die berechneten Eigenvektoren SUR RBAL»4-Vektor der Dimension H, enthält die Realteile der berechneten Bigenwerte EVI REALa4-Vektor der Dimension N, enthält die Imaginärteile der berechneten Eigenwerte MARK INTEGER-Vektor der Dimension N, enthält die Markierungen für die bereohneten Eigenwerte und Eigenvektoren; 85
MARK(I) . 0
der Inhalt von SHR(I), BRI(I) ist keine Lösung des Bigenwertproblems MABK(I) — 1 der Inhalt von BfR(I), BWI(I) ist Läsung des Bigenwertproblems, es wurde der entsprechende Bigenvektor nicht bereohnet MABK(I) « 1 der Inhalt von S*R(I), EWI(I) ist Lösung des Bigenwertproblems, der entsprechende Eigenvektor steht in der Spalte I der Matrix X DBF RBAI«4-Vektor der Dimension R, enthält die den Bigenpaaren entsprechenden Defektnonnen • Ausgangsparameter X HB/LLw4-Peld der Dimension (HM,N), enthalt in den ersten IEVAHZ Spalten der berechneten Eigenvektoren EWR RBAI«4-Tektor der Dimension H, enthält in den ersten IBWAKZ Elementen die Realteile der berechneten Eigenwerte EVI RBAL*4-Vektor der Dimension IT, enthält in den ersten IEWANZ Elementen die Imaginärteile der berechneten Eigenwerte DBF REA.Idf4-Vektor der Dimension II, enthält in den ersten IEVANZ Elementen die Defektnormen der Bigenpaare • Hilfsfelder Ei i - 1,2; RBALn4-Vektoren der Dimension IT
7.3« Komplex-hermitescher Zweig Der Modul HDTRED Autort Dipl.-Math. W. Müller • Aufgabe Der Modul HDTRED hat die Aufgabe, mit Hilfe doppelt-genauer unitärer Ähnlichkeitstransformationen die gegebene komplex-hermitesche Matrix in eine symmetrische Tridiagonalmatrix zu transformieren. Dies geschieht in einem ersten Schritt durch unitäre Tridiagonalisierung der vollen Matrix mit Hilfe von Spiegelungsmatrizen analog dem Fall reeller Matrizen. Es werden n-2 unitäre Transformationen mit Matrizen U® • I - tDwI,Uw*|, ' m =• 1'
'n-2
ausgeführt, so daß die im Schritt m entstehende Matrix in der m-ten Spalte unterhalb des Elementes mit den Indizes (m+1,m) nur Nullen enthält. nach der Tridiagonalisierung der komplexen Matrix wird durch eine unitäre diagonale Ähnlichkeitstransformation eine symmetrische Tridiagonalmatrix erzeugt. Die Elemente der Diagonalmatrix ergeben sich aus 86
Sub- und Superdiagonalelementen c i + 1 ^ und n-1, durch d, - C dJ ^ 1 , 1 . für i - 2 I 12 23*** i~1»i' i
•
i • 1»
0,
of + s? - 1
s
i - i/
in obere Dreiecksgestalt Überführt. Die Zerlegung wird so ausgeführt, daß alle Werte r ^ reell werden; dazu ist noch eine zusätzliche Multiplikation mit Q^ • diag(l,...,1, orD). '«n' 3 1 erforderlich. Für I s±i < 0,25«16~6 bzw. Ic^ 0,25*16~6 wird s^^ bzw. ^ gleich Null und entsprechend c^ bzw. s^ gleich Eins gesetzt, weil für alle £ mit £ < 16"13 - (0,25'16-6)2 gilt, daß flgÜ + E) - 1 ist. Der Modul CQMUL Autors Dipl.-Math. A. Meyer • Aufgabe Der Modul CQMUL multipliziert einen Vektor mit den im Modul CQRZER erzeugten unitären Drehungsmatrizen. Die Ausgabewerte von CQRZER werden direkt als Eingabe für den Modul CQMUL verwendet. Es entsteht 98
y
" Q n Q n-r" < 3 1 x *
Oer Modul CINMOU Autor« Dipl.-Math. A. Meyer •
Aufgabe
Durch den Modul CINMOU wird ein lineares Gleichungssystem Hx = ty, t > 0 mit der komplexen Rechtedreiecksmatrix R und der komplexen rechten Seite y gelöst. Der Lösungsalgorithmus ist die komplexe Verallgemeinerung des Algorithmus im Modul INHOU. Der Normierungsfaktor t wird ebenfalls so bestimmt, daß Mxllo© £ 1 gilt. Zu dieser rundungsfehlerfreien Normierung wird der Modul UFEX benutzt. Der Modul CRBTRA Autor» Dipl.-Math. A. Meyer 0 Aufgabe Durch den Modul CRBTRA werden die berechneten Eigenvektoren der oberen Hessenbergmatrix in die entsprechenden Eigenvektoren der balancierten Matrix transformiert. Die zu transformierenden Eigenvektoren Bind in den Spalten i der Eigenvektormatrix enthalten, für die das i-te Element des karkierungsvektors gleich 1 ist. Eigenvektoren, die in einer Spalte stehen, deren Index kleiner LOW oder größer als UPP ist, werden nicht transformiert. Für die Iransformation werden die Informationen genutzt, die vom Modul OHES bereitgestellt wurden als Informationen über die ausgeführten unitären Ähnlichkeitetransformationen zur Herstellung der Hessenberggestalt. Rufzeile deB Moduls CALL CRETRA (NM,A,X,E1,MARK) m COMMON-Variable (E) » STEUER(1), INTEGER-Variable, enthält die Dimension N der Ursprungsmatrix LOW (E) = STEUER(15), INTEGER-Variable, enthält den Anfangeindex des Hauptdiagonalblockes, der vom Modul CBAL nicht auf obere Dreiecksgestalt gebracht wurde UPP (E) = STEUER(16), INTEGER-Variable, enthält den entsprechenden Endindex (siehe LOW) • Eingangsparameter NM INTEGER-Variable, enthält die Zeilenanzahl der im Hauptprogramm vereinbarten entsprechenden Matrizen A COMFLEX-Feld der Dimension (NM,N), enthält im linken unte•
99
#
ren Dreieck Informationen Uber die im Modul CHES ausgeführten unitären Transformationen (= Ausgabe von OHES) X COMPLEX-Feld der Dimension (NM,N), enthält in den durch MARK(I) • 1 gekennzeichneten Spalten die zu transformierenden Eigenvektoren E1 REAL*8-Vektor der Dimension N, enthält weitere Informationen über die im Modul CHES ausgeführten unitären Transformationen (Ausgabe von CHES) MARK INTEGER-Vektor der Dimension N, enthält den Iviarkierungcvektor; MARK(I) = 1 bedeutet, daß der in der Spalte I der Matrix X stehende Eigenvektor transformiert v/erden soll Ausgangsparameter X COMPLEX-Feld der Dimension (NIü,N), enthält die transformierten Eigenvektoren in denselben Spalten wie als Eingabe
Der Modul CERR Autort Dipl.-Math. M. Meyer # Aufgabe Im Modul CERR werden für alle berechneten Eigenwerte und Eigenvektoren Schranken für den absoluten Fehler der Eigenwerte angegeben. Es werden . ( 0, wenn keine Kigenvektoren berechnet sind R - IX I .£„„ und S » < 1 m1 1 l Her." ii • s.• -t 1 sonst, wobei lerj die Norm des Defektes des i-ten Eigenpaares, s^ der entsprechende Schiefekoeffizient und t der im Modul CBAL gewonnene Skalierungsfaktor alnd. Die absolute Schranke wird dann gewonnen aus 6 i = max (R,S). • #
Rufzeile des Moduls CALL CERR ( MARK, EW, DEF, SHIKO ) COMMON-Variable (E) » STEUER(1), INTEGER-Variable, enthält die Dimension N der Ursprungsmatrix IEWANZ (E) = STEUER(27), INTEGER-Variable, enthält die Anzahl der berechneten Eigenwerte IEVANZ (E) = STEUER(28), INTEGER-Variable, enthält die Anzahl der berechneten Eigenvektoren HACHEP (E) m STEÜER(36), REAL«4-Variable, enthält die Maschinengenauigkeit SCALE (E) - STEUER(40), REAL*4-Variable, enthält den Skalierungs100
faktor, der vom Modul CBAL bereitgestellt wurde Eingangsparame ter MARK INTEGER-Vektor der Dimension N, enthält die Markierungen für die berechneten Eigenwerte und Eigenvektoren EW COMPLEX-Vektor der DimensionN, enthält die berechneten Eigenwerte in den Elementen EW(1),...,EW(IEWANZ) DEF REAIi*4-Vektor der Dimension N, enthält in den Elementen
•
DEF(1),...,DEF(IEVANZ) die Normen der Defekte der berechneten Eigenpaare SHIKO REAL*4-Vektor der Dimension N, enthält in den entsprechenden Elementen die Kehrwerte der Schiefekoeffizienten der berechneten Eigenvektoren Ausgangeparameter SHIKO REAL*4-Vektor d«r Dimension IT, enthält die Schranken für die absoluten Fehler der Eigenwerte
8. Anwendungsbeispiele In diesem Kapitel werden einige A n wendungsbeispiele angegeben, die an unterschiedlichen Aufgabenstellungen veranschaulichen sollen, wie diese in einen Aufruf des Programmsystems MEIWEP umgesetzt werden können. Zu den einfachsten Beispielen wird noch eine Möglichkeit der Nutzung der einzelnen Moduln hinzugefügt. Dabei auftretende Unterprogramme wie KUERZ, BAUSCH, STAUCH u. a. sind Hilfeprogramme, die lediglich der D a tenanpassung zwischen den Moduln dienen; sie sind im Programmsystem enthalten. Die folgenden Beispiele sind der Dokumentation des Programmsystems, Teil 1, entnommen f6]. Beispiel 1 Es sind alle Eigenwerte und Eigenvektoren einer reellen symmetrischen Matrix HAT der Dimension 1W50 zu berechnen. Der absolute Fehler der berechneten Eigenwerte soll den Wert FABS nicht überschreiten. Die Eigenwerte sollen im Feld EW und die Eigenvektoren im Feld EV stehen. Zwischenergebnisse sollen protokolliert werden. Nutzung des Programmsystems mit CODEIG Nutzervereinbarungen DIMENSION EIG(5,10),MAT(50,50),EV(50,50),EW(50),fflENK(4) REAIä4 MA.T Einlesen von N,MAT,FABS oder Nutzerprogramm NM » 50 101
faktor, der vom Modul CBAL bereitgestellt wurde Eingangsparame ter MARK INTEGER-Vektor der Dimension N, enthält die Markierungen für die berechneten Eigenwerte und Eigenvektoren EW COMPLEX-Vektor der DimensionN, enthält die berechneten Eigenwerte in den Elementen EW(1),...,EW(IEWANZ) DEF REAIi*4-Vektor der Dimension N, enthält in den Elementen
•
DEF(1),...,DEF(IEVANZ) die Normen der Defekte der berechneten Eigenpaare SHIKO REAL*4-Vektor der Dimension N, enthält in den entsprechenden Elementen die Kehrwerte der Schiefekoeffizienten der berechneten Eigenvektoren Ausgangeparameter SHIKO REAL*4-Vektor d«r Dimension IT, enthält die Schranken für die absoluten Fehler der Eigenwerte
8. Anwendungsbeispiele In diesem Kapitel werden einige A n wendungsbeispiele angegeben, die an unterschiedlichen Aufgabenstellungen veranschaulichen sollen, wie diese in einen Aufruf des Programmsystems MEIWEP umgesetzt werden können. Zu den einfachsten Beispielen wird noch eine Möglichkeit der Nutzung der einzelnen Moduln hinzugefügt. Dabei auftretende Unterprogramme wie KUERZ, BAUSCH, STAUCH u. a. sind Hilfeprogramme, die lediglich der D a tenanpassung zwischen den Moduln dienen; sie sind im Programmsystem enthalten. Die folgenden Beispiele sind der Dokumentation des Programmsystems, Teil 1, entnommen f6]. Beispiel 1 Es sind alle Eigenwerte und Eigenvektoren einer reellen symmetrischen Matrix HAT der Dimension 1W50 zu berechnen. Der absolute Fehler der berechneten Eigenwerte soll den Wert FABS nicht überschreiten. Die Eigenwerte sollen im Feld EW und die Eigenvektoren im Feld EV stehen. Zwischenergebnisse sollen protokolliert werden. Nutzung des Programmsystems mit CODEIG Nutzervereinbarungen DIMENSION EIG(5,10),MAT(50,50),EV(50,50),EW(50),fflENK(4) REAIä4 MA.T Einlesen von N,MAT,FABS oder Nutzerprogramm NM » 50 101
CALL CODEIG (IANZ,BIG,'EIGENWERTE UND EIGENVEKTOREN',»ALLE», 1 •PROTOKOLL » ZWISCHENERG') GEHK(1) = 0.0 GENK(2) = 0.0 GENK(3) = 0.0 GENK(4) = i'ABS CALL MEIWEP (NM,N,N,MAT, «REELL.', ' SYM', 'SYSTEM* ,EW,IEWANZ, 1 EV,IiäVANZ,1ER,'SP',GENK) ........ Ausgabe von EW und EV oder Weiterverarbeitung, falls 1ER • 0, sonst Fehlermeldung Fortsetzung des Nutzerprogramma Nutzung als Programmpaket Nutzervereinbarungen C OMMON/ S TEUER/N, LEER1 (15) ,IERR,LEER2(4) , LV, INDFEH , LRKR3 (7), 1 ANORM,LEER4(4),MACHEP REAL*8 Z(50»53) DIMENSION IND(50) REAL*4 MAT(50,50),EV(50,50),D(50),H1(50),E(50),H2(50),E2(50), 1 H3(50),EW(50),H4(50),MACHEP EQUIVALENCE (Z(1),MAT(1)),(Z(1226),EV(1)),(Z(2501),D(1)), 1 (Z(2526),H1(1)),(Z(2551),E(1)),(Z(2576),H2(1)), 2 (Z(2551),E2(1)),(Z(2626),H3(1)) NM » 50 C BEI ANDHIEN MAXIMALEN DIMENSIONEN NM SIND ZU AENDERNi C VEREINBARUNGEN: Z(NM,NM+3) ,MAT(NM,NM) ,EV(NM,NM) ,D(NM) ,H1 (NM) ,E(NM), C H2(NM),E2(NM),H3(NM),EW(NM),H4(NM),IND(NM) C AEQUIVALENCEN; (Z(NMra2/2+1,EV(1)),(Z(NMi«2+1),D(1)), C (Z(NMM2+NM/2+1),H1(1)),(Z(NMwi2+NM+1),E(1)), C (Z(NMMM2+3KNM/2+1),H2(1)),(Z(NMh*2+2HNM+1),E2(1)), C (Z(NMwi2+5*NM/2+1),H3(1)) Eingabe von N, MAT, MACHEP LV = 1 IERR o 0 C EINGELESENE MATRIX IN DOPPELTE GENAUIGKEIT UMWANDELN CALL BAUSCH (NM,MAT,Z) C TRIDIAGONALISIERUNG CALL DTRED2 (NM,D,E,E2,Z) C RUECKFUEHRUNG VON D,E,E2 IN EINFACHE GENAUIGKEIT CALL KUERZ (D,D) CALL KUERZ (E,E) CALL KUERZ (E2.E2)
102
C VORBEREITUNGSARBEITEN FUER IUTQL MIT EIGENVEKTOREli B(1) - 0 U - D(N) - ABS(E(N)) 0 - D(N) + ABS(E(N)) K - N - 1 DO 10 I - 1,K U - AMIN1(U,(0(1) - ABS(E(I)) - ABS(E(I+1)))) 10 CONTINUS ANORM - AMAX1(ABS(U),ABS(0)) C AKKUMULATION DER TRANSFORMATIOKSEATRIX CALL DTRAK2 (NM,Z) C RUECKFUEHRUNG DER TRANSFORMATIONSHATRIX IN EINFACHE GENAUIGKEIT CALL STAUCH (NM,EV,Z) C BERECHNUNG VON EIGENWERTEN UND EIGENVEKTOREN CALL IMTQL (NM,D,E,EW,H1,H2,H3,H4,IND,EV) Fortsetzung des Nutzerprogramms Beispiel 2 Zur reellen symmetrischen Matrix A der Dimension N * 30 sollen der betragemäßig kleinste Eigenwert mit zugehörigem Eigenvektor sowie alle Eigenwerte aus dem Intervall (U,0) berechnet werden. Der absolute Fehler der berechneten Eigenwerte sei kleiner oder gleich FEW. Die Eigenwerte sollen im Feld EW und der Eigenvektor im Feld EV zur Verfügung stehen. Die verwendeten Verfahren sollen protokolliert werden. Nutzung des ProgrammsystemB ohne den Modul CODEIG Nutzervereinbarungen DIMENSION EIG(5,3),A(30,30),EV(30,30),GENK(4),EW(30) NM - 30 Einlesen von N,A,FBKf,U,0 oder Nutzerprogramm EIG(1,1) -1 EIG(2,1) 1 1 BIß(3,1) 1 BI0(4,1) 1+N EIG(5,1) EIG(1,2) 1 EIG(2,2) 0 U EIG(3,2) EIG(4,2) 0 N EIG(5,2) -1 BI0(1,3) 1 EIG(2,3) 103
JBIG(3» 3) - 0 GENK(1) = 0.0 GKNK(2) = 0.0 GENK(3) « 0.0 GENK(4) » PEVf CALL MEIWEP (NM,N,N,A,«REELL«,'SYM«,0,0,2,EIG,«NUTZER«,BW, 1 IEWANZ,EV,IEVANZ,IER, 0,GENK) Ausgabe oder Weiterverarbeitung von EW und EV Nutzung des Programmsystems mit dem Modul CODEIG DIMENSION NM ® 30 IANZ » 2
Nutzervereinbarungen EIG(5,3),A(30,30),EV(30,30),GENK(4),EW(30)
Einlesen von N,A,FEW,U,0 oder Nutzerprogramm CODEIG (IANZ,EIG,• JEW UND EV'.'ABS MIN«,1,«NUR EIGENWERTE«, ' INTERVALL«, U, 0, ' PROTOKOLL s VERF.« ) GENK(1) = 0.0 GENK(2) = 0.0 GEHK(3) = 0.0 GENK(4) = PEW CALL MEIWEP (NM,N,N,A,«REELL',«SYM1,0,0,2,EIG,«SYSTEM«,EW, 1 IEWANZ,EV,IEVANZ,IER,0,GENK) Ausgabe oder Weiterverarbeitung von EW und EV CALL
Beispiel 3 Berechnung aller Eigenwerte einer reellen nichtsymmetrischen Matrix A der Dimension N £ 50. Die Elemente von A sind mit dem relativen Fehler FREL behaftet, die Eigenwerte aollen im Feld LAMBDA gespeichert sein, und Zwischenergebnisse sind zu protokollieren. Nutzung des Programmsystems ohne CODEIG Nutzervereinbarungen DIMENSION EIG(5,2),A(50,50),GENK(4) COMPLEZ LAMBDA(50) DATA EIG,GENK /3«1.,4x0.,2.,6*0./ Einlesen von N,A,FREL oder Nutzerprogramm NM = 50 EIG(4,1) = N EIG(5,1) = N GENK(1) = FREL CALL MEIWEP (NM,N,N,A,'REELL«,0,0,0,EIG,«NUTZER«,LAMBDA, IEWANZ,a,IEVANZ,IER,0,GENK) 104
Ausgabe der Eigenwerte oder Weiterverarbeitung Nutzung als Programmpaket Nutzervereinbarungen REALuö D(50,54) REALk4 A(50,50),B(50,50),EWR(50),EWI(50),MACHEP COMPLEX LAMBDA(50) INTEGER E(50,8),UPP,AKK COMMON/STEUER/ N,LEER(8),ID,LEER2(3),IPROTD,LOW,UPP,1ER, 1 LEER(3),IVER,AKK,LEER4(5),IBZ,LEER5(4),EPSER, 2 LEER6(2),MACHEP,EPSQR,LEER7(2),SC EQUIVALENCE (D(1),A(1)),(D(1251),B(1)),(D(2501),E(1)) NM = 50 C BEI ANDERER MAXIMALER DIMENSION NM SIND ZU AENDERNt C VEREINBARUNGEN: D(NM,NM+4),A(NM,NM),B(NM,Nk)fEWR(NM),EWI(NM), C LAMBDA(HH),E(NM,8) C AEQUIVALENZENi (D(NMwj2/2+1),B(1)),(D(NMWI2+1),E(1)) Einlesen von N,A,FREI,MACHEP oder Nutzerprogramm C VORBEREITUNGEN IPROTD n 1 IVER « 1 AKK - 0 IBZ - 1 EPSER a FREL C BALANCIERUNG CALL RBAL (NM,A,B,D,E(1,2),E) C GENAUIGKEITSSTEUERUNG CALL . EPSDG (E(1,2)) IP (ID .NE. 0) EPSQR - MACHEP C TRANSFORMATION AUF HESSENBERGGESTALT CALL HOUSE (NM,E(1,5),E(1,7),E(1,3),D) C RUECKFUEHRUNG IN EINFACHE GENAUIGKEIT CALL KURZ (NM,D,A) EE(1,5) = LOW E(1,6) « UPP C BERECHNUNG DER EIGENWERTE CÄLL QRALL (NM,B,EWR,EWI,E,E,E,E,E,E,E,E,E(1,5),E(1,6),E,A) falls 1ER größer als 0 ist, Fehlerbehandlung G U1ISPEICHERUNG UND RUECKSKALIERUNG DER EIGENWERTE DO 10 I = 1,N 10 LAMBDA(I) » SC x CMPLX (EWR(I),EWI(I)) Weiterverarbeitung der Eigenwerte
105
Beispiel 4 Berechnung derjenigen Eigenwerte LAMBDA einer reellen nichtsymmetrischen Matrix A der Dimension N * 30, die zu gegebenen Näherungen NAEH(1), NABH(2),...,NABH(K) den geringsten Abstand haben. Außerdem sind zu denjenigen Eigenwerten, deren Betrag kleiner oder gleich 1 ist, die Bigenvektoren zu berechnen. Hutzung des Programmsystems ohne CODBIG Hutzervereinbarungen DIMENSION A(30,30),OT(30,30),BIG(5,11),QBNK(4) COMPLBX HABH(10),LAMBDA(30) DATA EIG,GKHK/59*0./ Hl( - 30 Einlesen von K,N,HABH,A oder Vutzerprogramm (K * 5) KX - K+K DO 10 J - 1,KK,2 £10(2«J) - BBAL(BABH( J) ) BI0(3,J) - AIMAQ(KABH(J)) BIQ(4,J+1) - 1 BIQ(5,J) - 1 + 5 + H 10 SLQ(5,M) - 1 BIG(1,KK+1) - -1 OALIi MBIWBP (Hli,H,H,A,'RBKLL*,0,0,0,KK,EIQ, »HUTZER'.LAUBDA 1 IjSWAHZ , EV, IEVANZ,IER,0, GEKK ) Ausgabe oder Weiterverarbeitung der Bigenwerte und Bigenvektoren (auf BT) Beispiel 5 Berechnung derjenigen Bigenwerte BW einer reellen nichtsymmetrischen Matrix A der Dimension H i 50, die innerhalb der Kreise K^(1,1) und Kg(-1,1) liegen. Die entsprechenden Bigenvektoren sind mit zu berechnen und im Peld SV zu speichern. Nutzung des Programmsystems ohne CODBIG Nutzervereinbarungen DIMENSION (a(50,50),EV(50,50),EIG(5,3),GKNK(4) COMPLBX KW(50) DATA BIG,GENK /0.,1.,0.,2*0.,-1.,3*1•,ö*0./ NH COMMON/STEUER/N 106
EINLESEN V O N N,A EIG(5,1) - N EIG(5,2) - N CALL
MEIWEP (NM,N,N,A,'REELL',0,0,0,2, EIO,'HDTZER',BW,IEWAB2,
1
EV,IBVAIJZ,IEB,0,GEHK)
Ausgabe der Ergebnisse oder Weiterverarbeitung Nutzung des Programmeyetems mit CODEIG NUTZERVEREINBARUNGEN DIMENSION
A(50,50),EV(50,50),EIG(5,3),GENK(4)
COMPLEX
EW(50)
N M - 50 IANZ = 2 EINLESEN VON
CALL CALL 1
N,A
CODEIG (IANZ,EIG,'EIGENWERTE UND EIGENVEKTOREN•,'KREIS•, 1.,0.,1.,'KREIS',-1.,0., 1.) MEIVYEP (NM,N,N,A,'REELL',0,0,0,IANZ,EIG,'SYSTEM',EW, IEWANZ,EV,IEVANZ,IER,0,GENK) Ausgabe oder Weiterverarbeitung
Beispiel 6 Es sind IM vorgegebene Eigenwertnäherungen EWC(1),EWC(2),...,EWC(IM) einer beliebigen komplexen Matrix C der Dimension N * 50 zu verbessern und die zu ihnen gehörigen Eigenvektoren zu berechnen« Die Eigenwerte sind wieder im Feld EWC und die Eigenvektoren spaltenweise im Feld EV bereitzustellen. Nutzung des Programmsystems mit CODEIG Nutzervereinbarungen DIMENSION
EIG(5,51),GENK(4)
COMPLEX
C(50,50),EV(50,50),EWC(50)
N U » 50
CALL CALL 1
Einlesen von N,C,IM,EWC GQDEia (IaNZ,EIG,'NAEHERUNG',EWC,IM) MEIWEP (NM,N,N,C,'KOMPLEX',0,0,0,IM,EIG,'SYSTEM',EWC,IW, EV,IV,IER,0,GENK) Ausgabe der Ergebnisse bei IER = 0 sonst Fehlermeldung
Nutzung als Programmpaket Nutzervereinbarungen COMWON/STEUER/ N,LEER1(4),FEA,LEER2,EV,LEER3(12),IVER,LEER4(2), 107
1 2
IM,LEER5(4), INV,KINV,LEER6,EPSEA,EPSER,LEER7(' (6).SCALE
COMPLEX*^ D(50,53) C0MPLEXm8 0(50,50),B(50,50),EV(50,50),EWC(50) INTEGER E(50,12),E(50,11) EQUIVALfiNCB(D(1),B(1)),(D(1251),EV(1)),(D(2501),B(1)) C C BEI ANDERER MAXIMALER DIMENSION NM SIND ZU AENDERNl C VEREINBARUNGEN« D(NM,NM+3),C(NM,NM),B(NM,NM),EV(NM,NM),EWC(Nli), C E(NM,12),E(NM,11) C ABQUIVALENZENi (D(NMms2/2+1),EV(1)),(D(NMwi2+1),E(1))
C C C C C C
C
C
Einlesen von N,C,IM,BWC PEA a 0 EV = 1 IVER = 0 KINV » 0 EPSEA > 0 EPSER - 0 BALANCIERUNG DER URSPRUNGSMATRIX GAU, CBAL (NM,C,C,B,D,E(1,12),E) GENAUIGKEITSUNTERSUCHUNG - FESTLEGUNG VON ABBRUCHSCHRANKEN CALL CEPSI (E(1,12)) TRANSFORMATION AUF HESSENBERGGESTALT CALL OHES (NM,E,E(1,5),E(1,9),D) RUECKFUEHRUNG AUF EINFACHE GENAUIGKEIT CALL CKURZ (NM,D,C) SCALIERUNG DER EIGENWERTNAEHERUNGEN ENTSPRECHEND DER SCALIERUNG IM MODUL RBAL UND BELEGUNG DES MARKIERUNGSVEKTORS DO 1 I = IM,N 1 E(I,11) = 0 DO 2 I - 1,IM EWC(I) « EWC(I)/SCALE 2 E(I,11) - 1 VERBESSERUNG DER EIGENWERTE UND BERECHNUNG DER EIGENVEKTOREN 3 J « KINV + 1 CALL CVORIT (NM,C,B,EWC,E(1,1),EV(1,J),E,E(1,3),E(1,5)) IF (INV .NE. 0) GOTO 3 RUECKTRANSFORMATION DER EIGENWERTE UND EIGENVEKTOREN CALL CRETRA (NM,C,EV,E(1,9),E(1,11)) CALL CREBAL (NM,EV,BV,EWC,E(1,11),E(1,12)) Ausgabe der Ergebnisse oder Weiterarbelt 108
Zur Illustration folgen jetzt einige Abarbeitungszeiten fUr die Aufgabenst eilungen I. Berechnung aller Eigenwerte, II. Berechnung aller Eigenwerte und der zugehörigen Eigenvektoren, III. Berechnung aller Eigenwerte und zu den fünf betragskleinsten Berechnung der Eigenvektoren, IT. Verbesserung zweier Näherungseigenwerte und V. Berechnung von Eigenwerten aus einem Intervall (Kreis) und der zugehörigen Eigenvektoren für A. symmetrisch tridiagonale, B. allgemein symmetrische und C. allgemein reelle Matrizen der Dimensionen N = 70, 80 und 100. Die Tabellen enthalten jeweils zwei Zeitangaben (Minuten:Sekunden): die von der Zentraleinheit benötigte Zeit (CPU) und die benötigte Gesamtrechenzeit einschließlich des Aufrufs des Prograirnnsystems MEIWEP (CALL). Ai I II III IV V Bi I II III IV V Ci I II III IV V
ff
» 70 CPU 2,28 16,76 2,72 0,80 0,88
CALL 59,82 1:06,26 56,18 21,62 21,48
N a 80 CPU 2,80 24,38 3,46 0,80 1,28
ff CALL 1:26,44 1s04,06 1:17,14 21,14 51,00
= 100 CPU 4,06 45,74 4,84 1 ,04 1,44
CALL 24,36 1 :05,26 24,34 19,32 1 :06,22
II >» 70 CPU 11,44 1:05,58 12,62 9,40 7,94
CALL 1:05,64 1:45,20 51,78 15,52 42,62
N = 80 CPU 14,52 1:33,38 16,76 12,62 14,66
CALL 52,88 2:15,34 50,84 43,84 36,14
ff => 100 CPU 25,22 2 :57,76 28,30 22,88 26,46
CALL 53,64 3:27,30 55,94 52,02 57,00
ff - 70 CPU 37,90 1:18,26 41,70 24,62 31,38
CALL 2:04,86 4:24,48 2:24,68 47,70 1:01,80
N = 80 CPU 51,94 1:53,06 57,90 36,46 1:17,12
CALL 1 :22,50 2:28,70 1 :26,42 1 :22,96 2:01,72
N = 100 CPU 1 :32,66 3 :20,82 1 :41,24 55,96 1 :22,76
CALL 2:00,92 3:48,98 2:10,28 1 :33,30 2:02,38
109
Sie M a r zusammengestellten Beispiele repräsentieren einige wesentliche Aufgabenstellungen des speziellen Matrixeigenwertproblems und ihre Lösung mit Hilfe des Programmsystems MEIWEP. Es sollten die unterschiedlichen Nutzungsmöglichkeiten demonstriert werden, Insbesondere der damit verbundene unterschiedliche Programmieraufwand für den nutzer. Um die Darstellung Uberschaubar zu halten, wurde die Nutzung als Programmpaket nur für sehr einfache Aufgabenstellungen angegeben, well der Aufwand für kompliziertere Aufgaben sprunghaft ansteigt. 9. Quelltextbeispiele Als Quelltextbeispiele wurden die Unterprogramme zur Balancierung und fUr die Inverse Iteration bei komplexer Eigenwertnäherung für reelle nichtsymmetrisohe Matrizen ausgewählt, weil diese zu den Programmen gehören, die wesentlich von den in EISPACK veröffentlichten PORTRANTexten abweichen.
C 1
2
3 4 C
6
SUBROUTINE RBAL(NM,A,X,D,DIAGON,HV) COMMON /STEUER/ N,M1(13),LOW,UPP,M2(14),ANORM,M3(8).SCALE EQUIVALENCE (LOW.K),(UPP,L) REALs4 A(NM,1), X(NK,1), DIAG0N(1), HV(1) REALx8 D(NM,1), DP LOGICAL LOG K = 1 L = N GOTO 6 SPALTEN- UND ZEILENTAUSCH DIAGON(M) = J I» (J .EQ. M) GOTO 4 DO 2 I « 1,L P = A(I,J) A(I,J) = A(I,M) A(I,M) = P DO 3 I « K,N P - A(J,I) A(J,I) - A(M,I) A(M,I) - P IP (LOG) GOTO 9 UNTERSUCHUNG DER ZEILEN AUF ISOLIERTE EV IP (L .EQ. 1) GOTO 24 L - L - 1 DO 8 JJ = 1,L J « L + 1 - JJ DO 7 I - 1,L 110
Sie M a r zusammengestellten Beispiele repräsentieren einige wesentliche Aufgabenstellungen des speziellen Matrixeigenwertproblems und ihre Lösung mit Hilfe des Programmsystems MEIWEP. Es sollten die unterschiedlichen Nutzungsmöglichkeiten demonstriert werden, Insbesondere der damit verbundene unterschiedliche Programmieraufwand für den nutzer. Um die Darstellung Uberschaubar zu halten, wurde die Nutzung als Programmpaket nur für sehr einfache Aufgabenstellungen angegeben, well der Aufwand für kompliziertere Aufgaben sprunghaft ansteigt. 9. Quelltextbeispiele Als Quelltextbeispiele wurden die Unterprogramme zur Balancierung und fUr die Inverse Iteration bei komplexer Eigenwertnäherung für reelle nichtsymmetrisohe Matrizen ausgewählt, weil diese zu den Programmen gehören, die wesentlich von den in EISPACK veröffentlichten PORTRANTexten abweichen.
C 1
2
3 4 C
6
SUBROUTINE RBAL(NM,A,X,D,DIAGON,HV) COMMON /STEUER/ N,M1(13),LOW,UPP,M2(14),ANORM,M3(8).SCALE EQUIVALENCE (LOW.K),(UPP,L) REALs4 A(NM,1), X(NK,1), DIAG0N(1), HV(1) REALx8 D(NM,1), DP LOGICAL LOG K = 1 L = N GOTO 6 SPALTEN- UND ZEILENTAUSCH DIAGON(M) = J I» (J .EQ. M) GOTO 4 DO 2 I « 1,L P = A(I,J) A(I,J) = A(I,M) A(I,M) = P DO 3 I « K,N P - A(J,I) A(J,I) - A(M,I) A(M,I) - P IP (LOG) GOTO 9 UNTERSUCHUNG DER ZEILEN AUF ISOLIERTE EV IP (L .EQ. 1) GOTO 24 L - L - 1 DO 8 JJ = 1,L J « L + 1 - JJ DO 7 I - 1,L 110
7
8 C 9 10
11
12 C
13 14
15
16
IF (I .EQ. J) GOTO 7 IF (A(J,I) .NB. O.O) GOTO 8 CONTINUE U » L LOG - .FALSE. GOTO 1 CONTINUE GOTO 10 UNTERSUCHUNG DER SPALTEN AUF ISOLIERTE EW K ~ K +1 DO 12 J = K,L DO 11 I = K,L IF (I .EQ. J) GOTO 11 IF (A(I,J) .NE. 0.0) GOTO 12 CONTINUS M - K LOG = .TRUE. GOTO 1 CONTINUE BESTIMMUNG DER DIAGONALMATRIX DO 13 I = K,L DIAGON(I) = 1.0 DO 13 J = K,L F = A(I,J) X(I,J) = F x F LOG = .FALSE. DO 16 I = K,L C = 0.0 R = 0.0 DO 15 J = K,L IF (J .EQ. I) GOTO 15 G » DIAGON(J) C = C + X(J,I)/G R = R + 1(1,J) x G CONTINUE F = SQRT(R/C) G = DIAGON(I) DIAGON(I) = F F n C X F + R/F G • C x G + R/G IF (F .LT. 0.95 x G) LOG = .TRUE. IF (LOG) GOTO 14 DO 17 I = 1,K 111
17 H V ( I ) - 1 . 0 DO 18 I - L , N 18 H 7 ( I ) - 1 . 0 DO 19 I - K , L P - SQRT( DIAGON(I) DIAOOr(I) - P 0
C
)
19 H T ( I ) = P BALANCIERUNG DO 20 J J - 1 , N J » N + 1 - JJ DP « HST(J) DO 20 I I = 1 ,N I - N + 1 - II 20 D ( I , J ) = A ( I , J ) * DP/HV(I) BERECHNUNG DER NORM P - 0.0 G « 0.0 DO 2 2 I = K , L C - 0.0 R » 0.0 DO 21 J =• K , L C = 0 + DABS( D ( J , 1 ) ) 21 R = R + DABS( D ( I , J ) ) IP (C .GT. P) F = C 22 I P (R .GT. G) G = R ANORM = SQRKP x G)
C
SKALIERUNG ? - 1PEX( ANORM) ANORM » ANORM x P SCALE » 1.DO/P DP » P DO 23 I = 1 f N DO 23 J = 1 , N 23 D ( I , J ) - D ( I , J ) x DP 24 RETURN BND SUBROUTINE INVITC( HM,H,R,EW,DEP,Z,I1,QC,QS,ALP) REALx4 H ( N M , 1 ) , R ( N M , 1 ) , QC(1) , Q S ( 1 ) , ALP(1) RBALs8 B,B1,RN,RN1,SI,SI1,SKR,SKI,T(2),CR,CI,CD(2) C0KPLEXX16 C, SK COUPLEZ I C D , 11 ( 1 ) , EW, EW1 EQUIVALENCE
CSK.SKR.TCO).CSKI.TC2)),CC,CR,CD),(CI,CD(2)) 112
DATA. 30H / Z 3B 100 000 / 00MH0H /STEUER/ N.LEER1(12),IP,LEER2(2),IERR,LEER3(12).ANORM, 1 LBER4C6),GEN2 B - 1.00
14 12 2
1
SIS - GEN2 k GEN2 OALL QB2DC(HM,H,R,BW,QS,QC,ALP) DO 14 I » 1|I I? (R(I,I) .BQ. 0.0) R ( I , I ) = SCH K » 0 CONTINUE DO 2 1 = 1 , » 11(1) - X(I) HN - CABS(EW) + ANORM RN « RN K RN CONTINUE
4 CALL Q11ULC(X,QS,QC,ALF) CALL INMOC(NM,R,Z,TN) K » K + 1 IF (K .GT. 100) GOTO 20 B1 = B SK - ( 0 . 0 , 0 . 0 ) B - 0.0 DO 3 I » 1,1 C"» X ( I ) B = B + CR x CR + CI x CI SK = SK + DCONJO(C) x Z1(I) 3 XI (I) = 2(1) RN1 = RN RN a TN x TN x B1/B SI • 1.D0 - (SKR xx 2 + SKI xx 2)/B1/B EW1 » EW + TN x SK/B IP (SI ,GE. 1.D-3) GOTO 4 SI = SI » RN IF (SI .LB. SIK) GOTO 9 IF (RN .GT. RN1 x 0.95) GOTO 5 GOTO 1 5 CONTINUE DBF - DSQRT(DABS(SI)) EW « B*1 RETURN END
113
SUBROUTINE QRZ.UC (JW,H,R,EW,S,0,ALF) REAL H(NM,1), R(NM,1), 3(1), C(1ì, MACHBP REALx8 SS,CC,T,SD,BHD,HDR,HDI,HDD(2),EPS,CZR,CZI,CZZ(2) COMPLEX ALP(1), EW COMPLEX*16 HO, ALPA, CZ EQUIVALENCE (HD,HDD),(HDR.HDD),(HDI,HDD(2)), 1 (CZR,CZZ.CZ),(CZZ(2))CZI) COMMON /STEUEB/ N.LEER1(29),ANORM, LEER2(5).MACHEP EPS = MACHEP x ANORM N1 = N - 1 DO 1 I = 2,N 1 ALP(I) = CMPLX(H(1,I),0.0) ALP(1) = H(1,1) - EW DO 2 K = 1 ,N1 K1 = K + 1 HD = ALP(K) SD = H(K1,K)
3
4
5
BHD = HDR x HDR + HDI x HDI T = DSQRT(BHD + SD » SD) BHD = DSQRT(BHD) IP (DABS(SD) .LT. EPS) GOTO 3 IP (BHD .LT. EPS) GOTO 4 SS = DABS(SD)/T CC - BHD/T ALFA - - ALPA T » - T GOTO 5 SS = 0 .DO CC = 1.D0 ALPA = DCONJG(HD/BHD) T = BHD GOTO 5 CC = O.DO SS = 1.DO ALPA =» (1.DO,O.DO) T = SD S(K) = SS C(,K) = CC ALP(K) = ALPA R(K,K) = T DO 6 I = K1,N SD = H(K1,1) CZ = ALPA * ALP(I) 114
HSR = CC x CZR + SS * SD HDI = CC x CZI CZR = -SS * CZR + CC x SD CZI = -SS x CZI IP (I .GT. K1) GOTO 7 HD = HD - SS s EW CZ = CZ - CC * EW R(K,I) = HDR 7 R(I,K) = HDI IP (DABS(CZR) .LT. 1.D-20) CZR = O.DO IP (DABS(CZI) .LT. 1.D-20) CZI = O.DO 6 ALP(I) = CZ 2 CONTINUE HD = ALP(N) BHD •= HDR x HZR + HDI x HDI BHC » DSQRT(BHD) R(N,N) = BHD ALP(N) = DCMPLX(HDR/BHD, -HDI/BHD) RETURN BHD SUBROUTINE QMULC (X,S,C,ALF) COMMON /STEUER/ N COMPLEX 1(1), ALP(1) REAL S(1), C(1) REYLx8 T(2),BR,BI COMPLEXxl6 A, B EQUIVALENCE (B,BR,T(1)), (BI,T(2)) N1 = N - 1 B - 1(1) DO 1 I •» 1.N1 CC - C(I) SS - S(I) A - X(I+1) B » B x ALP(I) 1(1) a CC x B + SS x A B - -SS x B + CC x A IP (DABS(BR) .LT. 1.D-20) BR = O.DO 1 IP (DABS(BI) .LT. 1.D-20) BI = O.DO X(N) - B x ALF(N) RETURN END 115
SUBROUTINE REAL
INMOC (NM,R,X,EM)
R(NIJ,1)
COMPLEX
1(1)
COMMON /STEUER/ COMPLEZSL6 REAL*8
N
S,C
SR, SI, SD(2)
EQUIVALENCE
(S,SR), (S,SD),
(SI,SD(2))
EM = 1 .
DO
1
I = 1,N
IP
(R(I,I)
.EQ.
0.)
GOTO
2
1 CONTINUE NE = N GOTO
3
2 NE = I - 1 DO
4
J = I,N
4 X(J) =
(0.,0.)
IP
(NE
DO
5
.EQ.
0)
GOTO
10
J = 1,NE
5 x ( J ) = CI:PLX(-R(J,I),-R(I,J)) 3 NE1 = NE + 1 DO
6
KK = 1,NE
K = NE1 - KK K1 = K + 1 S = (0.DO,0.DO) IP
(K1
DO
8
.GT.
NE)
GOTO
7
I = K1,NE
8
C = CIIPLX(R(K,I),R(I,K)) S = S + C s X(I)
7
S = (X(K) * EM - S)/R(K,K) UL1 = DABS(SR) + DABS (SI) IP
(U1.1
UM
= UPEX(UM)
.LE.
1.)
GOTO
9
S = S * UM EM = ELI H UM DO 11 I = K1,NE X(I) = X(I) x UM
11 9
X(K) = S
6 CONTINUE 10 IP DO 12 IP
(NE 12
.LT.
N)
X(NE+1) = EM
I = 1,N
(REAL(X(I))nx2 + AIMAG(X(I))**2 .LT. 1.E-20)
RETURN
END 116
X(I) = (0.,0.)
10» Bemerkungen zu weiteren Entwicklungen Das vorliegende Heft gibt den aktuellen Stand der Realisierung und der Nutzungsmöglichkeiten dea Prograramsystems MEIWEP wieder. Der Aufbau und die Struktur dea Programmsystems sind so angelegt, daß as Jederzeit an neue Erkenntnisse oder zusätzliche Hutzerforderungen angepaßt werden kann, ohne daß ein unverhältnismäßig hoher Aufwand entsteht. Es ist vorgesehen, für die Aufgabenstellung "Berechnung aller Eigenwerte, deren Realtoil größer oder kleiner als eine gegebene reelle Zahl ist" noch oine spezielle Lösungsvariante in des Programmsystem einzufügen. Spezielle Algorithmen für Bandmatrizen in das Programmsystem aufzunehmen und ein tibergang zur Lösung allgemeiner Eigenwertproblerae im Rahmen des Programmaystems für Matrizen mittlerer Dimension ist für die nächste Zeit nicht geplant, wie dies in EISPACK 20 enthalten ist. An der Sektion Ilathematik der Technischen Hochschule Karl-Marx-Stadt wird zur Zeit ein Programmsystem entwickelt, das der Lösung von Matrixeigenwertproblemen mit spezieller Aufgabenstellung dienen soll. Es bearbeitet großdimensionierte schwach besotzte Matrizen, die sich beispielsweise bei der Lösung dynamischer Probleme der Festkörpermechanik mit Hilfe der Methode der Finiten Elemente ergeben. Für solche symmetrischen Matrizen wird das allgemeine liigenwertproblem gelöst, und zwar in der V / e i s e , daß die k kleinsten Eigenwerte und die zugehörigen Eigenvektoren berechnet werden. Die dabei verwendeten Verfahren sind Simultane Vektoriteration, Simultane Koordinatenrelaxation und eine neue Variante des Gradientenverfahrens zur simultanen Berechnung von kleinsten Eigenwerten. Besonderes Augenmerk wird auf eine günstige Speicherform der Matrizen gelegt, um möglichst niedrige Datenübertragungszeiten zwischen externem und internem Speicher zu erreichen. Diese günstige Speicherform wird selbständig vom ProgrammSystem, In Abhängigkeit von der gegebenen Struktur der Matrizen, hergestellt. An die Speicherform des Nutzers werden kein« besonderen Forderungen gestellt. Dia oben genannten Verfahren zur Berechnung von k kleinsten bzw. größten Eigenwerten eines allgemeinen Eigenwertproblema (A - A B)x = 0, wobei A und B symmetrische Matrizen sind, von denen eine positiv definit Ist, liegen bereits vor und können genutzt werden.
117
Literaturverzeichnis
[2] [3] [4]
[ö]
[7]
[ö]
£9]
[10]
[12] [13J
([14]
Döhler, B.t Die Berechnung von Eigenvektoren zu dicht benachbarten Eigenwerten symmetrischer Matrizen, in 4 , 3 - 16« Francis, J.G.F.: The QR-Transformation, Part I, Comp.J. 4(1961), 265 - 271, Part II, Comp.J. 4(1962) 332 - 345. Heigl. F.: Neuere Entwicklungen in der Geometrie der Polynome, Jahresbericht der DhV 65(1962) 97 - 142. Lang, W.j Matrizeneigenwertproblem, Wies. Schriftenreihe der TH Karl-Marx-Stadt (1979). Lang, W.t Möglichkeiten der automatisierten Lösung des katrixeigenwertproblems, Dissertation B an der IH Karl-I,iarxStadt (1979). Lang, Vi., Meyer, A. u. a.: Dokumentation zum Programmsystem MEItfEP, Teil 1, Dokumentation des Gesamtsystems (1978), Teil 2, Dokumentation der Moduln (internes Material), (1979). Meyer, A.i Einschließung des Spektrums und die Berechnung einiger Eigenwerte und Eigenvektoren beliebiger quadratischer Matrizen, Dissertation A an der TH Karl-Marx-Stadt (1979). Meyer, A.t Fehlerabschätzungen und Fehlerbehandlung im Prograinmsystem MEIWEP, WBZ der TUD, Math.Kyb. und Rechentechn., Vorträge zur Math. Verfahrenstechnik, Heft 36 (1979), 49 - 53. Murnaghan, F.D., Winter, A.j A canonical form for real matrices under orthogonal transformation, Proc.NAS 17( ), 417 - 420. Osborne, E.E.i On pre-conditioning of matrices, J.Ass.Compl.Mach. 7(1960), 338 - 345. Parlett, B.N., Reinsch, C.» Balancing a Matrix for Calculation of Eigenvalues and Eigenvektors, Num. Math. 13(1969), 293 - 304. Poole, G., Boullion, Th.: A Survey on M-Matrices, SIAM Reviews 16, Nr. 4(1974), 419 - 427. Ris, F.N.t Computing Rigorous Upper Bounds of Spectral Radii of Non Negativ Matrices, Inform. Proc. 74, North-Holland Publ.Comp. (1974), 532 - 536. Skurt, L.i Ein möglichst schnelles Verfahren zur Berechnung des Spektralradius einer nichtnegativen Matrix, Diplomarbeit an der Sektion Mathematik der TH Karl-uarx-Stadt, (1978). 118
£15] Smith, B.T., Boyle, J.k. u. a.» Liatrix Eigensystem Routines EISPACK Guide, Lecture Notes in Comp.Science 6, Springer-Verlag, Berlin-Heidelberg-NewYork (1974). (j6] Sonuner, J.-P.« Eine Modifikation des QR-Algorithmus zur Verbesserung vorgegebener Eigenwertnäherungen bei allgemeinen reellen quadratischen ltiatrizen, Dissertation A an der TH Karl-Marx-Stadt (1979). fi7] BoeBO^HH, B.B. .BOJIOBKI, B.M.: PeaeHHe nonHOfl npodneiiM coÖCTBeHHUx SHaqeHHfi M i m C K M M e T p M ^ H O a T p e X 3 H a r O H a j I b H O 0 M6T0.3&M ÖMCeKUHH K OÖpftTHOfl M T e p a w n ,
MaTpHUU
BHI. NaT.
H
üporp. 22 flö} Wilkinson, J.H.s The algebraic Eigenvalue Problem, Claredon Press, Oxford (1965). (39] Wilkinson, J.H., Reinsch, C.t Handbook for automatic Computation, Vol. II, Linear Algebra, Springer-Verlag Berlin-Heidelberg-NewYork (1971). [20] Garbow, B.S., Boyle, I.M. u. a.: Matrix Eigensystem RoutinesEISPACK Guide Extension, Lecture Notes in Comp. Science 51, Springer-Verlag Berlin-Heidelberg-NewYork, (1977).
119
A. BERBD DÖH1ER Die Berechnung von Eigenvektoren zu dicht benachbarten Eigenwerten symmetrischer Matrizen
0 . Einleitung Für eine symmetrische Matrix sollen zu einer gegebenen Menge von Eigen» werten die zugehörigen Eigenvektoren berechnet werden. Eines der e f f e k tivsten und am häufigsten angewendeten Verfahren zur Lösung d i e s e r Aufgabe i s t die inverse Vektoriteration, die im ersten Absohnitt kurz dargelegt wird. Liegen r e l a t i v genaue Eigenwertnäherungen zu gut getrennten Eigenwerten vor, geniigen selbst bei e i n e r schlecht gewählten Anfangsnäherung f ü r den Eigenvektor wenige I t e r a t i o n s s c h r i t t e dieses Verfahrens, um eine hinreichend gute Elgenvektornäherung zu erhalten. Bei dicht benachbarten Eigenwerten kann dagegen durch eine günstige Wahl des Startvektors die Im allgemeinen ansteigende I t e r a t i o n s z a h l wesentl i c h verringert werden. Das Verfahren der Pseudostöriteration nach GAWURIN [ 2 , 3 ] b i e t e t die Möglichkeit, den Eigenvektor eines selbstadjungierten Operators und den zugehörigen Eigenwert zu berechnen, wenn f ü r den gesuchten Eigenvektor eine Näherung bekannt i s t . LANG [4] gab eine Modifikation des Verfahrens der Pseudostöriteration an, die eine g l e i c h z e i t i g e Berechnung zweier dicht benachbarter Eigenwerte und der zugehörigen Eigenvektoren g e s t a t t e t . Im zweiten Abschnitt wird dieses Verfahren auf die inverse Vektoriteration übertragen. Im d r i t t e n Abschnitt wird eine weitere Möglichkeit der g l e i c h z e i t i g e n Berechnung dicht benachbarter Eigenwerte fiir die inverse V e k t o r i t e r a tion angegeben, die auf der Orthogonalisierung beruht. Die durchgeführten Abschätzungen zur Konvergenz beider Verfahren zeigen ihre gute Verwendbarkeit bei dicht benachbarten Eigenwerten, wobei die orthogonale Abspaltung gegenüber dem zur Pseudostöriteration analogen Verfahren überlegen i s t . 1.
Inverse Vektoriteration
1 . 1 . Bezeichnungen Im n-dimensionalen r e e l l e n Hilbertraum R n wird das Eigenwertproblem A p »
(1) 123
mit der symmetrischen Matrix A b e t r a c h t e t . Dann e x i s t i e r e n n r e e l l e Eigenwerte A 1 f A 2 , . . . , A n mit n l i n e a r unabhängigen Eigenvektoren ' F 2 ' " " ¥ > n ' f U r d i e b e i e t ] tspreohender Mörmierung g l i t t (Pl*f)j)
a
h ¡ * ^
=
1
'*"'
*
n
Im weiteren wird das Orthonormalsystem der Eigenvektoren a l s Basis im Vektorraum Rn verwendet, so daß sich jedes Element x € R n in der Form n
darstellen l ä ß t . Die Dorm i s t bestimmt durch n 2 llxN = ^ ^ o^ 2 und das Skalarprodukt des Vektors x mit dem Vektor y , der bezüglich der angegebenen Basis die Koordinaten b e s i t z t , durch die Formel («*> - £
oc ,
Zur Kbnvergenzuntersuohung der I t e r a t i o n s f o l g e von Eigenvektornäherungen werden die Orthoprojektoren P^ auf die zuyj^ gehörigen Elgenunterräume verwendet, so daß f ü r den Vektor x g i l t : llPjxil = Äoc
• loe
, 1 « 1,...,n .
Für einen Eigenwert der Matrix A i s t eine genügend gute Eigenwertnäherung fi gegeben. Die Eigenwerte seien so numeriert, daß fi eine Näherung f ü r A.j I s t und die weiteren Eigenwerte entsprechend dem Abstand zu Aj geordnet sind, das heißt I X i - Jl, |
- A.,1
für i = 1 , . . . , n - 1
g i l t . Im folgenden wird vorausgesetzt, daß A., und A2 einfache Eigenwerte sind, d. h. 0 Stellung (6) für xQ ergibt sich x
k
a
' * p T k f i + hz^z+
r
kmit
r
k =
-
.
Die Norm des Vektors r k kann wie folgt nach oben abgeschätzt werden:
125
n
p
1
K «
i
2k)
^ " r o«P3 k »
k
°
1
'2—'
(7)
Für die Normen der Projektionen P^, Pg, Q von x^ gilt: l/P1xkll = IcWpf,
»P2V = Ißhf , 1
*
Kr0ll p f , k = 1,2,...
(8)
Damit kann die Konvergenz der Folge {xjJ gegen den Eigenvaktor duroh die Abschätzungen
üfSd
IlV^ii
=
IL q * „ 0(q k) lOf,
(9)
q
k
3
¡nrni« W »1 und des zugehörigen Eigenvektors -fy Es sei der normierte Vektor x. gegeben, der den Eigenvektor 1 genüa J gend gut approximiert, so daO der Rayleighquotient p = (Ax,x) eine gute Näherung für den Eigenwert A. darstellt. Als Maß für A die Genau!®» keit der Eigenvektornäherung x kann der Defekt e a Ax - fix verwendet werden, der orthogonal zu z ist, d. h. (ff,x) = 0. Entsprechend dem m-Schrlttverfahren von GAWURIN ergibt sich nach der Formel m x' - x - ^ ^ V 1 " 1 ^ (11) eine verbesserte Näherung für den Eigenvektor Dabei ist v die betragskleinste reelle Lösung der algebraischen Gleichung m t + ^
tl-1(uiter) - 0
.
Die Vektoren u^ werden sukzessiv aus den Gleiohungssysteinen Bu i 3 "1-1 » (»i»*) = Oi i - 1,...,m
(12)
(13)
mit u Q • 6" berechnet, wobei die symmetrische Kbeffizientenmatrix B durch B - C - xff® - ffxT mit
C = A - fxl
definiert Ist. Im einfachsten Fall ergibt sich für m = 1 nach dem Einschrittverfahren als neue Näherung der Vektor y' • x - u 1
.
(14)
Das Zweisohrlttverfahren liefert die verbesserte Eigerrvektomäherung z' - x - u., - \>u2 127
,
(15)
mit *
= -l+tSpPT
'
(16)
Da dlo Matrix B symmetrisch i s t , g i l t (Ug.e) o Hu1 K2
,und
(u3,£i) - ( u g , ^ )
,
so d8ß zur Bestimmung des Parameters v> der Formel (15) die quadratische Gleichung ( u g . u ^ t 2 + (1+||u1l| 2 ) t + (u1t6r) = 0 verwendet werden kann. Sind ^ und tt, m l' t l ^ l gen dieser quadratischen Gleiohung, i s t z " o i • u1 -
die zwei Lösun-
2 g i l t 1+lluJ2 (u ,t0 \>2 * v 2 - - (,, j, \ + ,9
•
(17)
LAHG [4] verwendete die Werte v 2 und v^ erstmals zur Berechnung einer Eigenvektornäherung fUr den Eigenvektor f 2 zum benachbarten Eigenwert A 2 , und DÖHLER [ l ] bewies die Konvergenz der auf v>2 bzw. V>2 beruhenden Folgen der Eigenvektornäherungen gegen f 2 • Im dritten Abschnitt soll die Genauigkeit des Vektors B m X - U1 -
Vgl^
als Elgenvektomäherung für "f>2 abgeschätzt werden.
128
(18)
2.2. Beziehungen zur inversen Vektoriteration Bei der numerischen Lösung des Eigenwertproblems f ü r eine symmetrische Matrix A wird im allgemeinen zunächst eine Transformation auf T r i d i a gonalgestalt durchgeführt. Sollen vorgegebene Eigenpaarnäherungen x und u mit einem Iterationsachritt der Pseudostöriteration verbessert werden, muß die v o l l b e s e t z t e Koeffizientenmatrix B berechnet und das entstehende Gleichungssystem gelöst werden, ohne die besondere Gestalt von A ausnutzen zu können. Bei der inversen Vektoriteration e n t f ä l l t demgegenüber die Berechnung der Koeffizientenmatrix, und die T r i d i a gonalgestalt von C verringert entscheidend den Aufwand f ü r die Lösung des Gleichungssystems. Es kann jedoch l e i c h t gezeigt werden, daß die Berechnung der Vektoren u^ und Ug auf die Lösung zweier Gleichungssysteme mit der Koeffizientenmatrix C zurüokgeführt werden kann. Der Vektor x wird durch zwei Iterationsschritte der inversen Vektori t e r a t i o n verbessert, indem die zwei Gleichungssysteme Cy = x
und
Cz = y
gelöst werden. Unter Verwendung der Abkürzungen a = ( x , y ) , b = ( x , z ) = ||yl|2 g i l t zwischen den Vektoren u1 bzw. Zusammenhang u = x - iy
,u
und
c = (y,z)
(19)
und den Vektoren x, y , z der
=-^y-lz.
(20)
Werden in den Berechnungsvorschriften (14) und (15) f ü r die Eigenvektornäherungen y ' und z 1 die Vektoren u^ und u2 durch diese Ausdrücke e r s e t z t , ergibt sich 1
y ' = -Ly
und
1
z ' = £z .
Das bedeutet, daß ein Iterationsschritt des Einschrittverfahrens bzw. des Zweischrittverfahrens von GAWURM zur Verbesserung des Vektors x einem bzw. zwei Iterationsschritten der inversen Vektoriteration mit der Matrix C = A - j u l äquivalent i s t . Die Formeln (20) f ü r die Vektoren u1 und ermöglichen e r s t , die Genauigkeit des Vektors s als Eigenvektornäherung f ü r abzuschätzen, indem er ebenfalls auf Vektoren der inversen Vektoriteration zurück129
geführt wird. Für den Parameter
Vg ergibt sich unter Verwendung der
Abkürzungen (19) die Darstellung
so daß die Formel ( 1 8 ) für den Vektor s in die Berechnungsvorschrift ~ s =
2 2ac-b ,, ac „ K Y K z a(ac-b ) b(ac-b )
Ubergeht.
3.
Elgenvektornäherung zum benachbarten Eigenwert
3.1. Genauigkeit des Vektors B der Pseudostöriteration Für die Abschätzung der Genauigkeit sollen die Projektoren P ^ P 2 und Q auf den Vektor s angswendet werden. Da die Quotienten der Normen dieser Projektionen ausschlaggebend für die Konvergenz sind, kann anstelle des Vektors s auch der parallele Vektor s» = (2abc-b3)y - a 2 cz
(21)
betrachtet werden, bei dem die Bedingung llxll = 1 nicht notwendig ist, da die Normierung des Vektors x der Multiplikation des Vektors s' mit einer reellen Zahl entspricht. Aus dem Vektor x mit der Darstellung
x - «fl + $ f 2 +
(22)
wird der Rayleighquotient ß. berechnet, der wie die vorgegebene Eigenwertnäherung p. die Bedingung (3) erfüllen soll. Damit dies gesichert ist, wird vorausgesetzt, daß der Vektor x durch k Iterationssohritte der inversen Vektoriteration mit der Matrix A -yul aus dem Startvektor xQ berechnet wurde. Für die Eigenvektornäherung x gilt dann entsprechend den Konvergenzaussagen (9) und (10)
130
In Analogie zu den Beziehungen (4) und (5) werden die mit u gebildeten Größen mit p j ( i = 1 n), § bzw. £ bezeichnet. Usch der Darstellung (22) für den Vektor x g i l t für das Skalarprodukt a = ( x , y ) i a =
139
a^1
ablasbar I s t . Wagen hierbei möglicherweise auftretenden Instabilitäten muß diese Transformation mit httherer Genauigkeit durchgeführt werden, um zu garantleren, daß die bereohneten Koeffizienten wenigstens Im Bahnten der elnfaohen Genauigkeit rlohtlg sind. n Somit I s t j e t z t das Polynom f ( z ) ^ a^z* , (a B - 1) gegeben, dessen Nullstellenanzahl Im Einheitskreis P zu bestimmen I s t . Hierzu e x i s t i e r t das Nullstellenzählverfabren von COHN (vgl.HEIGL [¿]). Bs besteht aus maximal (n-1) Reduktionssobritten, wobei jeweils der Grad des Polynoms um mindestens 1 erniedrigt wird. Bs s o l l hier der erste Reduktionssohrltt von f ( z ) zum Polynom n-1 bizi g(z) = lOÖ besohrleben werden. Hierzu s e i f * ( z ) das Polynom n f*(z) = ^ äjz 1 1 " 1 . PaüJLt
l«nl ^(A), wobei
y(A) der Spektralradiua
von A ist. (2) B" 1 existiert und es ist B~ 1 * 0. Wenn B irreduzibel ist, gilt 144
(3) Bs existiert ein Vektor x > 0 , so daß B x > 0 gilt. Für nichtnegative Matrizen gibt es eine Reibe von Aussagen, die hier nach Oantmacher flj und Varga f6] zitiert werden. Satz 1 (Perron-Frobenius)i A 4 0 sei eine irreduzible Matrix. Dann gilt« (1) A hat einen positiven reellen Eigenwert f> haben, d. h.
^A Satz 2i
-
j*
4 0
1 x
i f
0
falls'
Bs sei A » 0 und x £
* o} . dann gilt
(1.2.)
145
Der Beweis dieses Satzes soll hier nicht angeführt werden (s. C5J). PUr den Fall x > 0 gilt (1.2) nach (1.1). Bei x fc 0 muß die Normalform einer reduziblen Matrix [t] betrachtet und untersucht werden, an welohen Stellen die Nullen im Eigenvektor auftreten können. 2. Bere»hp"*»ff des Perron-BigenwerteB 2.1. Inverse Iteration fUr nichtnegative Matrizen Gegeben sei eine nichtnegative Matrix A S 0, eine Näherung x > 0 mit "x"«o " 1 f U r d e n Bigenvektor y> und eine Eigenwertnäherung yu>^(A). Eine bessere obere Schranke ju' für den Eigenwert ^ und eine bessere Näherung x' für den Eigenvektor wird durch Anwendung der inversen Iteration erhalten Ü4j, die durch folgende Iterationsfolge gekennzeichnet seit 1. Zu lösen ist das Gleichungssystem ( fll - A)y - x, 2. ii> m max 1
¿_
(2.1) a
üyi
und
(2.2)
3. x» - -JL . "y'ioo
(2.3)
Als Startwerte werden x (o > « (1 ,...,1)T
und
u 70
n • max ^ a. . i j-1 J
verwendet. Damit wird auf jeden Fall garantiert, daß x^0^ eine Komponente in Richtung des Perron-Vektors besitzt, da der Linkseigenvektor zum Perron-Eigenwert y ebenfalls nichtnegativ ist. Die Berechnung von (2.2) kann wie folgt vereinfacht werden» u» - max ( ru i
xi y
i
)=
x. u - miny— i i
.
(2.4)
Im Laufe der Iteration kann nur an solchen Stellen eine Null in y bzw. x' entstehen, an denen der Perron-Vektor eine besitzt, da yul - A eine M-Matrix und somit regulär mit nichtnegativer Inverser ist. Falls Komponenten von y in der Größenordnung von £ liegen, können sie nach (1.2) weggelassen werden ( 6 sei die Maschinengenauigkeit). Nöda £2] gibt an, daß das beschriebene Verfahren für irreduzible Matrizen superlinear gegen den Perron-Eigenwert konvergiert. Bei reduziblen Matrizen kann die Konvergenzgeschwindigkeit nach Ris linear werden.
146
2.2. Ein Abbruohkriterium für die inverse Iteration Die Folge der oberen Schranken p. ist nach (2.4) monoton fallend, da x 4 0. Stets läßt sich fx als p. = q + 8 mit S> 0 und = ^(A) darstel« len. Dann gilt nach (2.1) (
?
1
" A ) X ' " tkZ
"
Daraus folgt «(ij I - Ajx'll^ *
oc
+ 5" .
(2.5)
Die rechte Seite von (2.5) ist genau dann klein, wenn S
klein und
M a o groß sind. Deshalb werden für die inverse Iteration (2.1) - (2.3) folgende zwei Abbruchkriterien gewählti n 1. 5 i 6 mit p = min J - ^ Z a i d x j U D d x i i 2.
HyP^ £ 1 .
(2.7)
Mit diesem Abbruchkriterium gilt Satz 3»
V/enn fx - ß> £ £, dann ist x > 0 exakte Lösung eines gestörten Gle i ch ungssystems tyul - A + F)x = 0 , und es gilt
bei Vernachlässigung der Rundungsfehler. Das bedeutet, daß das Eigenpaar ( ja., x) das um ]? gestörte Eigenwertproblem exakt löst. Für die in (2.7) erforderliche Norm von y kann eine untere Schranke angegeben werden. Aus - L ^ I U ^ - A ) * ' ! ^ (5' = min ( y ~
^-(S'mit
a^x')/*!
F T folgt, daß die Kriterien (2.6), (2.7) durch werden können.
fx -
^ £ ersetzt
2.3. Ein Gütekriterium fiir die Spektrumsverschiebung Das Gleichungssystem (2.1) wird mittels Gaußalgorithmus gelöst, der in der LR-Faktorisierung der Matrix fJ. - A besteht. Die Anzahl der dabei benötigten Multiplikationen und Divisionen liegt bekanntlich in der Größenordnung von Jj- . Es wäre deshalb wünschenswert, dies 147
niotat In jedem Iteratlonssohrltt zu tun. Eine Möglichkeit besteht darin, unter bestimmten Umständen keine IR-Zerlegung durchzuführen, d. h. mit fester Spektrumsversohlebung zu arbeiten. Sie Anzahl der Multiplikation und Divisionen pro Iteratlonssohrltt wird dabei auf _2 y - erniedrigt. Ftir den F a l l , daß aioh Im betrachteten Iteratlonssohrltt die Spektrumsversohlebung nioht ändert, lautet die Iterationsfolge (2.1) - (2.3) unter Venrendung von (2.4): 1. ( £ l - A) y - x, 2. pi* ~ fi ~
"i« 1
3^»
(2.8) (3* •
- nwx
>"Jd
3. x . - j j f j - ,
(2.9) (2.10)
dabei i s t J i die Eigenwertnäherung mit der die letzte Ifl-Faktorlsierong von jal - A durohgefUhrt wurde. Aus den Formeln (2.8) und (2.10) f o l g t
0 tf £ - yu» < £ - j £ ju - ß
M11& 0 * fi' - fi* £ ji - ß' ,
(2.11)
wobei ji die untere Eigenwertsohranke i s t , die zu ju gehört. Es g i l t nun zu untersuohen, in welohen Fällen sich eine Spektrumsversohlebung lohnen wlrd.Wenn am Anfang der inversen I t e r a t i o n ju - ß und f i - jx' r e l a t i v groß sind, dann i s t zu erwarten, daß die LR-Zerlegung eine genligend hohe Konvergenzverbesserung e r z i e l t . Anderenfalls I s t es bei kleinem ji - yuf unerheblich, ob mit jj. oder mit verschoben wird und die LR-Zerlegung kann eingespart werden. Ein besonderer F a l l t r i t t in den l e t z t e n Iterationsschritten auf: f\ - ß und ju - y u ' sind dann r e l a t i v k l e i n . Die Spektrumsverschiebung wird sich deshalb nur lohnen, wenn der Quotient von ju - ju» und p. - ß nahe 1 l i e g t . Das bedeutet, daß das Verhältnis von )x - yu' zu ju - /? als Gütekriterium f ü r die Spektralversohlebung betrachtet werden kann. Wegen (2.11) wird in der praktischen Realisierung das Kriterium jg Z j l
*
K»
K < 1
oder
* /*
(2.12)
verwendet. Bei auf der EDVA ES 1020 getesteten Beispielen wurden mit K = 0,25 gute Ergebnisse e r z i e l t , d. h. eine durchschnittliche Rechenzeiteinspsrung von 20 % bei Anwendung des Kriteriums (2.12) gegenüber einem Programm, das in Jedem I t e r a t i o n s s c h r i t t die LR-Zerlegung durchführt.
148
Literatur! [1] Gantmacher, P.R., Matrizenrechnung, Teil II, Berlin VEB Deutscher Verlag der Wissenschaften 1959 [2]
Nöda, T., Note on the Computation on the Maximal Eigenvalue of a Non-Negative Irreducible Matrix, Numerische Mathematik, Bd. 7, Nr. 3, September 1970, S. 382 - 386
[3]
Poole, G., Bouillon, Th., A Survey on M-Matrices, Siam Review, Bd. 16, Nr. 4, Oktober 1974, S. 419 - 427
[4] Ris, P.N., Computing Rigorous Upper Bounds of the Spektral Radii of Non-Negative Matrices, Information Processing 74, North-Holland Publishing Company 1974, S. 532 - 536 [5]
Skurt, L., Ein möglichst sohnelles Verfahren zur Berechnung des Spektralradius• einer nlohtnegativen Matrix, Diplomarbeit, TH Karl-Marx-Stadt 1978
[6] Varga, R.S., Matrix Iterative Analysis, 2. Aufl., Englewood Cliffe, New Jerseys Prentice-Hall, Inc. 1963
149
D.
Johann-Peter Sommer
Eine Modifikation des QR-Alqorithnms zur Verbesserung vorgegebener Eigenwertnäherungen bei allgemeinen reellen Matrizen 1. Der QR-Algorithmua nach Francis Zur Berechnung des vollständigen Spektrums allgemeiner reeller Matrizen hat sich heute der QjR-Algorithmus im wesentlichen durchgesetzt. Ihm liegt folgendes Prinzip zugrunde: Ausgehend von der gegebenen quadratischen Matrix A = AQ der Ordnung n wird folgender Iterationsprozeß aufgebaut: A
k - akx = W
und
W
+ s
k Z - Ak+1 •
(1)
Hierbei bedeuten I die n-reihige Einheitsmatrix s k eine Verschiebung des Spektrums, Q^ eine orthogonale und R k eine obere Dreiecksmatrix. Die Zerlegung einer Matrix in das Produkt einer orthogonalen und einer oberen Dreiecksmatrix wird vorgenommen, indem diese mit einer geeignet ausgewählten Folge orthogonaler Spiegelungs- oder Drehungsmatrizen von links multipliziert wird, so daß spaltenweise eine obere Dreiecksmatrix entsteht. Ist die Matrix A voll besetzt, erfordert ein Iterationsschritt (1) einen Multiplikationsaufwand von 0(n3)5 besitzt sie obere Hessenberggestalt (a^ j ° 0 für i>;J+1), bleibt diese Struktur während der Iteration unverändert, und ein Iteratlonssehrltt kommt mit 0(n ) Multiplikationen aus. Deshalb wird zuvor meist dl« Hessenbergform erzeugt, wozu sich eine Houaeholder-Transformation [7] empfiehlt. Im weiteren sei die Matrix A stets von oberer Hessenberg« gestalt. Die In Formel (1) vorgenommene Zerlegung von A^ Ist eindeutig bis auf den Faktor diag (+1,...,+1), und die Folge A k orthogonal ähnlicher Matrizen konvergiert, falls alle s^ • 0, linear gegen eine obere Dreiecksmatrix. Dabei erscheinen Im allgemeinen die gesuchten Eigen» werte in geordneter Reihenfolge auf der Diagonale, die betragsgroßen links oben. Zur Verbesserung der Konvergenz benutzt man Verschiebungen des Spektrums, die möglichst nahe bei einem Eigenwert liegen sollen. Wählt man einen der Eigenwerte (oder beim QR-DoppelschrittAlgorithmus beide) der in A k rechts unten angeordneten (2,2)-Teilmatrix (Francis-Verschiebung), erreicht man asymptotisch quadratische Konvergenz bezüglich des Kleinwerdens der Subdiagonalelemente a
n n-1 o d e r an-i n-2* D i e MÖ S llchkei ' ,: » d i e Rechnung nur mit dem führenden Diagonalblock verringerter Dimension fortzusetzen, wird Deflation genannt; sie gestattet eine sukzessive Verringerung des
150
Aufwandes pro Iteration, bis alle Eigenwerte bestimmt sind. Durch das Benutzen von Verschiebungen ist es nicht mehr gesichert, daß die Eigenwerte in betragsmäßig wachsender Folge auf der Diagonalen reohts unten abgespalten werden können. Um komplexe Reohnung bei komplexen Verschiebungen s^ zu vermeiden, koppelte Francis ^2] zwei QR-Schritte mit konjugiertkomplexen Verschiebungen und fUhrte die Transformation implizit aus. Es gilt A1 • s I = Q1R1
und
R1Q1 + s I = A2,
Ag m s I = QgRg
und
RgQ 2 + a I = A^,
A
(2) 3 " Q2TQ1TA1Q1Q2 = Hierbei wird ausgenutzt: Die Transformationsmatrix Q in Gleiohung (2) die A 1 in A^ überführt, ist die gleiche wie der orthogonale Bestandteil in der Zerlegung der Matrix
B = (A1 - s I)(A1 - s I) • Q R. Die erste Spalte von Q ergibt sich aus derjenigen Spiegelung S^, die von links auf die Matrix B angewendet, deren erste Spalte auf obere Dreieoksform bringt. Wird nun A^ mit der Spiegelungsmatrix S 1 orthogonal transformiert, so entsteht eine Matrix mit gestörter Hessenberggestalt, weil die Positionen (3,1), (4,1) und (4,2) mit von Null verschiedenen Elementen besitzt sind. Nach Wllkinson ergibt diejenige Transformationsmatrix T, die die Hessenbergform orthogonal wieder herstellt, mit der Spiegelungsmatrix S 1 von links multipliziert, gerade Q. Die entstandene Hessenbergmatrix ist dann A^. 2. Herangehenswelse bei Vorgabe von Ejgenwertnäherungen Aus dem oben kurz beschriebenen Konvergenzverhalten der QR-Iteration geht unmittelbar hervor, daß es nioht genügt, zum Abspalten eines bestimmten Eigenwertes die Verschiebungen permanent mit der gegebenen Näherung gleichzusetzen und den als nächsten abgespaltenen Eigenwert als den gesuchten zu akzeptieren. Auch wäre nur lineare, also nicht ausreichende Konvergenzgesohwlndigkeit zu erwarten. Bereits dieser Gesichtspunkt rechtfertigt das Vorschalten eines Hilfsalgorithmus zur groben Verbesserung der Eigenwertnäherungen. Als Anlaufrechnung eignet sich ein Newton-Verfahren nicht generell, weil es nioht möglich ist, komplexe Eigenwerte anzunähern, wenn man von reellen Startnäherungen ausgeht. Diesen Nachteil besitzt das Mullersche Parabelverfahren C4] nicht: Ausgehend von der Näherung s Q werden zwei weitere Abszissenwerte s^ und Sg festgelegt. Mit einem Algorithmus zur Berechnung von Determinanten (z. B. bei Hessenberg151
matrizen naoh Hyman [3] > vgl. Absohnitt 4) bestimmt man die Werte Pj o IA-SJII, 1 = 0,1,2. Danach sucbt man die zu s Q n«chstgelegene Nullstelle der Parabel durch (sj, p^), i = 0,1,2; diese ersetzt s 0 > nachdem s 2 3 s^ und s^ = a Q gesetzt wurde. Die Anlaufrechnung endet, sobald sich s Q und s 1 hinreichend wenig unterscheiden. Die Konvergenz ist superlinear. Der numerische Aufwand wird im wesentlichen von der Zahl der erforderlichen Funktionswertbereohnungen bestimmt; pro DeterO minante werden nach dem Hyman -Verfahren 11 /2 + 0(n) Multiplikationen bei reeller Verschiebung und doppelt so viele bei komplexen Werten s^ benötigt. 3. Die Auswirkungen schwaoh koppelnder Subdiagonalelemente auf den Verlauf eines QR-Schrlttes Kleine untere Kebendiagonalelemente, die aber nooh nicht vernaohläasigbar klein sind, beeinflussen entscheidend den Iterationsprozefl, wenn der gesuchte Eigenwert im Blook oberhalb des betreffenden Subdlagonalelements angeordnet ist. Dieser Absohnltt wird die Ursaohe für dieses Verhalten darlegen. Zerfällt die aktuelle Iterierte aufgrund eines vernaohlBssigbar kiel» nen Subdiagonalelemente,
(0
b)'2'0
quadratisch, dim B • k,
so läuft der folgende QR-Sohrltt In den Blttoken B und D separat ab. liegt der gesuohte Eigenwert Im oberen Blook B, so wird dieser duroh QR-Schrltte höchstens an der Position (ktk) abgespalten werden können, jedooh nicht in der reohten unteren Ecke der Matrix A. Ist das Element ^ = £ nooh nicht vernaoblässlgbar klein, so sind in der Matrix
\o :d, die Blöcke B und D schwach gekoppelt. Wird die QR-Zerlegung der Matrizen A - si und A - si durch Multiplikation mit den Drehungsmatrizen Q1T,...,Q_ .,T bzw. Q-,T,..., . 1
(4)
gelten und während des folgenden QR-Schrittes die "schwache Kopplung" Uberwunden werden können. Es i s t aber auch möglich, daß ein größenordnungsmäßiger Abfall in der Folge der Hauptminoren £|A - s l l j } nicht wie in Relation (4) von iak-1 zu i=k, sondern bereits früher e i n t r i t t . Dann kann der gesuchte Eigenwert trotz genauester Eigenwertnäherung als Verschiebung nicht in den unteren Blook Ubertreten. Diese Situation kommt selten vor, sie muß aber unbedingt berücksichtigt werden, um nloht einen falschen Eigenwert als den gesuchten anzusehen. In einem solohen Fall sind so lange (In beiden Blöoken fast unabhängig ablaufende) QR-Schritte auszuführen, bis die Relation (4) e r f ü l l t i s t . Dazu genügt Im allgemeinen bereits eis Sohritt, weil sloh duroh die QR-Transformationen jede Zelle und jede Spalte der neuen Iterlerten als Linearkombination von Zellen und Spalten der alten ergibt und diese Umordnung wesentliche Änderungen der führenden Bauptmlnoren zur Folge hat. Selbstverständlich mQssen geeignete Tests die Abspaltung des richtigen Eigenwertes Uberwaohen. 4. Das Erkennen schwacher Kopplungen Alle Tests zum Erkennen sohwaoher Kopplungen beruhen auf dem Berechnen aufeinanderfolgender Hauptminoren und dem größenordnungsmäßigen Vergleioh. In der Anlaufrechnung des Algorithmus wird die Eigenwertnäherung mit H i l f e des Mullersohen Parabelverfabrens verbessert. Die Detarminantenwerte l i e f e r t der Hymen-Algorithmus. IKn während der QR-Iteration Informationen Uber vorliegende schwaohe Kopplungen zu erhalten, i s t es nioht erforderlich, den r e l a t i v aufwendigen Hyman-Algorlthmus abarbeiten zu müssen. Belm QR—Algorlthmus naoh (1) ergeben sich die Minorquotienten sofort aus Formel ( 3 ) , denn
154
Auch beim impliziten Vorgehen und im Doppelschritt-QR-Algorithmus nach Francis lassen sich ähnliche Beziehungen aufstellen, die mit geringem zusätzlichen Aufwand Vergleichsgrößen filr die Größenordnung der interessierenden Minorquotienten bereitstellen C5I. 5. Der Näherungs-QR-Algorithmus Auf der Grundlage der dargestellten Zusammenhänge beim Abspalten bestimmter Eigenwerte durch QR-Iterationen wurde ein Algorithmus aufges t e l l t und in der Sprache PORTRAN IV für ESER-Rechner implementiert. Für jede der vorgegebenen Näherungen wird nach dem jeweils nächstgelegenen Eigenwert in den Diagonalblöcken der Matrix von rechts unten nach links oben gesucht. Ist die Dimension eines Diagonalblockes k l e i ner oder gleich 2, stehen dessen Eigenwerte direkt bzw. nach Auflösen einer quadratischen Gleichung zur Verfügung, im anderen Fall werden solange QR-Doppelschritte ausgeführt, bis sich mindestens ein Eigenwert abspaltet oder der betreffende Blook in Teilblöcke z e r f ä l l t . In jedem der Diagonalblöcke wird also ein zur Näherung nächstgelegener Eigenwert bestimmt. Aus dieser Menge wird derjenige mit dem geringsten Abstand zur Näherung markiert. Ein einmal markierter Eigenwert geht nicht mehr in den Suchprozeß zu weiteren Näherungen ein. Vor Beginn der QR-Sohritte wird die gegebene Näherung in jedem Block nach dem Mullerschen Parabelverfahren verbessert. Dabei und während der QR-Iteration werden Ausnahmesituationen, die mit dem Erscheinen schwacher- Kopplungen zusammenhängen, automatisch erfaßt und berücksichtigt. Die erforderlichen Entscheidungen werden durch Untersuchung der Minorquotienten während des Hyman-Algorithmus in beiden Diagonalblöcken getroffen. Kann in einer anderen Situation die vorliegende schwache Kopplung nicht übexwunden werden und wurde trotzdem ein Eigenwert abgespalten, so wird die Fortsetzung des QR-Algorithmus im gleichen Block veranlaßt. In der Arbeit wird ausführlich auf mögliche besondere Situationen und die erforderlichen Maßnahmen eingegangen. 6. Zur Leistungsfähigkeit des QR-NäherunKsalgorithmus Die Zuverlässigkeit des qR-Näherungsalgorithmus hängt von der globalen Konvergenz der Anlaufreohnung, des Mullerschen Parabelverfahrens, ab. 155
DarUber sind jedoch aus der L i t e r a t u r ( z . B. Wilkinson [ 6 ] ) keine Aussagen bekannt. Testergebnisse z e i g t e n , daß das Mullerscbe Parabelverfahren bei Abständen zwischen Näherung und Eigenwert von weniger a l s 30 % f a s t immer k o n v e r g i e r t . Je größer der Betrag des Eigenwertes, desto genauer muß die Näherung v o r l i e g e n . Dabei wirkt sich eine Überschätzung des Betrages des Eigenwertes g ü n s t i g e r aus a l s eine Unterschätzung. Wegen der nicht g e n e r e l l gesicherten globalen Konvergenz eignet sich der vorgeschlagene Algorithmus b e i s p i e l s w e i s e n i c h t , grobe Schätzungen des Spektralradius zu verbessern oder andere unscharfe Aussagen Uber die Lage von Eigenwerten zu k o n k r e t i s i e r e n , sondern eher zur exakten Bestimmung von Eigenwerten, zu denen r e l a t i v gute Näherungen gegeben s i n d , sowie zur Untersuchung des E i n f l u s s e s von Störungen in den Matrixelementen auf die Eigenwerte. Um die Leistungsfähigkeit des QR-Näherungflalgorlthmua einschätzen zu können, i s t es notwendig, den Francia-Doppelschritt-QR-Algorithmua der Näherungsvariante gegenüberzustellen. Die Wahl der Pranois-Verschiebung b e r ü c k s i c h t i g t das Abspaltungaprlnzip der Eigenwerte und die Struktur der gegebenen Matrix In optimaler Welse. Die e r s t e n QR-Doppelaohrltte bewirken ein "Ausrichten" der Matrix bezüglich der Anordnung der Eigenwerte. Für das Abspalten der nach dem e r s t e n folgenden Eigenwerte sind deshalb oftmals deutlloh weniger QR-Iterationen e r f o r d e r l i c h . Außerdem v e r r i n g e r t sich der dazu benötigte numerische Aufwand durch Aufspaltung der Matrix in e i n zeln zu verarbeitende Blöcke und durch Deflation r e l a t i v s c h n e l l . Ein auf QR-Iterationen beruhender Näherungsalgorithmus kann diese Zusammenhänge nicht in ähnlicher Weise ausnutzen. Er e r r e i c h t in a l l g e meinen bedeutende Rechenzeiteinsparungen, v e r l i e r t jedoch an E f f e k tivität: 1. je größer die Zahl vorgegebener Näherungen i s t ( s i e s o l l t e nicht größer a l s n/2 . . . n/10 s e i n ) , 2. j e w e i t e r oben l i n k s in der Matrix die gesuchten Eigenwerte angeordnet s i n d , 3. je mehr schwache Kopplungen den Abspaltungsprozeß b e e i n f l u s s e n , 4. j e s t ä r k e r die gegebene LIatrix zur BlockauTspaltung n e i g t , 5. je h ä u f i g e r andere z u s ä t z l i c h e Steuerungsmaßnahmen e i n g e l e i t e t werden müssen. V o r t e i l h a f t wirkt sich beim QR-Näherungsalgorithmus aus, daß auf Grund der Tests bezüglich schwacher Kopplungen die Berechnung a l l e r in der Umgebung der Näherung liegenden Eigenwerte veranlaßt wird. 156
Auf diese Weise erhält man zusätzlich Informationen Uber den Charakter des gesuchten Eigenwertes. Selbstverständlich ließe sich zur Verbesserung vorgegebener Eigenwertnäherungen auch die Methode der inversen Vektoriteration anwenden. Sie besitzt den Vorteil, daß ungünstige Näherungen die Konvergenz nur verschlechtern, i. a. aber nicht in Präge stellen. Nachteilig wirkt sich aus, daß ungünstige Startvektorwahl zur Konvergenz gegen einen anderen als den nächstgelegenen Eigenwert führen kann. Auch erhält man keine Hinweise auf mehrfache oder eng benachbarte Eigenwerte. Die im Zusammenhang mit der Erprobung des Algorithmus durchgeführten Tests bestätigen, daß mit Hilfe von QRNAEH wesentlich effektiver als mit dem Francis-QR-Algorithmus gearbeitet werden kann und daß QR-Näherungsalgorithmua und inverse Vektoriteration zur Verbesserung vorgegebener Eigenwertnäherungen gleichermaßen empfohlen werden können. Die Auswahl sollte abhängig vom Beispiel unter Berücksichtigung der oben genannten Gesichtspunkte erfolgen. Literatur: [1] [2]
[3] [4]
[5]
[6] [7]
Dokumentation zum Programmsystem MEIWEP, Teil 1, Karl-Marx-Stadt, 1978 Francis, J.G.F., The QR-Transformation - an Unitary Analogue to the IB-Transformation, I Comp. J. 4 (1961), 256 - 271, H Comp. J. 4 (1962), 332 - 345 Hyman, M.A., Eigenvalues and Eigenvectors of General Matrices Twelfth National Meeting A.C.M., Houston, Texas, 1957 Muller, D.E., A Method for Solving Algebraic Equations Using an Automatic Computer, Math. Tab. Wash., 10 (1956), 208 - 215 Sommer, J.-P., Eine Modifikation des QR-Jilgorithmus zur Verbesserung vorgegebener Eigenwertnäherungen bei allgemeinen reellen quadratischen Matrizen, Dissertation, eingereicht 1978 in Karl-Marx-Stadt Wilkinson, J.H., The Algebraic Eigenvalue Problem, Claredon Press, Oxford, 1965 Wilkinson, J.H., Reinsch, C., Linear Algebra, Handbook for Automatic Computation, Vol. II, Springer-Verlag Berlin-Heidelberg-New York, 1971
157
LITERATUR
ZUR
OPTIMIERUNG
NICHTLINEARE DISKRETE
AUS
DEH
AKADEMIE-VERLAG
BERLIN
OPTIMIERUNG
Von E. Girlich und n.M. Koualjou 1981. 224 Seiten - gr. 8° - 2 8 , — PI Bestell-Nr. 762 925 2 (2182/6) Dieser Band ist zuei Problemen der diskreten Optimierung gewidmet, der Linearieierung kombinatorischer Optimierungsproblems und der Genauigkeitsanalyse von Greedy-Algorithmen für Maximierungsprobleme von konvexen Funktionen über diskreten Verbänden. Erstmalig uerden neue Aspekte der diskreten Optimierung, die auf Verbandseigenechaften
aufbauen,
als Zugang zur Analyse ganzzahliger Probleme dargelegt. Die hier dergestellten Resultate besitzen nicht nur theoretische, sondern auch praktische Bedeutung. Dies unterstreichen die Resultate der Autoren zum Problem der optimalen Standardisierung. Das Buch richtet sich an Mathematiker, Uirtschaftsmathematiker, Informatiker, Mitarbeiter von Rechenzentren souie Studenten dieser Fachrichtungen.
DYNAMISCHE AUFGABEN DER DISKRETEN
OPTIMIERUNG
Von K. Richter 1982. Etua 96 Seiten - 6 Abb. - 8° - Etua 2 0 , —
M.
Bestell-Nr. 762 919 9 (6641) Der Autor erläutert Probleme der Modellierung dynemischer Aufgaben, betrachtet verschiedene konkrete dynamische Modelle und untersucht ausführlich die Möglichkeiten der Lösung für dynamische Aufgaben der diskreten Optimierung. Die vorgeschlagenen und an größeren praktischen Modellen erprobten Lösungsverfahren basieren auf zuei Grundprinzipien: den Prinzipien der Konstruktion äquivalenter und dualer Aufgaben. In ihrer Realisierung führen diese Prinzipien zu verschiedenen Dekompositionsverfahren zur exakten bzu. näherungsueisen Lösung, zu Verfahren der impliziten Enumeration, zu Methoden der Bestimmung des kürzesten Ueges und zur diskreten dynamischen Optimierung.
Bestellungen durch eine Buchhandlung erbeten
LITERATUR
ZUR
OPTIMIERUNG
AUS
DER
AKADEMIE-VERLAG
BERLIN
Uiaaenechaftliche Taschenbücher, Ralha Ilathematik/Phyaik, Band 166 LINEARE PARHETRISCHE OPTIMIERUNG Von U. Kausaann, K. Lommatzsch, F. Noiitüka 1976. 160 Seiten - 22 Abb. - 47 Tab. - Kl. 8° - 8 , ~ PI Bestall-Nr. 761 776 1 (7166) Aufbauand auf Kanntniaaa der linearen Optimierung
gibt die8es Bändchen
eine Einführung in die Aussagen und Verfahren der parametrischen Optimierung. Mit der bekannten Simplextechnik uerden anhand anschaulicher Beiapiele die Denkweisen und daa Vorgehen bei dar Lösung parametrischer Aufgaben demonstriert.
Uissenschaftliche Taachanbücher, Reihe Ilathematik/Phyaik, Band 198 DISKRETE OPTIMIERUNG Von U. Dück 1977. 139 Seiten - 23 Abb. - 4 Tab. - kl. 8° - 8 , — PI Bestell-Nr. 762 218 1 (7198) Für apezielle diakrete Modellstrukturen der diakreten Optimierung liegen eine Vielzahl von Lö8ungaverfahren vor. Der Autor versucht, diese Lösungsverfahren zu klaaaifizieren und ihren Einsatzbereich souie ihre numerische Leistungsfähigkeit zu erläutern. Neben dieser
Klassifikation
und der numerischen Problematik uerden Lösungsuege für allgemeine und für apezielle Modellstrukturen
OPTIMIERUNG UNTER HEHREREN
beschrieben.
ZIELEN
Von U. Dück 1978. VIII, 104 Seiten - 28 Abb. - 7 Tab. - 8° - 14,50 PI Bestall-Nr. 762 220 2 (6508) Es iat daa Anliegen dea Autors, zunächst allgemein den ProzeO der Zielfindung und Zielauauahl bei ökonomischen Problemstellungen zu beschreiben, ohne dabei nach einem einheitlichen Gesamtziel zu suchen. Neben dem bekannten PARETO-Kompromiß entwickelt er eine neue KompromiQtheorie, die vielfältigen ökonomischen Problemsituationen angepaßt ist. GroOe Beachtung wird den numerischen Methoden der linearen Vektoroptimierung
ge-
schenkt. So begründen die Darlegungen, daß Aufgaben der linearen Vektoroptimierung einen beechtlichen praktikablen Reifegrad erreicht haben.
LITERATUR
ZUR
OPTIMIERUNG
In u n n n t Reihe
AUS
Mathematische
OED
AKADEMIE-VERLAG
Lehrbücher
und
BERLIN
Monographien
Abteilung Lehrbücher, Band XXI THEORIE DER LINEAREN
OPTIMIERUNG
Von F. NoiiCka, J. Guddat, H. Hollatz 1972. Will. 378 Seiten - 17 Abb. - 16 Tab. - gr. 8° - Leinen 5 5 , —
M
Beatell-Nr. 761 4B0 0 (5849) Charakteriati8ch für die Darstellung in diesem Lehrbuch ist eine klare geometrische Konzeption, die sowohl theoretische Sätze und E x i a t e n z a u s sagen als auch die LcSsungsslgorithmen dem Leser leicht
verständlich
macht. Probleme von Dualität, Entartung, Darstellung von Lösungsmengen und Begründung der Simplexmethode, der revidierten und dualen
Simplex-
methode souie der Primal-Dual-Algorithmus sind einige Themen. Gut gewählte Beispiele vervollständigen die methodisch sehr gute
Derstellung.
Abteilung Lehrbücher, Bend 24 THEORIE DER LINEAREN PARAMETRISCHEN
OPTIMIERUNG
Von F. Nofifka, 3. Guddat, H. Hollatz, B. Bank 1974. Ulli. 312 Seiten - 16 Abb. - gr. 8° - Leinen 5 2 , —
M
Bestell-Nr. 761 763 0 (6057) Mit diesem Buch uird erstmalig eine einheitliche Theorie der linearen parametrischen Optimierung mit veränderlicher Zielfunktion und/oder änderlichen rechten Seiten vorgelegt. Neben neun verschiedenen parametrischer Probleme sind entsprechende p r o g r a m m i e r f ä h i g e
ver-
Klassen
Algorith-
men u n t e r s u c h t und dergeetellt. Das Lehrbuch schlieQt mit seiner m e t h o disch a u s g e z e i c h n e t e n Derstellung an das Lehrbuch zur Theorie der linearen Optimierung dereelben Autoren an. Abteilung M o n o g r e p h i e n , Bend 51 ANUENOUNGEN OER LINEAREN PARAMETRISCHEN OPTIMIERUNG Herausgegeben von K. Lommatzsch 1979. 200 Seiten - 11 Abb.- gr. 8° - Leinen 3 8 , —
M
Bestell-Nr. 762 471 8 (6442) Die W i r k s a m k e i t des qualitativ neuen Zugangs zur linearen
parametrischen
Optimierung von F. N o z i c k a u i r d hier dokumentiert en Themen zur Kopplung linearer Optimierungsmodelle zur quadratischen, uie zur
Vektoroptimie-
rung, an der Begründung von Optimierungsverfahren der diskreten uie der quedratischen Optimierung, an Aueeagen aus der optimalen
Steuertheorie.
Es w e r d e n ein p e r e m e t r i s c h e s Modell für des Steiner-Ueber-Problem optimalen Standortes und eine prektische Aufgabe zur Anwendung metrischer Aussagen
angegeben.
eines
para-
Doz. Dr. sc. nat. Wilgard Lang Geboren 1935. Von 1953 bis 1959 Studium der Mathematik an der Technischen Hochschule Dresden. Von 1959 bis 1960 Assistent am Institut für Reine Mathematik der TH Dresden. Von 1961 bis 1969 Systementwickler im VEB Robotron Karl-Marx-Stadt. Von 1969 bis 1972 Aspirant an der Sektion Mathematik der Technischen Hochschule Karl-Marx-Stadt. Promotion (A) 1972. Von 1972 bis 1979 Oberassistent und Forschungsgruppenleiter im Wissenschaftsbereich Numerische Mathematik an der Technischen Hochschule Karl-Marx-Stadt. 1979 Promotion (B). Seit 1979 Dozent für Numerische Mathematik an der TH Karl-Marx-Stadt.
Dipl.-Math. Bernd Döhler Geboren 1954. Studium der Mathematik an der Technischen Hochschule Karl-Marx-Stadt von 1972 bis 1 976. Seit 1 976 Assistent an der Sektion Mathematik der TH Karl-Marx-Stadt.
Dr. rer. nat. Ärnd Meyer Geboren 1952. Von 1970 bis 1974 Studium der Mathematik an der Technischen Hochschule Karl-Marx-Stadt. Forschungsstudium von 1974 bis 1977. Seit 1977 Assistent an der Sektion Mathematik der TH Karl-Marx-Stadt. Promotion (A) 1979.
Dipl.-Math. Lothar Skurt Geboren 1952. Von 1973 bis 1 977 Studium der Mathematik an der Technischen Hochschule Karl-Marx-Stadt. Forschungsstudium von 1977 bis 1980. Seit 1980 Assistent an der Sektion Mathematik der TH Karl-Marx-Stadt.
Dr. rer. nat. Johann-Peter Sommer Geboren 1951. Studium der Mathematik an der Martin-Luther-Universität Halle von 1969 bis 1973. Von 1973 bis 1980 Assistent an der Sektion Mathematik der Technischen Hochschule Karl-Marx-Stadt. Promotion (A) 1 979. Seit 1 980 wissenschaftlicher Mitarbeiter im Ingenieurbüro der VVB Baumwolle.
In dem vorliegenden Heft w i r d ein Programmsystem zur Lösung von Matrizeneigenwertproblemen vorgestellt. Die Basis dieses Programmsystems bildet eine Menge von Moduln, die der Lösung v o n Teilaufgaben dienen und bezüglich ihrer Programmstruktur und der Datenorganisation aufeinander abgestimmt sind. Das Programmsystem ist zur Lösung von vollständigen und teilweisen speziellen Matrizeneigenwertproblemen mittlerer Dimension anwendbar und kann als FORTRAN-Unterprogramm aufgerufen werden. Nach der Analyse der vom Nutzer gegebenen Aufgabenstellung w i r d von der Steuerung des Programmsystems eine Modulfolge aufgebaut, so daß ein Algorithmus entsteht, mit dessen Hilfe die gegebene Aufgabe stabil gelöst w i r d und dazu möglichst w e n i g Rechenzeit benötigt wird. Im Anhang des Heftes werden einige Artikel wiedergegeben, die zu theoretischen Untersuchungen bei der Erarbeitung von Algorithmenvarianten in einem Heft der Wissenschaftlichen Schriftenreihe der TH Karl-Marx-Stadt veröffentlicht wurden.