Simultane Vektoriteration: A reell symmetrisch

 
  • Bei der simultanen Vektoriteration wird ähnlich vorgegangen wie beim von Mises-Verfahren: aus einer Folge Xk=AkX0 wird Eigenwertinformation auf dem Weg über Eigenvektorinformation gewonnen. Hier wird nun nicht mit einem einzelnen Vektor iteriert, sondern mit einem linear unabhängigen System von p Vektoren. Die lineare Unabhängigkeit wird dadurch garantiert, dass nicht die hier zunächst angedeutete primitive Variante benutzt wird. Vielmehr wird nach jeder Matrixanwendung das neue Vektorsystem orthogonalisiert und darüber hinaus sogar orthogonal in ein im Sinne der Fehlerabschätzung optimales System transformiert. So findet man unter analogen Voraussetzungen an die Startmatrix die p grössten Eigenwerte von A, wobei die Konvergenzrate sich wie
    lambdap+1/lambdai, i=1,...,p verhält, d.h. z.B., dass der grösste Eigenwert die schnellste Konvergenz aufweist.
  • Hier wird A als reell-symmetrisch vorausgesetzt, es gibt aber auch eine Variante für den allgemeinen Fall.
    Da hier in jedem Schritt ein vollständiges Eigenwertproblem der Dimension p gelöst wird, ist das alles nur sinnvoll wenn n > > p .
  • Bei der Diskretisierung des Schwingungsproblems einer eingespannten Membran, d.h. des Eigenwertproblems des Laplaceoperators, entsteht ein symmetrisches Eigenwertproblem hoher Dimension, von dem einige der kleinsten Eigenwerte gesucht sind. D.h. bei diesem Beispiel setzen wir die Technik der inversen Iteration (Wielandt) ein.
  • Die Eigenvektoren der Matrix geben die Eigenschwingungen (Moden) der Membran wieder.
  • Hier ist das Grundgebiet das Einheitsquadrat. Die Membran ist am Rand eingespannt, d.h. wir haben homogene Dirichletdaten. Aufgrund der Symmetrie des Problems gibt es hier mehrfache Eigenwerte.
  • Zur Berechnung der Eigenwerte wird das Verfahren RITZIT von Rutishauser verwendet. Sind p Eigenwerte gesucht, so iterieren wir p+3 Vektoren simultan. Es wird dabei eine Orthogonalbasis iteriert und in jedem Schritt wiederhergestellt.
    Xk = A Qk-1 bzw. A Xk = Qk-1
    Xk = Uk Rk

    Mit Qk und Uk orthonormiert und Rk als oberer Dreiecksmatrix. Die nächste Basis von Xk wird so gewählt, dass der Fehler im matriziellen Rayleighquotienten minimal ist bezüglich dieser Basis. Im Fall des Membranbeispiels benutzen wir das Wielandtverfahren.
    RkRkT = Vk Dk2VkT Spektralzerlegung
    Qk = Uk Vk
    Für geeignet gewähltes Q0=X0 konvergieren die Diagonalelemente von Dk gegen die dominanten Eigenwerte bzw. gegen die Reziprokwerte der kleinsten Eigenwerte von A und die Spalten von Qk gegen die zugehörigen Eigenvektoren. Da dieser Prozess sehr aufwendig ist, werden bei Rutishauser zusätzliche Matrix-Vektoriterationen ohne Orthogonalisierung sowie konvergenzbeschleunigende Massnahmen durchgeführt. Deshalb ist die hier protokollierte Anzahl von Schritten der ''Lambda-History'' viel kleiner als die Anzahl der durchgeführten Matrix-Vektor-Multiplikationen.
 

Die Eingaben

 
  • Sie können entweder ein eigenes Problem definieren, indem Sie ein Programmstück eingeben, das die Matrix-Vektormultiplikation y = A*x realisiert, (es werden dann die p grössten Eigenwerte bestimmt) oder sich das Beipiel mit der schwingenden Membran anschauen.
  • Im Falle eines selbstdefinierten Problems geben Sie ein:
  • Die Matrix wird hier durch ein Unterprogrammstück repräsentiert, das die Matrixvektormultiplikation y=A*x ausführt. Dazu müssen Sie natürlich A nicht als Matrix speichern, siehe Vorlage im Formular.
  • Die Steuergrössen sind
    1. n die Dimension der Matrix
    2. p die Anzahl der gewünschten Eigenwerte.
    3. steps die maximale Anzahl der Schritte, die dazu aufgewendet werden sollen.
    4. die Abbruchgenauigkeit epsaccept
    5. auf Wunsch auch die Startmatrix X0, die dann intern erst noch orthogonalisiert wird.
  Beispiel schwingende Membran:
 
  • Die Schrittweite hx der Gitterpunkte in x- Richtung als
    nx = 1/hx .
    Die Dimension der Matrix ist dann n = (nx-1)2. Wichtig: 2 <= nx <= 33 ! Es ist hier hy=hx
  • Die Anzahl p der zu berechnenden kleinsten Eigenwerte. Wichtig: 1 <= p <= 10 !
 

Die Ausgaben

 
  • Ausgegeben werden die berechneten Eigenwerte zusammen mit der bekannten relativen Fehlerschranke
    ||A*x - lambda*x||/||A*x||
    und
  • eine Grafik, die die Konvergenz der Eigenwerte über der k-Achse zeigt sowie im Fall der schwingenden Membran
  • ein animiertes Bild der zugehörigen Eigenschwingungen. Im Abstand von einigen Sekunden wird für je einen Eigenwert die Darstellung des Eigenvektors als interpolierte Fläche über dem Einheitsquadrat gezeigt.
 

Fragen ?!

 
  • Entspricht das Resultat den theoretischen Erwartungen?
  • wie hängt die Genauigkeit der Eigenwerte von der Diskretisierung ab ? Wie gut werden die Grundschwingungen wiedergegeben ?
 

Das Eingabeformular

 
Back to the top!

09.01.2009