From 9d75bf669c55a62c64a297d33071b026bf6b41ca Mon Sep 17 00:00:00 2001 From: Manuel Thalmann Date: Thu, 12 Jan 2023 02:24:12 +0100 Subject: [PATCH] Add chapter concerning vector iteration --- .../Zusammenfassung.md | 56 ++++++++++++++++++- 1 file changed, 53 insertions(+), 3 deletions(-) diff --git a/Notes/Semester 3/HM1 - Höhere Mathematik/Zusammenfassung.md b/Notes/Semester 3/HM1 - Höhere Mathematik/Zusammenfassung.md index 4fe7a1b..944a83f 100644 --- a/Notes/Semester 3/HM1 - Höhere Mathematik/Zusammenfassung.md +++ b/Notes/Semester 3/HM1 - Höhere Mathematik/Zusammenfassung.md @@ -69,8 +69,8 @@ - [Numerische Bestimmung von Eigenwerten und Eigenvektoren](#numerische-bestimmung-von-eigenwerten-und-eigenvektoren) - [Theorie](#theorie) - [$QR$-Verfahren](#qr-verfahren) + - [Vektor-Iteration](#vektor-iteration) - [Formelbuchstaben](#formelbuchstaben) - - [Glossar](#glossar) ## Einführung ### Einsatzgebiet @@ -1582,6 +1582,57 @@ def EV(A, iterations): return [A, P] ``` +### Vektor-Iteration + +Die Vektor-Iteration, auch **von-Mises-Iteration** genannt, erlaubt das Bestimmen des grössten Eigenwertes $\lambda$ einer diagonalisierbaren Matrix $A$. + +
+ +***Spektral-Radius:*** + +Der Spektral-Radius $\rho(A)$ definiert den höchsten Eigenwert der Matrix $A$: + +$$\rho(A) = \max\{|\lambda|\; | \; \lambda \text{ ist ein Eigenwert von }A \in \mathbb{R}^{n \times n}\}$$ + +
+
+ +Sei $A$ eine diagonalisierbare Matrix mit den Eigenwerten $\lambda_1, \dots, \lambda_n$ wobei $\lambda_1$ betragsmässig am höchsten ist: + +$$|\lambda_1| > |\lambda_2| \ge \dots \ge | \lambda_n|$$ + +Der grösste Eigenwert $\lambda_1$ und der dazugehörige Eigenvektor $v$ lässt sich mit der Vektor-Iteration bestimmen. + +Zunächst muss ein beliebiger Startvektor $v_0 \in \mathbb{C}^n$ mit Länge $1$ gewählt werden. + +Als nächstes wird für $k = 0, \dots, \infin$ folgendes ausgeführt: + +$$v^{(k + 1)} = \frac{A \cdot v^{(k)}}{||A \cdot v^{(k)}||_2}$$ + +$$\lambda^{(k + 1)} = \frac{(v^{(k)})^T \cdot A \cdot v^{(k)}}{(v^{(k)})^T \cdot v^{(k)}}$$ + +
+ +***Code-Beispiel:*** + +```py +from numpy import array, linalg + +def vectorIteration(A, v, iterations = 10): + l = 0 + v = array(v) + v = v.reshape(len(v), 1) + for i in range(iterations): + l = ((v.T @ A @ v) / (v.T @ v)).item() + v = (A @ v) / (linalg.norm(A @ v, ord=2)) + print() + print(f"k: {i + 1}") + print(f"x: {v}") + print(f"λ: {l}") + + return [v, l] +``` + ## Formelbuchstaben
@@ -1611,7 +1662,6 @@ def EV(A, iterations): - $\tilde{x}$: Approximation/Annäherung an $x$ - $x^{(k)}$: Die Annäherung von $x$ in der $k$-ten Iteration - $\lambda$: Eigenwert einer Matrix + - $\rho(A)$: Spektral-Radius der Matrix $A$ (siehe Vektor-Iteration)
- -## Glossar