Direkt zum Inhalt

Lexikon der Mathematik: Jacobi-Rotationsmatrix

eine orthogonale Matrix der Form \begin{eqnarray}{G}_{ij}(\alpha )=I+(\cos \alpha -1)({e}_{i}{e}_{i}^{T}+{e}_{j}{e}_{j}^{T})+\sin \alpha ({e}_{i}{e}_{j}^{T}-{e}_{j}{e}_{i}^{T}),\end{eqnarray} wobei I = (e1e2en) die Einheitsmatrix sei.

Gij(α) ist also von der Gestalt \begin{eqnarray}\left(\begin{array}{lllllllllll}1 & & & & & & & & & & \\ & \ddots & & & & & & & & & \\ & & 1 & & & & & & & & \\ & & & \cos \alpha & & & & \sin \alpha & & & \\ & & & & 1 & & & & & & \\ & & & & & \ddots & & & & & \\ & & & & & & 1 & & & & \\ & & & -\sin \alpha & & & & \cos \alpha & & & \\ & & & & & & & & 1 & & \\ & & & & & & & & & \ddots & \\ & & & & & & & & & & 1\end{array}\right)\end{eqnarray} .\begin{eqnarray}\begin{array}{cc}\uparrow & \uparrow \\ \text{i}-\text{te Spalte} & \text{j}-\text{te Spalte}\end{array}\end{eqnarray}

Geometrisch beschreibt \({G}_{ij}(\alpha )\) eine Drehung um den Winkel α in der von den Einheitsvektoren ei und ej aufgespannten Ebene. Mit Hilfe dieser Matrizen können einzelne Elemente in Vektoren oder Matrizen eliminiert werden.

Multipliziert man einen Vektor y von vorne mit \({G}_{ij}(\alpha )\), so ändern sich in \(x={G}_{ij}(\alpha )y\) nur die Elemente \begin{eqnarray}{x}_{i}=\cos \alpha {y}_{i}+\sin \alpha {y}_{i}\end{eqnarray} und \begin{eqnarray}{x}_{j}=-\sin \alpha {y}_{i}+\cos \alpha {y}_{i},\end{eqnarray} für alle anderen Einträge von x gilt xk = yk.

Den Winkel α kann man nun so wählen, daß in x der j-te Eintrag Null wird: \begin{eqnarray}\cot \alpha =\frac{{y}_{i}}{{y}_{j}}.\end{eqnarray} Da man den Winkel α selbst nicht benötigt, sondern nur cos α und sin α, setzt man sofort \begin{eqnarray}\sin \alpha =\frac{{y}_{j}}{\sqrt{{y}_{i}^{2}+{y}_{j}^{2}}},\quad\cos \alpha =\frac{{y}_{i}}{\sqrt{{y}_{i}^{2}+{y}_{j}^{2}}}.\end{eqnarray} Die tatsächliche Berechnung sollte allerdings anders erfolgen. Bezeichne dazu c = cos α und s = sin α. Ist eine Komponente, etwa yj, betraglich viel größer als die andere, so daß \begin{eqnarray}(|{y}_{i}{|}^{2}+|{y}_{j}{|}^{2})\approx |{y}_{j}{|}^{2},\end{eqnarray}

so wird c ≈ 1, und es geht wesentliche Information verloren. Besser ist, numerisch gesehen, die folgende Berechnung: Falls |yj| ≥ |yi|, so berechne \begin{eqnarray}\tau :=\frac{{y}_{i}}{{y}_{j}},\,\, c:=\frac{1}{\sqrt{1+{\tau }^{2}}},\,\,s:=c\tau, \end{eqnarray} andernfalls berechne \begin{eqnarray}\tau :=\frac{{y}_{j}}{{y}_{i}},\,\,s:=\frac{1}{\sqrt{1+{\tau }^{2}}},\,\,c:=s\tau. \end{eqnarray} Dadurch vermeidet man zugleich auch Exponentenüberlauf.

Führt man eine Ähnlichkeitstransformation einer Matrix A mit einer Matrix \({G}_{ij}(\alpha )\) durch, so ändern sich aufgrund der speziellen Struktur von \({G}_{ij}(\alpha )\) nur die Zeilen und Spalten i und j von A, alle anderen Einträge bleiben unverändert. Je nachdem, ob die Rotation verwendet wird, um ein Element in den vier Kreuzungspunkten dieser Zeilen und Spalten zu eliminieren (d. h. um aii, aij, aji oder ajj zu eliminieren) oder um ein anderes Element in den Zeilen oder Spalten i oder j zu eliminieren, unterscheidet man zwischen einer Jacobi-Rotation und einer Givens-Rotation. Im Jacobi-Verfahren zur Lösung des Eigenwertproblems werden stets Matrixelemente aij und aij, also Elemente im Kreuzungsbereich der veränderten Zeilen und Spalten, eliminiert. Givens-Rotationen verwendet man typischerweise bei der Reduktion einer Matrix A auf obere Hessenberg-Form im Rahmen des QR-Algorithmus; dabei muß darauf geachtet werden daß das zu vernullende Elemente nicht im Kreuzungsbereich der veränderten Zeilen und Spalten liegt.

Die Matrizen Gij können nur zur Elimination einzelner Elemente reeller Vektoren oder Matrizen verwendet werden. Für eine komplexe Variante einer Jacobi- bzw. Givens-Matrix Gij ersetzt man die 4 Elemente, in denen sich Gij von der Einheitsmatrix unterscheidet, also die Teilmatrix \begin{eqnarray}\left(\begin{array}{cc}\cos \alpha & \sin \alpha \\ -\sin \alpha & \cos \alpha \end{array}\right),\end{eqnarray} durch \begin{eqnarray}\left(\begin{array}{cc}c & \bar{s}\\ -s & c\end{array}\right)\end{eqnarray} mit c2 + |s|2 = 1 und \(c\in {\mathbb{R}}\).

Schreiben Sie uns!

Wenn Sie inhaltliche Anmerkungen zu diesem Artikel haben, können Sie die Redaktion per E-Mail informieren. Wir lesen Ihre Zuschrift, bitten jedoch um Verständnis, dass wir nicht jede beantworten können.

  • Die Autoren
- Prof. Dr. Guido Walz

Partnerinhalte

Bitte erlauben Sie Javascript, um die volle Funktionalität von Spektrum.de zu erhalten.