Ãbungsblatt 4
Ãbungsblatt 4
Ãbungsblatt 4
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Numerische Analysis II<br />
SS 2013<br />
Prof. Dr. Wolfgang Dahmen – Dr. Markus Bachmayr<br />
Übungsblatt 4 für Mittwoch, 15. Mai 2013<br />
Abgabe bis 15.5., 15:30, über den Einwurfkasten vor Raum 149.<br />
Aufgabe 11. Sei A ∈ R n×n symmetrisch mit Eigenwerten λ i , für die |λ 1 | > |λ 2 | ≥ |λ 3 | ≥ . . . ≥ |λ n | gilt.<br />
Weiterhin sei ein Startwert y 0 ∈ R n so gegeben, dass y0 T v 1 ≠ 0 ist, wobei v 1 Eigenvektor zum Eigenwert λ 1 ist.<br />
Zeigen Sie, dass dann die Vektoriteration mit<br />
( ∣∣∣∣ ∣ )<br />
|λ (k) λ 2 ∣∣∣<br />
2k<br />
− λ 1 | = O<br />
für k → ∞<br />
λ 1<br />
gegen den Eigenwert λ 1 konvergiert.<br />
8 Punkte<br />
Aufgabe 12. Sei A ∈ R n×n gegeben. Zu x ∈ R n ist der Rayleigh-Quotient ρ(x) durch ρ(x) := x T Ax/(x T x)<br />
definiert.<br />
1. Zeigen Sie, dass der Rayleigh-Quotient ρ die Eigenwert-Gleichung im folgenden Sinne am besten annähert:<br />
‖Ax − ρ(x)x‖ 2 = min<br />
µ∈R ‖Ax − µx‖ 2 .<br />
2. Sei λ ∈ R ein Eigenwert von A zum Eigenvektor v mit ‖v‖ 2 = 1. Zeigen Sie, dass mit C = 2‖A‖ 2 gilt<br />
|λ − ρ(x)| ≤ C‖v − x‖ 2 ∀x ∈ R n mit ‖x‖ 2 = 1.<br />
3. Sei A symmetrisch und λ ein Eigenwert von A zum Eigenvektor v mit ‖v‖ 2 = 1. Zeigen Sie, dass<br />
mit C = max{|λ − ˜λ| : ˜λ ∈ σ(A)}.<br />
|λ − ρ(x)| ≤ C‖v − x‖ 2 2 ∀x ∈ R n mit ‖x‖ 2 = 1.<br />
2+3+4 = 9 Punkte<br />
Hinweise zur Programmieraufgabe:<br />
• Verwenden Sie für dieses Übungsblatt (ausschließlich) die beiden Headerdateien na2-base.h und<br />
na2-p13.h.<br />
• Senden Sie Ihre Lösungen bis 15.5., 15:30, an na2hiwi@igpm.rwth-aachen.de, und geben Sie zusätzlich<br />
auch einen Ausdruck des Codes und der dazugehörigen Ausgaben über den Einwurfkasten ab. Heften<br />
Sie dabei die Blätter zu Programmieraufgaben separat von den restlichen Abgaben ab.<br />
Aufgabe 13 (Programmieraufgabe). Verwenden Sie die Funktion testmatA in der Headerdatei na2-p13.h,<br />
um die Matrix A und den Vektor Lambdax der exakten Eigenwerte von A zu erzeugen.<br />
(a) Implementieren Sie eine Funktion void veciter(const mat& A, int K, vec& lambda, vec& y), die für<br />
eine gegebene Matrix K Schritte der Vektoriteration aus Algorithmus 7.20 in Dahmen-Reusken durchführt.<br />
Dabei sollen alle berechneten Rayleighquotienten λ (k) , k = 1, . . . , K im Vektor lambda gespeichert werden.<br />
Der Vektor y enthält beim Aufruf den Startvektor, und soll mit der Näherung y K für den Eigenvektor<br />
überschrieben werden.<br />
Testen Sie die Funktion mit K = 30 an der Matrix A, jeweils einmal mit Startvektor (1, 0, 0, 0) T und einmal<br />
mit Startvektor (0, 0, 1, 0) T . Geben Sie für k = 2, . . . , K die Werte λ (k) , e k := min µ∈σ(A) |λ (k) − µ| und<br />
e k /e k−1 aus, und vergleichen Sie letztere mit den aufgrund der Konvergenztheorie zu erwartenden Werten.<br />
(b) Implementieren Sie analog dazu eine Funktion void inviter(const mat& A, int K, vec& lambda, vec&<br />
y, double mu), die die inverse Vektoriteration mit Spektralverschiebung aus Algorithmus 7.24 durchführt.<br />
Dabei seien die Parameter wie in (a), und zusätzlich sei µ := mu die Spektralverschiebung. Verwenden Sie als<br />
Löser die LR-Faktorisierung mittels lr factors modified aus na2-p13.h und lr solve aus na2-base.h.<br />
Versuchen Sie nach Möglichkeit, berechnete Zwischenergebnisse weiterzuverwenden.<br />
Testen Sie mit K = 10 und Startvektor (1, 0, 0, 0) T für die Werte mu = 0, 4, 3.05 und 2.5. Geben Sie wieder<br />
λ (k) , e k und e k /e k−1 aus, und vergleichen Sie mit den theoretischen Werten.<br />
Seite 1 von 2
(c) Implementieren Sie eine Funktion void rqiter(const mat& A, int K, vec& lambda, vec& y, double<br />
mu), die Algorithmus 7.24 mit folgender Modifikation durchführt (Rayleigh-Quotienten-Iteration): In jedem<br />
Schritt wird eine neue Spektralverschiebung µ k := λ (k−1) gewählt, mit dem Startwert µ 0 := mu.<br />
Führen Sie dieselben Tests wie bei (b) durch, und geben Sie λ (k) , e k und e k /e k−1 aus.<br />
Geben Sie zu jedem Test auch den Ergebnisvektor y aus.<br />
(Zusatzfrage: Geben Sie die nicht normalisierten Zwischenergebnisse ỹ k+1 von Algorithmus 7.24 in Teil (b)<br />
im Fall mu = 4 aus. Probieren Sie aus, was passiert wenn Sie lr factors modified durch lr factors aus<br />
na2-base.h ersetzen, und vergleichen Sie den Code der beiden Routinen. Wie ist zu erklären, dass diese Modifikation<br />
funktioniert?)<br />
4+4+3 = 11 Punkte<br />
Seite 2 von 2