- •1 Introduction
- •1.1 What makes eigenvalues interesting?
- •1.2 Example 1: The vibrating string
- •1.2.1 Problem setting
- •1.2.2 The method of separation of variables
- •1.3.3 Global functions
- •1.3.4 A numerical comparison
- •1.4 Example 2: The heat equation
- •1.5 Example 3: The wave equation
- •1.6 The 2D Laplace eigenvalue problem
- •1.6.3 A numerical example
- •1.7 Cavity resonances in particle accelerators
- •1.8 Spectral clustering
- •1.8.1 The graph Laplacian
- •1.8.2 Spectral clustering
- •1.8.3 Normalized graph Laplacians
- •1.9 Other sources of eigenvalue problems
- •Bibliography
- •2 Basics
- •2.1 Notation
- •2.2 Statement of the problem
- •2.3 Similarity transformations
- •2.4 Schur decomposition
- •2.5 The real Schur decomposition
- •2.6 Normal matrices
- •2.7 Hermitian matrices
- •2.8 Cholesky factorization
- •2.9 The singular value decomposition (SVD)
- •2.10 Projections
- •2.11 Angles between vectors and subspaces
- •Bibliography
- •3 The QR Algorithm
- •3.1 The basic QR algorithm
- •3.1.1 Numerical experiments
- •3.2 The Hessenberg QR algorithm
- •3.2.1 A numerical experiment
- •3.2.2 Complexity
- •3.3 The Householder reduction to Hessenberg form
- •3.3.2 Reduction to Hessenberg form
- •3.4 Improving the convergence of the QR algorithm
- •3.4.1 A numerical example
- •3.4.2 QR algorithm with shifts
- •3.4.3 A numerical example
- •3.5 The double shift QR algorithm
- •3.5.1 A numerical example
- •3.5.2 The complexity
- •3.6 The symmetric tridiagonal QR algorithm
- •3.6.1 Reduction to tridiagonal form
- •3.6.2 The tridiagonal QR algorithm
- •3.7 Research
- •3.8 Summary
- •Bibliography
- •4.1 The divide and conquer idea
- •4.2 Partitioning the tridiagonal matrix
- •4.3 Solving the small systems
- •4.4 Deflation
- •4.4.1 Numerical examples
- •4.6 Solving the secular equation
- •4.7 A first algorithm
- •4.7.1 A numerical example
- •4.8 The algorithm of Gu and Eisenstat
- •4.8.1 A numerical example [continued]
- •Bibliography
- •5 LAPACK and the BLAS
- •5.1 LAPACK
- •5.2 BLAS
- •5.2.1 Typical performance numbers for the BLAS
- •5.3 Blocking
- •5.4 LAPACK solvers for the symmetric eigenproblems
- •5.6 An example of a LAPACK routines
- •Bibliography
- •6 Vector iteration (power method)
- •6.1 Simple vector iteration
- •6.2 Convergence analysis
- •6.3 A numerical example
- •6.4 The symmetric case
- •6.5 Inverse vector iteration
- •6.6 The generalized eigenvalue problem
- •6.7 Computing higher eigenvalues
- •6.8 Rayleigh quotient iteration
- •6.8.1 A numerical example
- •Bibliography
- •7 Simultaneous vector or subspace iterations
- •7.1 Basic subspace iteration
- •7.2 Convergence of basic subspace iteration
- •7.3 Accelerating subspace iteration
- •7.4 Relation between subspace iteration and QR algorithm
- •7.5 Addendum
- •Bibliography
- •8 Krylov subspaces
- •8.1 Introduction
- •8.3 Polynomial representation of Krylov subspaces
- •8.4 Error bounds of Saad
- •Bibliography
- •9 Arnoldi and Lanczos algorithms
- •9.2 Arnoldi algorithm with explicit restarts
- •9.3 The Lanczos basis
- •9.4 The Lanczos process as an iterative method
- •9.6 Partial reorthogonalization
- •9.5 An error analysis of the unmodified Lanczos algorithm
- •9.7 Block Lanczos
- •9.8 External selective reorthogonalization
- •Bibliography
- •10 Restarting Arnoldi and Lanczos algorithms
- •10.2 Implicit restart
- •10.3 Convergence criterion
- •10.4 The generalized eigenvalue problem
- •10.5 A numerical example
- •10.6 Another numerical example
- •10.7 The Lanczos algorithm with thick restarts
- •10.8 Krylov–Schur algorithm
- •10.9 The rational Krylov space method
- •Bibliography
- •11 The Jacobi-Davidson Method
- •11.1 The Davidson algorithm
- •11.2 The Jacobi orthogonal component correction
- •11.2.1 Restarts
- •11.2.2 The computation of several eigenvalues
- •11.2.3 Spectral shifts
- •11.3 The generalized Hermitian eigenvalue problem
- •11.4 A numerical example
- •11.6 Harmonic Ritz values and vectors
- •11.7 Refined Ritz vectors
- •11.8 The generalized Schur decomposition
- •11.9.1 Restart
- •11.9.3 Algorithm
- •Bibliography
- •12 Rayleigh quotient and trace minimization
- •12.1 Introduction
- •12.2 The method of steepest descent
- •12.3 The conjugate gradient algorithm
- •12.4 Locally optimal PCG (LOPCG)
- •12.5 The block Rayleigh quotient minimization algorithm (BRQMIN)
- •12.7 A numerical example
- •12.8 Trace minimization
- •Bibliography
6.5. INVERSE VECTOR ITERATION |
121 |
102
100
10−2
10−4
10−6
10−8
10−10
0 |
100 |
200 |
300 |
400 |
500 |
600 |
700 |
800 |
900 |
Figure 6.6: Simple vector iteration with τI40 − T40 and starting vector (1, 1, . . . , 1)T
Problem 6.6 When computing the smallest eigenvalue of Tn by the simple vector iteration we can find a better shift than τ above if the extremal points of the spectrum are known. Determine σ such that σIn − Tn exhibits the optimal convergence rate. Hint: On the one hand we would like the quotient (σ −λn−1)/(σ −λn) to be as small as possible. On the other hand |σ −λ1|/(σ −λn) must not become to big. Hint: Equate the two quantities.
6.5Inverse vector iteration
The previous examples have shown that the convergence of simple vector iteration is potentially very slow. The quotient of the second largest to the largest eigenvalue are very close to 1. We noticed this by means of a very simple and small eigenvalue problem. The situation gets much worse if the problems are big.
We have seen in (2.28) that a polynomial in A has the same eigenvectors as A. We therefore may try to find a polynomial that enhances the eigenvalue that we are looking for. This approach is however not successful in the most critical case when the wanted eigenvalue is very close to unwanted. In this situation, the shift-and-invert spectral transformation is most appropriate. Instead of a polynomial we transform the matrix by the rational function f(λ) = 1/(λ − σ) where σ is a so-called shift that is chosen close to the desired eigenvalue. Simple vector iteration with the matrix (A − σI)−1 is referred to as inverse vector iteration, see Algorithm 6.5.
(6.21) x(k) := (A |
− |
σI)−1x(k−1) |
|
(A |
− |
σI) x(k) := x(k−1) |
, k = 1, 2, . . . |
|
|
|
|
|
The iteration converges towards the eigenvector with eigenvalue closest to σ. A linear system of equations has to be solved in each iteration step. Of course only one Cholesky or LU factorization has to be computed as the shift remains constants in all iterations. The stopping criterion is changed into
(6.22) |
kx(k) − y(k)/µ(k)k ≤ tolky(k)k |
122 |
CHAPTER 6. VECTOR ITERATION (POWER METHOD) |
Algorithm 6.3 Inverse vector iteration
1:Choose a starting vector x0 Fn and a shift σ.
2:Compute the LU factorization of A − σI: LU = P (A − σI)
3: y(0) := U−1L−1P x(0). µ(0) = y(0) x(0), λ(0) := σ + 1/µ(0). k := 0.
4:while kx(k) − y(k)/µ(k)k > tolky(k)k do
5:k := k + 1.
6:x(k) := yk−1/kyk−1k.
7:y(k) := U−1L−1P x(k).
8: |
µ(k) := y(k) x(k), λ(k) := σ + 1/µ(k). |
|
|
9: |
end while |
|
|
|
|
|
|
where we have used |
|
|
|
|
Ay(k) − λ(k)y(k) = Ay(k) − σ − |
1 |
y(k) = x(k) − y(k)/µ(k) |
|
|
||
|
µ(k) |
||
The convergence result of Theorem 6.3 can easily be adapted to the new situation if it is taken into account that A − σI has eigenpairs (µi, ui) with µi = 1/(σ − λi).
Theorem 6.7 Let A be symmetric positive definite with spectral decomposition (6.14). Let λ′1, . . . , λ′n be a renumeration of the eigenvalues in (6.14) such such that
(6.23) |
|
|
|
|
|
|
|
|
1 |
|
|
> |
|
1 |
|
≥ · · · ≥ |
|
|
1 |
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|λ1′ |
− σ| |
|λ2′ |
− σ| |
|λn′ − σ| |
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
1 |
|
|
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
Then, provided that u′ |
x(0) |
= 0, the inverse vector iteration of Algorithm 6.5 constructs |
|||||||||||||||||||||||||||||
sequences λ(k) ∞ |
|
and |
|
x(k) |
|
∞ |
that converge linearly towards that eigenvalue λ′ |
clos- |
|||||||||||||||||||||||
|
k=0 |
|
|
|
|
|
|
|
|
k=0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
||
shift σ and to the corresponding eigenvector u |
, respectively. The bounds |
|
|||||||||||||||||||||||||||||
est to the |
|
|
|
λ2′ |
|
|
|
|
|
|
|
|
|
|
|
|
|
1′ |
|
|
|
|
σ |
|
|
|
|
|
|||
sin ϑ |
|
≤ |
− σ |
|
sin ϑ , |
λ |
|
− λ1 |
≤ δ λ2′ |
− |
sin |
|
ϑ . |
|
|||||||||||||||||
|
|
|
|
|
λ′ |
− |
σ |
|
k |
|
|
|
|
|
|
|
|
|
|
|
λ′ |
− |
σ |
|
2k |
|
|
|
|
||
|
(k) |
|
|
|
1 |
|
|
|
|
|
|
|
(0) |
|
|
(k) |
|
|
|
|
1 |
|
|
|
|
|
2 |
(0) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
hold with ϑ(k) = (x(k), u1) and δ = spread(σ((A − σI)−1)).
If the shift σ approximates very well an eigenvalue of A then λ(k) − σ 1 and cover-
λn − σ
gence is very rapid.
Example 6.8 Let us now use inverse iteration to compute the smallest eigenvalue and corresponding eigenvector of the one-dimensional Poisson matrix T = Tn of Example 2.7 with n = 40. If we assume that we know that the smallest eigenvalue λ1 is around 1 then a shift σ = .9 is reasonable, if we want A − σI to still be positive definite. Starting with the vector of all ones three iteration steps su ce to get the desired accuracy of tol = 10−5, see Table 6.1.
Example 6.9 We consider the problem of computing the eigenvector corresponding to a
6.5. INVERSE VECTOR ITERATION |
123 |
|||
|
|
|
|
|
|
k |
λ(k) − λ1 |
sin(ϑ(k)) |
|
|
1 |
2.0188e-02 |
4.1954e-03 |
|
|
2 |
1.7306e-06 |
5.0727e-05 |
|
|
3 |
2.5289e-10 |
6.2492e-07 |
|
|
|
|
|
|
Table 6.1: Computing the lowest eigenvalue of the one-dimensinal Poisson equation by inverse iteration
known eigenvalue. The matrix that we consider is one of the so-called Wilkinson matrices
|
−1 |
18 −1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
−1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
... ... ... |
|
|
|
|
|
|
|
|
|
|
||||
T = |
|
|
1 |
1 |
− |
1 |
|
|
|
|
|
|
|
|
||
|
− |
|
|
1 |
|
|
1 |
|
|
|
|
|
. |
|||
|
|
|
|
|
1 |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
− |
|
. |
|
|
−. |
|
. |
.. |
|
|
|
|
|
|
|
|
|
|
|
.. .. |
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
1 19 |
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
1 |
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
− |
|
− |
|
− |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
20 |
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
Wilkinson matrices are irreducible tridiagonal matrices that have very close eigenvalues. This matrix has the eigenvalues
i |
λi |
i |
λi |
1 |
-1.1254415221199814 |
11 |
5.0002362656192743 |
2 |
0.2538058170966502 |
12 |
5.9999918413270530 |
3 |
0.9475343675285830 |
13 |
6.0000083521880692 |
4 |
1.7893213526669509 |
14 |
6.9999997949295611 |
5 |
2.1302092192694015 |
15 |
7.0000002079042920 |
6 |
2.9610588806935558 |
16 |
7.9999999961918720 |
7 |
3.0430992883895192 |
17 |
8.0000000038418246 |
8 |
3.9960479973346419 |
18 |
8.9999999999455120 |
9 |
4.0043538173235769 |
19 |
9.0000000000548166 |
10 |
4.9997743198148310 |
20 |
9.9999999999996234 |
|
|
|
|
The following MATLAB code constructs the SPARSE tridiagonal matrix T .
n = 40;
e = ones(n,1); f = abs([-n/2+1:n/2]’); T = spdiags([-e f -e], [-1:1], n, n); lam = sort(eig(T));
Computing the 20-th and 21-st eigenvectors could be done in the following way.
>>x = (T - lam(20)*eye(n))\e;
>>y = (T - lam(21)*eye(n))\e;
>>x = x/norm(x); y = y/norm(y);
>>x’*y
ans = 0.00140329005834
>> norm((T - lam(20)*eye(n))*x)
124 |
CHAPTER 6. VECTOR ITERATION (POWER METHOD) |
ans =
7.325760095786749e-15
>> norm((T - lam(21)*eye(n))*y) ans =
7.120036319503636e-15
The computed vectors x and y are good approximations in the sense that they give small residuals. However, the two vectors are nor mutually orthogonal at all. We try to improve orthogonality by apply a second step of inverse iteration
>>x = (T - lam(20)*eye(n))\x;
>>y = (T - lam(21)*eye(n))\y;
>>x = x/norm(x); y = y/norm(y);
>>x’*y
ans = -1.313592004487587e-05
Things have only slightly improved. Therefore, we orthogonalize y explicitely against x.
>>y = y - x*(x’*y);
>>x’*y
ans = -2.155571068436496e-17
>>norm((T - lam(21)*eye(n))*y) ans =
1.557058217172078e-15
>>norm((T - lam(20)*eye(n))*x) ans =
4.117116818055497e-16
This helped. The two eigenvectors are now perpendicular on each other, and the residuals are still fine.
Discussion of inverse iteration
We have seen that
•we can compute eigenvectors corresponding to any (simple and well separated) eigenvalue if we choose the shift properly, and that
•we have very good convergence rates, is the shift is close to an eigenvalue.
However, one may feel uncomfortable solving an ‘almost singular’ system of equation, after all σ ≈ λk means that the condition of A − σI is very big. From the analysis of linear systems of equations we know that this means large errors in the solution. Furtunately, the error that is su ered from when solving with A − σI points in the right direction. To see this, assume that the singular value decomposition of A − σI is given by
A − σI = UΣV , Σ = diag(σ1, . . . , σn), with σ1 ≥ · · · ≥ σn ≥ 0.
If A − σI is ‘almost’ singular then σn 1. If even σn = 0 then (A − σI)vn = 0, i.e., the last right singular vector is an eigenvector of A corresponding to the eigenvalue σ (the shift).
