Numerisches Rechnen (für Informatiker) M. Grepl P. Esser & G. Welper & L. Zhang Institut für Geometrie und Praktische Mathematik RWTH Aachen Wintersemester 2011/12 IGPM, RWTH Aachen Numerisches Rechnen 1
Lineares Ausgleichsproblem Lösung des linearen Ausgleichsproblems (für Rang(A) = n): x = (A T A) 1 A T b. Problem: (A T A) 1 existiert nicht für Rang(A) < n Lösung lineares Ausgleichsproblem nicht eindeutig zusätzliche Auswahlbedingung Satz: Allgemeines Lineares Ausgleichsproblem Sie b R m, A R m n. Die Aufgabe: bestimme x mit minimaler Euklidischer Norm, für das Ax b 2 = min x R n Ax b 2 gilt, hat eine eindeutige Lösung. QR-Zerlegung mit Pivotisierung Singulärwertzerlegung (SVD = Singular Value Decomposition) IGPM, RWTH Aachen Numerisches Rechnen 160
Singulärwertzerlegung Satz Zu jeder Matrix A R m n existieren orthogonale Matrizen U R m m, V R n n und eine Diagonalmatrix mit so dass Σ := diag(σ 1,..., σ p ) R m n, σ 1 σ 2... σ p 0, A = U Σ V T. p = min(m, n), Hierbei sind: Singulärwerte von A : σ i, i = 1,..., p Linkssingulärvektoren : Spalten von U = [u 1 u 2... u m ] Rechtssingulärvektoren : Spalten von V = [v 1 v 2... v n ] IGPM, RWTH Aachen Numerisches Rechnen 161
Singulärwertzerlegung Fall: m = 4, n = 2, rank(a) = 2 Full SVD 0 = 0 0 0 0 0 A U Σ Reduced SVD = A Û [ ] 0 0 ˆΣ [ ] V T [ ] V T IGPM, RWTH Aachen Numerisches Rechnen 162
Singulärwertzerlegung Annahme: m n Fall m < n: betrachte SVD von A T A T = U Σ V T A = V Σ U T Singulärwerte sind reell und nichtnegativ Konvention σmax = σ 1 größter Singulärwert σmin = σ n kleinster Singulärwert der Größe nach geordnet σ 1 σ 2... σ n 0 SVD ist numerisch rückwärtsstabil berechenbar A + A = Ũ Σ Ṽ T mit A 2 = O(eps) IGPM, RWTH Aachen Numerisches Rechnen 163
Singulärwertzerlegung Geometrische Interpretation Quelle: Trefethen & Bau Abbildung der Einheitskugel S = {x : x 2 = 1} durch A Singulärwerte: Längen σ 1, σ 2 der Halbachsen von AS. Linkssingulärvektoren: Einheitsvektoren {u 1, u 2 } in Richtung der Halbachsen von AS Rechtssingulärvektoren: Einheitsvektoren {v 1, v 2 } S, Urbild der Halbachsen von AS, so dass Av j = σ j u j. IGPM, RWTH Aachen Numerisches Rechnen 164
Singulärwertzerlegung Geometrische Interpretation IGPM, RWTH Aachen Numerisches Rechnen 165
Sei A = U Σ V T eine Singulärwertzerlegung von A R m n mit Singulärwerten σ 1... σ r σ r+1 =... = σ n = 0. Dann gilt: Av i = σ i u i, A T u i = σ i v i, i = 1,..., n. Rang(A) = r = Anzahl der von Null verschiedenen Singulärwerte. A 2 = σ 1 = σ max A 1 2 = 1 σ n, falls A eine reguläre n n Matrix ist κ 2 (A) = A 2 A 1 2 = σ 1 σ n, falls A eine reguläre n n Matrix ist κ 2 (A) = A 2 A + 2 = σ 1 σ n = σmax σ min, falls A nichtsingulär IGPM, RWTH Aachen Numerisches Rechnen 166
Singular Value Decomposition Sei A = U Σ V T eine Singulärwertzerlegung von A R m n mit Singulärwerten σ 1... σ r σ r+1 =... = σ n = 0. Dann gilt: Die strikt positiven Singulärwerte sind die Wurzeln der strikt positiven Eigenwerte von A T A: {σ i i = 1,..., r} = { λ i (A T A) i = 1,..., r} Die Singulärwerte sind gleich dem Absolutbetrag der Eigenwerte von A falls A = A T. Für A R n n gilt det(a) = m σ i i=1 Die Pseudoinverse A + R n m ist definiert durch A + = V Σ + U T mit Σ + = diag(σ 1 1,..., σ 1 r, 0,..., 0) Rn m. IGPM, RWTH Aachen Numerisches Rechnen 167
Low-Rank Approximation Sei A = U Σ V T eine Singulärwertzerlegung von A R m n mit Singulärwerten σ 1... σ r σ r+1 =... = σ n = 0. Für k r = Rang(A) definiere A k = U Σ k V T mit Σ k = diag(σ 1,..., σ k, 0,..., 0) R m n. Dann gilt: Rang(A) = k. Die Distanz zwischen A k und A ist A A k 2 = σ k+1. A k ist die beste Approximation an A vom Rang k A A k 2 = min A B 2. Rang(B) k IGPM, RWTH Aachen Numerisches Rechnen 168
Lineares Ausgleichsproblem Bestimme x, so dass Ax b 2 = min x R n Ax b 2. Lösung mit SVD: A = U Σ V T Ax b 2 = U T AV V T x U T b 2 = Σ(V T x) (U T b) 2 = Σy (U T b) 2 Dann y = Σ 1 (U T b) und x = V y. Falls Rang(A) = r < n, definiere Pseudo-Inverse A + R n m durch A + = V Σ + U T mit Σ + = diag(σ 1 1,..., σ 1 r, 0,..., 0) Rn m. Lösung des allgemeinen linearen Ausgleichsproblems: x = A + b. IGPM, RWTH Aachen Numerisches Rechnen 169
Numerischer Rang Rang einer Matrix wird in der Praxis fast immer über die Singulärwerte bestimmt. Falls σ 1... σ r σ r+1 =... = σ n = 0 so gilt Rang(A) = r. Problem: Rundungsfehler aufgrund Maschinengenauigkeit A Ã, σ i σ i, i = 1,..., n. Rang(Ã) häufig > r, Abfrage σ k = 0 nicht sinnvoll. Numerischer Rang Der numerische Rang der Matrix à R m n ist definiert als Rang num (Ã) = min{1 k n σ k+1 σ 1 mneps}. IGPM, RWTH Aachen Numerisches Rechnen 170
Image Compression Singular Value Decomposition Singulärwertzerlegung von A A = U Σ V T kann geschrieben werden als p A = σ i u i vi T = σ 1 u 1 v1 T + σ 2 u 2 v2 T +... + σ p u p vp T i=1 mit p = min(m, n). Approximation der Matrix A vom Rang k, k p, ist A k = und A A k 2 = σ k+1. k i=1 σ i u i v T i Datenkompression: Speicherbedarf für A k ist k(m + n) vs. mn für A. IGPM, RWTH Aachen Numerisches Rechnen 171
Image Compression Betrachte Schwarz Weiß-Bild I(x, y) als Matrix A: Einträge in Matrix entsprechen Graustufen des jeweiligen Pixels. 10 5 Singular Values, Melencolia I 10 4 10 3 10 2 10 1 10 0 0 50 100 150 200 250 300 350 Je nach Anwendung: Principal Component Analysis (PCA), Proper Orthogonal Decomposition (POD), Karhunen-Loéve Decomposition. IGPM, RWTH Aachen Numerisches Rechnen 172
Image Compression Singular Value Decomposition k = 1, compression = 0.00548 k = 20, compression = 0.11 k = 40, compression = 0.219 Original: A. Duerer, Melencolia I IGPM, RWTH Aachen Numerisches Rechnen 173
Image Compression Singular Value Decomposition Gatlinburg-Tagung: J.H. Wilkinson, W. Givens, G. Forsythe, A. Householder, G. Henrici, F.L. Bauer (von links nach rechts) IGPM, RWTH Aachen Numerisches Rechnen 174
Berechnung der Singulärwerte Verfahren: Wurzeln der Eigenwerte von A T A Problem: Aufwand relativ hoch nicht stabil Fehlerverstärkung mit κ(a) 2 anstelle von κ(a) (vgl. Normalgleichung) Problematisch bei Berechnung der Singulärwerte mit σ k A 2. Golub-Kahan-Reinsch Algorithmus Schritt 1: Bidiagonalisierung mit Householder-Transformation Schritt 2: Reduktion auf Diagonalgestalt... oder in MATLAB: >> [U,S,V] = svd(a) IGPM, RWTH Aachen Numerisches Rechnen 175
Zusammenfassung Singulärwertzerlegung wird eingesetzt für Bestimmung des (numerischen) Rangs einer Matrix Berechnung von Norm und Konditionszahl... Viele Praktische : signal processing, image processing, statistics, reduced-order modelling, inverse problems (regularization),... IGPM, RWTH Aachen Numerisches Rechnen 176