Power Iteration for the Dominant Eigenvalue
Find the largest eigenvalue and its eigenvector by repeatedly multiplying a vector by the matrix and normalizing.
Problem
Power iteration finds the dominant eigenvalue of a matrix, the one largest in magnitude, using only matrix-vector products. Starting from a random vector, repeated multiplication amplifies the component along the dominant eigenvector faster than the others, so the direction converges.
Iteration
Each step computes A v, normalizes it, and estimates the eigenvalue with the Rayleigh quotient v' A v. Convergence speed depends on the ratio of the second-largest to the largest eigenvalue magnitude.
python
import numpy as np
A=np.array([[2.,1.],[1.,3.]])
v=np.array([1.,0.])
for k in range(8):
w=A@v; v=w/np.linalg.norm(w)
lam=v@A@v
print(k,'eigenvalue est',round(lam,5))
print('true',np.round(np.linalg.eigvalsh(A),5))Result
The Rayleigh-quotient estimate climbs to the true dominant eigenvalue (about 3.618) within a handful of iterations, and v aligns with its eigenvector. Convergence is geometric with ratio |lambda2 / lambda1|; when the top two eigenvalues are close, it slows. Shifting or deflation extracts further eigenvalues, and inverse iteration targets the smallest.
- Power iteration needs only the action of A, so it scales to large sparse matrices.
- It fails to converge when the two largest eigenvalues have equal magnitude (e.g. a complex conjugate pair).
- This method is the historical seed of Google PageRank and of Kronos stability-eigenvalue screening.