3 Eigenwertberechnung (3.) Definition Eine Matrix A R, heißt (obere) Block-Dreiecksmatrix, wenn ein n existiert, sodass A[n + :, : n] = 0 gilt, d.h.: A = ( ) A[ : n, : n] A[ : n,n + : ] 0 A[n + :,n + : ] Sie heißt reduzibel, wenn eine Permutationsmatrix P existiert, so dass PAP T Block-Dreiecksmatrix ist. Sie heißt irreduzibel, wenn keine Permutationsmatrix P existiert, so dass PAP T Block- Dreiecksmatrix ist. Für reduzible Matrizen lässt sich die Eigenwertberechnung in zwei kleinere Probleme (der Größe n und n) unterteilen. (3.) Definition Eine Matrix H R, heißt (obere) Hessenberg-Matrix, wenn H[n + :,n] = 0 n für n =,..., gilt. Eine Hessenbergmatrix ist reduzibel, falls H[n +, n] = 0 für ein 0 < n <. Symmetrische Hessenbergmatrizen sind tridiagonal. (3.3) Satz Sei A R,. Dann existiert eine orthogonale Matrix Q R,, so dass H = QAQ T eine Hessenberg-Matrix ist. Die Berechnung von Q benötigt O( 3 ) Operationen. Beweis. Induktion über. Für < 3 ist nichts zu zeigen. 3: Definiere x R mit: x[] = 0, x[ : ] = A[ :,].Fall: x[3 : ] = 0 Dann setze Q := I, A := A..Fall: x[3 : ] 0 Setze { x, x[] > 0 σ = x, x[] 0, ( w = x σe ) R, Damit ergibt sich x[] σ Q = I βww T mit β := w T w. A[,] A [, : ] A := Q AQ T = σ A 0 3
mit A [, : ] = A[, : ] β(a[, : ]w[ : ]w T [ : ]) A = (I βw[ : ]w T [ : ])A[ :, : ](I βw[ : ]w T [ : ]). ach Induktionsvoraussetzung existiert eine orthogonale Matrix Q R,, so dass H = Q A Q T eine obere Hessenberg-Matrix ist. Setze ( ) 0 Q := Q 0 Q. Somit folgt ( ) ( ) QAQ T 0 T = 0 T A[,] A[; : ]Q T A 0 Q = σ = H. 0 Q H O Damit ist der Induktionsschritt bewiesen. Zum Aufwand: In jedem Schritt werden O( ) Operationen benötigt, insgesamt also O( 3 ) Operationen. Wenn A symmetrisch ist, dann ist H = QAQ T eine Tridiagonalmatrix. (3.4) Satz Sei A R, symmetrisch, tridiagonal und irreduzibel, d.h. A[n,n] = A[n,n ] 0 und A[n + :,n] = A[n,n + : ] T = 0 n. Für das Spektrum von A gelte σ(a) (λ,λ). a) Die charakteristischen Polynome P n (t) = det ( A[ : n, : n] ti n ) der Hauptuntermatrizen lassen sich durch eine Dreitermrekursion berechnen: Setze P 0, P (t) = A[,] t, P n (t) = (A[n,n] t)p n (t) A[n,n] P n (t), n =,...,. b) Sie bilden eine Sturmsche Kette: Für die ullstellen λ n λ n λ n n von P n gilt λk n < λ k n < λ k n (mit λ n 0 = λ und λ n n+ = λ). c) Für t (λ,λ) gilt λ n k < t λ n k+ mit k = W n (t) und W n (t) = # { j {,...,n}: P j (t)p j (t) < 0 oder P j (t) = 0 }. 4
function A = hessenberg(a) = size(a,); for n = :- [v,beta] = householder(a(n+:,n)); if beta ~= 0 w = beta * A(:,n+:) * v; A(:,n+:) = A(:,n+:) - w * v ; w = beta * v * A(n+:,n:); A(n+:,n:) = A(n+:,n:) - v * w; A(n+:,n) = v(:-n); function Q = hessenbergrotation(a) = size(a,); Q = eye(); for n = :- v = [;A(n+:,n)]; beta = / (v * v); if beta ~= w = beta * v * Q(n+:,:); Q(n+:,:) = Q(n+:,:) - v * w; function A = symmetric_hessenberg(a) = size(a,); for n = :- [v,beta] = householder(a(n+:,n)); if beta ~= 0 w = beta * A(n:,n+:) * v; A(n:,n+:) = A(n:,n+:) - w * v ; w = beta * v * A(n+:,n:); A(n+:,n:) = A(n+:,n:) - v * w; Abbildung 6: Berechnung der Hessenberg-Transformation für allgemeine Matrizen mit Abspeicherung der Householder-Vektoren, Rekonstruktion der orthogonalen Transformationsmatrix, und Berechnung der Hessenberg-Transformation für symmetrische Matritzen ohne Abspeicherung der Householder-Vektoren. 5
Beweis. zu a) Übung. zu b) und c) Induktion über n. Sei n =. Dann gilt λ = A[,] (λ,λ), also λ 0 0 = λ < λ < λ = λ 0, und für t (λ,λ) gilt: Für W (t) = 0 ist P 0 (t)p (t) 0, also t A[,] und λ 0 < t λ. Für W (t) = ist somit t > A[,] mit λ < t λ. n n + : ach Induktionsvoraussetzung ist P n (λk n) 0. Damit ergibt sich aus a) P n+(λk n) = A[n,n + ] P n (λk n ) 0 und somit P n+ (λ n k )P n (λ n k ) < 0. () ach Induktionsvoraussetzung hat P n ( ) genau eine ullstelle in (λk n,λ k n ) hat. Daraus folgt P n (λk n )P n (λk n) < 0 und mit () gilt dann P n+(λk n )P n+(λk n ) < 0. Somit existiert auch eine ullstelle von P n+ ( ) in (λk n,λ k n ). Somit existieren mindestens n ullstellen von P n+ ( ) in (λ n,λ n n ). Analog folgt die Existenz von jeweils einer ullstelle von P n+ ( ) in (λ,λ n) und (λ n n,λ). Also gilt für alle n + ullstellen λk n < λ k n+ < λk n. Aus k = W n(t) folgt λk n < t λ k n und P n (t)p n+ (t) = k i= (λi n t)(λi n+ t) }{{} 0 (λk n+ Daher gilt P n (t)p n+ (t) 0 genau dann, wenn λ n+ k t) n i=k t. Das ergibt (λi n t)(λk+ n+ }{{ t). } 0 W n+ (t) = k λk n+ t λk n > λ k n+, W n+ (t) = k + λk n+ < t < λk n < λ k+ n+. Im Folgen sei stets A R, symmetrisch mit Eigenwerten λ,...,λ und OB aus Eigenvektoren v,...,v. Dann gilt A = λ n v n (v n ) T. (3.5) Definition Der Rayleigh-Quotient ist definiert durch r(a,x) = xt Ax x T x, x R, x 0. (3.6) Satz Sei λ = ρ(a) und λ n < λ für n =,...,. Dann gilt für alle w R mit w T v > 0: lim k r(a,ak w) = λ, lim k A k w A k w = v. 6
Beweis. Es gilt Somit folgt da und A k w = A k (w T v n )λ n v n = r(a,a k w) = (Ak w) T AA k k+ w λ (A k w) T (A k w) = lim k λ k ( λn λ (w T v n )λ k n v n = λ k ( λn ) k+ λ (w T v n ) ( ) k λn λ (w T v n ) ) k = {, n = 0, n ( λn λ A k w A k w k wt v (w T v ) v = v. ) k (w T v n )v n k (w T v ) λ (w T v ) = λ, (3.7) Satz Sei w R mit w = und λ = r(a,w). Dann gilt min λ λ n Aw λw.,..., Beweis. Es gilt w = (wt v n )v n und damit = w = wt w = (wt v n ). Ferner Aw λw = λ n (w T v n )v n λ(w T v n )v n = = λ n λ (w T v n ) min λ n λ,..., = min λ n λ.,..., (λ n λ)(w T v n )v n (w T v n ) (3.8) Definition Eine konvergente Folge (d k ) k in R mit Grenzwert d konvergiert (a) linear, wenn c (0,) und k 0 existieren mit d k+ d c d k d für k k 0 (b) superlinear, wenn zu jedem ε > 0 ein k 0 existiert mit d k+ d ε d k d für k k 0 7
(c) von der Ordnung p >, wenn C > 0 existiert mit d k+ d C d k d p. Wenn der größte Eigenwert isoliert ist, konvergiert die einfache Vektoriteration linear (Satz 3.6). Mit Satz 3.7 erhalten wir ein Abbruchkriterium für die Iteration. Inverse Iteration mit variablem Shift S) Wähle z 0 R, z 0 0, ε 0. Setze k = 0. S) Setze w k = z k z k, s k = r(a,w k ). S3) Falls Aw k s k w k ε STOP. S4) z k+ = (A s k I ) w k S5) Setze k := k +, gehe zu S). (3.9) Satz Wenn der Startvektor z 0 hinreich nahe bei einem Eigenvektor v m mit isoliertem Eigenwert λ m liegt, konvergiert die Inverse Iteration mit variablem Shift kubisch (d.h. von der Ordnung p = 3). Beweis. Setze v = v m und λ = λ m mit Av = λv und v T v =. Da λ ein isolierter Eigenwert ist, existiert ein ρ > 0 mit (λ ρ,λ + ρ) σ(a) = {λ}. Der Beweis erfolgt in vier Schritten. (i) Definiere w k = w k (v T w k )v. Dann ist w k = (v T w k )v + w k eine orthogonale Zerlegung mit ( w k ) T v = 0 und = w k = (vt w k ) + w k. Also existiert ein ϕ k [0,π/] mit v T w k = cos(ϕ k ) und w k = sin(ϕ k ), woraus wir folge Darstellung erhalten: w k = cos(ϕ k )v + sin(ϕ k )ŵ k, ŵ k = wk w k. Wir zeigen nun die Abschätzung sin(ϕ k+ ) C sin(ϕ k ) 3. Dann konvergiert w k kubisch gegen einen Eigenvektor von A. (ii) Es gilt Aw k = λ cos(ϕ k )v + sin(ϕ k )Aŵ k. Daraus folgt [ ] s k = λ cos(ϕ k ) + sin(ϕ k ) (ŵ k ) T Aŵ k = λ + sin(ϕ k ) (ŵ k ) T Aŵ k λ und wegen λ A sowie (ŵ k ) T Aŵ k A : (iii) Weiterhin haben wir also (für cos(ϕ k ) > 0) s k λ sin(ϕ k ) ( A ). z k+ = (A s k I ) w k = cos(ϕ k) λ s k v + sin(ϕ k )(A s k I n ) ŵ k, () z k+ cosϕ k λ s k 8 z k+ λ s k cosϕ k.
Ferner gilt (A s k I ) ŵ k = ( (λ n s k ) (ŵ k ) T v n) v n. n m (iv) Sei z k so nahe bei v, dass A sin(ϕ k ) ρ und cos(ϕ k) > / gilt. Dann folgt mit (ii) λ s k ρ, und mit der Bedingung an ρ für n m λ n s k ρ. Hiermit erhalten wir (A s k I ) ŵ k ρ. Aus w k+ = z k+ z k+ = cos(ϕ k+ )v + sin(ϕ k+ )ŵ k+ und () folgt sin(ϕ k+ ) = sin(ϕ k)(a s k I ) ŵ k z k+ (iii) sin(ϕ k ) 4 ρ λ s k (ii) 8 A ρ sin(ϕ k ) 3. QR-Iteration mit Shift S0) Gegeben sei A R, symmetrisch. Berechne A 0 = QAQ T tridiagonal (Hessenberg-Transformation). Wähle ε 0. Setze k = 0. S) Falls A k [n +,n] ε für ein n: Getrennte Eigenwertberechnung für A k [ : n, : n] und A k [n + :,n + : ]. S) Berechne d k = (A k[, ] A k [,]) und s k = A k [,] + d k sgn(d k ) dk + A k[,]. S3) Berechne eine QR-Zerlegung und setze Q k R k = A k s k I A k+ = R k Q k + s k I. S4) Setze k := k +, gehe zu S). 9
Es gilt A k+ = R k Q k + s k I = Q T k (A k s k I )Q k + s k I = Q T k A kq k. (3) Somit wird A in jedem Schritt nur mit orthogonalen Matrizen transformiert, die Eigenwerte ändern sich nicht. Da wir die QR-Iteration auf tridiagonale irreduzible Matrizen anwen, sind alle Eigenwerte verschieden, vgl. Satz (3.4). Dann lässt sich zeigen, dass die QR-Iteration (ohne variablen Shift) gegen eine Diagonalmatrix konvergiert (lineare Konvergenz). Mit variablem Shift ist die Konvergenz weit besser. (3.0) Satz Falls in S) der Shift s k = A k [,] gewählt wird, entspricht die QR-Iteration der Inversen Iteration mit variablem Shift für die Matrix A 0 und den Startvektor z 0 = e. Beweis. Sei z 0 = e. Im ersten Schritt gilt w 0 = z 0 = e und s 0 = r(a 0,e ) = A 0 [,]. Es genügt w k = Q 0 Q Q k e zu zeigen, denn dann folgt aus (3) s k = r(a 0,w k ) = r(a k,w 0 ) = A k [,]. Da A k symmetrisch ist, gilt A k s k I = Q k R k = R T k QT k. Aus zk+ = (A 0 s 0 I ) w k folgt also e = Q T k QT 0 w k = Q T k QT 0 (A 0 s k I )z k+ = (A s k I )Q T k QT 0 z k+ = R T k QT k QT k QT 0 z k+, Q T k QT k QT 0 z k+ = R T k e = R k [,] e. Daraus folgt z k+ = R k [,] und somit die Behauptung w k+ = z k+ z k+ Q 0 Q k e. (3.) Satz (Gerschgorin) Zu A R, sind die Gerschgorin-Kreise durch K n = { λ C: λ A[n,n] A[n,k] }, k n n =,..., definiert. Dann gilt σ(a) K n. Beweis. Sei λ σ(a). Dann existiert ein w R \{0} mit Aw = λw. Also existiert ein n {,...,} mit 0 w n w m, m =,...,. 30
function [c,s] = givens_parameter(a,b) if b == 0.0 c =.0; s = 0.0; else if abs(b) > abs(a) t = -a/b; s = /sqrt(+t^); c = s*t; else t = -b/a; c = /sqrt(+t^); s = c*t; function A = givens_transformation(a,g,k) = size(a,); if k> && k<- && >=3 ind = k-:k+; elseif k==- && >=3 ind = -:; elseif k== && >=3 ind = :3; elseif == ind = :; A([k k+],ind) = G * A([k k+],ind); A(ind,[k k+]) = A(ind,[k k+]) * G; function lambda = qr_iteration(a,tol) = size(a,); H = symmetric_hessenberg(a); while h00 = H(-,-); h0 = H(,-); h = H(,); if (abs(h0) < tol*abs(h+h00)), = -; if <, break; d = (h00 - h)/; if d ~= 0, mu = h + d - sign(d)*sqrt(d^+h0^); else, mu = h - h0; a = H(,) - mu; b = H(,); for k = :- [c,s] = givens_parameter(a,b); H = givens_transformation(h,[c,s;-s,c],k); if k<-, a = H(k+,k); b = H(k+,k); lambda = diag(h) Abbildung 7: QR-Iteration mit implizitem Shift. 3
Damit folgt A[n, : ]w = λw n (A[n,n] λ)w n = A[n,m]w m m n A[n,n] λ w n m n λ A[n,n] A[n,m] λ K n. m n A[n,m] w m w n A[n, m] m n Für irreduzible Matrizen gilt eine Verschärfung: Die Eigenwerte liegen im Inneren der Gershgorin-Kreise oder auf dem Durchschnitt der Ränder der Gershgorin-Kreise. (3.) Satz (Courant-Hilbert) Sei A R, symmetrisch mit Eigenwerten λ λ λ. λ n = max dims=n λ + n = min dims=n min r(a,x), 0 x S max r(a,x). 0 x S Beweis. Es sei VAV T = diag(λ,...,λ ) mit V = (v... v ) orthogonal. Dann gilt A = λ n v n (v n ) T. : Setze S n := span{v,...,v n }. Dann gilt für x S n : x T Ax = λ k (x T v k ) = k= Damit folgt r(a,x) = xt Ax x T x λ n und somit n k (x k=λ T v k ) n λ n (x T v k ) = λ n x T x. k= λ n = r(a,v n ) = min x S n x 0 r(a,x) max : Wähle S R,dimS = n. Es gilt dim( S ein y S mit y = k=n (yt v k )v k. Also gilt }{{} dimn min dims=n x S λ n r(a,y) min x S x 0 r(a,x). x 0 r(a,x). span{v n,...,v }). Also existiert }{{} dim n+ Da S beliebig war, folgt die Behauptung. 3