From ddf2fcbd36ab14399f169fa5874e29a03fc7b84d Mon Sep 17 00:00:00 2001 From: Manuel Thalmann Date: Wed, 11 Jan 2023 04:02:27 +0100 Subject: [PATCH] Add summary about $QR$-decomposition --- .../ExpandHouseholder.png | Bin 0 -> 3190 bytes .../Zusammenfassung.md | 166 ++++++++++++++++++ 2 files changed, 166 insertions(+) create mode 100644 Notes/Semester 3/HM1 - Höhere Mathematik/ExpandHouseholder.png diff --git a/Notes/Semester 3/HM1 - Höhere Mathematik/ExpandHouseholder.png b/Notes/Semester 3/HM1 - Höhere Mathematik/ExpandHouseholder.png new file mode 100644 index 0000000000000000000000000000000000000000..a952456be507c4dd014419ec47c3fa7288e42697 GIT binary patch literal 3190 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 + +***Orthogonal-Matrix:*** + +Eine Matrix $Q$ ist orthogonal, wenn folgendes gilt: + +$$Q^T \cdot Q = I_n$$ + +($x^T$ steht hierbei für eine **T**ransformation) + + + +#### Housholder-Matrizen + +Im Rahmen der Berechnung der Matrizen $Q$ und $R$ werden sogenannte "Housholder-Matrizen" berechnet. + +
+ +***Housholder-Matrizen:*** + +Sei $u$ ein Vektor mit beliebig vielen Dimensionen, für den gilt: + +$$|u| = \sqrt{u_1^2 + u_2^2 + \dots + u_n^2} = 1$$ + +Die Householder-Matrix hat folgende Eigenschaft: + +$$H := I_n - 2 \cdot u \cdot u^T$$ + +Für Housholder-Matrizen gilt zudem folgendes: + +$$H = H^T = H^{-1}$$ + +und + +$$H \cdot H = I_n$$ + +
+ +***Berechnung einer Housholder-Matrix*** + +Beispiel der Berechnung einer Housholder-Matrix zur ersten Spalte der Matrix $A$. + +> Für die Berechnung wird ein Einheitsvektor $e$ benötigt, welcher genauso viele Werte hat, wie die Matrix Dimensionen. Ein Einheitsvektor hat im ersten Feld den Wert $1$ und in allen anderen Feldern der Wert $0$. +> +> Für eine Matrix $A$ mit der Dimension $n = 3$ lautet der Einheitsvektor $e$ also wie folgt: +> $$e = \left(\begin{matrix} +> 1 \\ +> 0 \\ +> 0 +> \end{matrix}\right) + + 1. Vektor $v$ bestimmen + $$v = a_1 + sign(a_{11}) \cdot |a_1| \cdot e$$ + 2. Vektor normieren: + $$u = \frac{1}{|v|} \cdot v = + \frac{1}{\sqrt{1^2 + 2^2 + 3^2}} \cdot + \left(\begin{matrix} + 1 \\ + 2 \\ + 3 + \end{matrix}\right) = + \frac{1}{\sqrt{14}} \cdot + \left(\begin{matrix} + 1 \\ + 2 \\ + 3 + \end{matrix}\right)$$ + 2. Die Housholder-Matrix $H = I_n - 2 \cdot u \cdot u^T$ berechnen. + $$H = + \left(\begin{matrix} + 1 & 0 & 0 \\ + 0 & 1 & 0 \\ + 0 & 0 & 1 + \end{matrix}\right) - + 2 \cdot \frac{1}{\sqrt{14}} \cdot + \left(\begin{matrix} + 1 \\ + 2 \\ + 3 + \end{matrix}\right) \cdot + \frac{1}{\sqrt{14}} \cdot + \left(\begin{matrix} + 1 & 2 & 3 + \end{matrix}\right) \\ + H = + \left(\begin{matrix} + 1 & 0 & 0 \\ + 0 & 1 & 0 \\ + 0 & 0 & 1 + \end{matrix}\right) - + 2 \cdot \frac{1}{14} \cdot + \left(\begin{matrix} + 1 & 2 & 3 \\ + 2 & 4 & 6 \\ + 3 & 6 & 9 + \end{matrix}\right) = + -\frac{1}{7} \cdot + \left(\begin{matrix} + -6 & 2 & 3 \\ + 2 & -3 & 6 \\ + 3 & 6 & 2 + \end{matrix}\right)$$ + +
+ + - $H$: Housholder-Matrix + - $I$: Identitäts-Matrix + - $n$: Anzahl Dimensionen der Matrix + +
+ +#### Vorgang +Im Rahmen des Vorgangs entspricht $A_1$ der Matrix $A$. + +Die $QR$-Zerlegung kann folgendermassen durchgeführt werden: + + 1. $R = A$ + 2. $Q = I_n$ + 3. Für $i$ von $1$ bis $n - 1$ + 1. Gemäss vorheriger Anleitung Householder-Matrix $H_i$ für die erste Spalte von $A_i$ berechnen + 2. Householder-Matrix um Identitäts-Matrix erweitern. Beispiel: + ![](ExpandHouseholder.png) + 3. Erweiterte Householder-Matrix als $Q_i$ speichern + 4. $R = Q_i \cdot R$ + 5. $Q = Q \cdot Q_i^T$ + +***Code-Beispiel:*** + +```py +from numpy import array, identity, sign, sqrt, square, sum, zeros + +def qrDecomposition(A): + A = array(A) + n = A.shape[0] + R = A.reshape((n, n)) + Q = identity(n) + + for i in range(n - 1): + I = identity(n - i) + Qi = identity(n) + e = zeros((n - i, 1)) + e[0][0] = 1 + a = R[i:,i:i + 1] + v = a + sign(a[0]) * sqrt(sum(square(a))) * e + u = (1 / sqrt(sum(square(v)))) * v + H = I - 2 * u @ u.T + Qi[i:,i:] = H + R = Qi @ R + Q = Q @ Qi.T + return [Q, R] +``` + ## Formelbuchstaben
@@ -728,14 +890,18 @@ Wenn die $LR$-Zerlegung, wie in diesem Code, Zeilenaustausch und das Berechnen v - $[a,b]$: Das Untersuchungs-Interval für den Banachschen Fixpunktsatz - $A$: Matrix eines linearen Gleichungssystems - $\tilde{A}$: Umgewandelte Version der Matrix $A$ + - $A^T$: Transformierte Matrix $A$ - $b$: Das gewünschte Resultat eines linearen Gleichungssystems - $B$: Basis der Maschinenzahl - $e$: Exponent der Maschinenzahl + - $H$: Housholder-Matrix (siehe $QR$-Zerlegung) + - $I$: Identitäts-Matrix (Matrix, überall den Wert $0$ und auf der Diagonalen den Wert $1$ hat) - $K$: Konditionszahl - $L$: Untere Dreiecksmatrix/Normierte Matrix - $m$: Mantisse (Darstellbarer Bereich der Maschinenzahl) - $n$: Anzahl möglicher Stellen der Mantisse $m$ - $q$: Konvergenz-Ordnung + - $Q$: Orthogonal-Matrix in der $QR$-Zerlegung - $R$: Obere Dreiecksmatrix - $x$: Darzustellender Wert - $x_n$: Die $n$-te Approximation von $x$