Resources for Co-design at POP CoE

Arnoldi's method

Arnoldi’s method is an algorithm that was originally used to reduce an arbitrary matrix \(A \in \mathbb{C}^{n \times n}\) to Hessenberg form. However, it can also be used to approximate eigenvalues as shown in the following.

The following pseudocode illustrates Arnoldi’s method:

choose initial vector v(1) with ||v(1)|| = 1
for j = 1,...,m 
    w = A*v(j)
    for i = 1,...,j
        h(i,j) = <w, v(i)>
        w = w - h(i,j)*v(i)
    h(j+1,j) = ||w||_2
    v(j+1) = w / h(j+1,j)

The procedure starts with an arbitrary normalized vector \(\mathbf{v}_1\). Then it iteratively computes a Krylov subspace \(\mathcal{K} = <\mathbf{v}_1, A \mathbf{v}_1, A^2 \mathbf{v}_1, ..., A^{m-1} \mathbf{v}_1>\). The whole system of Krylov vectors is orthogonalized using Gram-Schmidt orthogonalization.

Projecting the matrix $A$ onto this Krylov subspace then yields

\[V_m^* A V_m = H_m,\]

where \(V_m\) is the matrix containing the \(m\) Krylov vectors computed by the Arnoldi method and \(H_m\) is an upper Hessenberg matrix of dimension \(m\). Since the dimension of the Hessenberg matrix is usually much smaller than that of the original matrix \(A\) the eigenvalues of \(H_m\) can efficiently computed by the QR method. The obtained eigenvalues are called Ritz eigenvalues and they converge to the \(m\) largest eigenvalues of \(A\).

Related programs: Related disciplines: Eigenvalue problems ·