23.01.2014 Aufrufe

Übungsblatt 4

Übungsblatt 4

Übungsblatt 4

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!