This approach goes back to the fundamental motivation behind eigenvalue:

We can write this product using the outer form of matrix-matrix products:

Assume that

Then:

The range of is nearly

Pick a random vector with and

We have that simply converges to the span of .

Algorithm pseudo-code:

while not_converged:
    zk = A * qk
    ev = dot(zk, qk)
    qk = zk / norm(zk)
  • ev converges to the eigenvalue.
  • qk does not necessarily converge, but span(qk) converges to span(x1).

We can make a more precise statement. Denote by

for a general complex eigenvalue. is a unit eigenvector associated with .

Then, because of the step qk = zk / norm(zk), we get

So converges to .

Eigenvalues, Eigenvalues cannot be computed exactly, Why eigenvalues