The Arnoldi Iteration
The process described above is intuitive. Unfortunately, it is also unstable. This is where the Arnoldi iteration enters.
The Arnoldi iteration uses the stabilized Gram–Schmidt process to produce a sequence of orthonormal vectors, q1, q2, q3, …, called the Arnoldi vectors, such that for every n, the vectors q1, …, qn span the Krylov subspace . Explicitly, the algorithm is as follows:
- Start with an arbitrary vector q1 with norm 1.
- Repeat for k = 2, 3, …
- for j from 1 to k − 1
- for j from 1 to k − 1
The j-loop projects out the component of in the directions of . This ensures the orthogonality of all the generated vectors.
The algorithm breaks down when qk is the zero vector. This happens when the minimal polynomial of A is of degree k. In most applications of the Arnoldi iteration, including the eigenvalue algorithm below and GMRES, the algorithm has converged at this point.
Every step of the k-loop takes one matrix-vector product and approximately 4mk floating point operations.
Read more about this topic: Arnoldi Iteration