This paper presents a new method for computing all the eigenvectors of a real n× n symmetric band matrix T. The algorithm computes an orthogonal matrix Q=[ q 1,…, q n] and a diagonal matrix Λ=diag{ λ 1,…, λ n } such that TQ= QΛ. The basic ideas are rather simple. Assume that q 1,…, q k−1 and λ 1,…, λ k−1 have already been computed. Then q k is obtained via the Rayleigh Quotient Iteration (RQI) method. Starting from an arbitrary vector u 0 the RQI method generates a sequence of vectors u ℓ , ℓ=1,2,… , and a sequence of scalars ρ ℓ, ℓ=0,1,2,… The theory tells us that these two sequences converge (almost always) to an eigenpair (ρ *, u *) . The appeal of the RQI method comes from the observation that the final rate of convergence is cubic. Furthermore, if the starting point is forced to satisfy q T i u 0=0 for i=1,…, k−1, as our method does, then all the coming vectors, u ℓ,ℓ=1,2,… , and their limit point, u * , should stay orthogonal to q 1,…, q k−1 . In practice orthogonality is lost because of rounding errors. This difficulty is resolved by successive orthogonalization of u ℓ against q 1,…, q k−1 . The key for effective implementation of the algorithm is to use a selective orthogonalization scheme in which u ℓ is orthogonalized only against “close” eigenvectors. That is, u ℓ is orthogonalized against q i only if | ρ ℓ− λ i |⩽ γ where γ is a small threshold value, e.g., γ=∥ T∥ ∞/1000. An essential feature of the proposed orthogonalization scheme is the use of reorthogonalization. The ORQI method is supported by forward and backward error analysis. Preliminary experiments on medium-size problems ( n⩽1000) are quite encouraging. The average number of iterations per eigenvector was less than 13, while the overall number of flops required for orthogonalizations is often below n 3/2.
Read full abstract