Skip to content
Free public beta until December 4, 2026: every course is open, no card needed. After that, the first chapter of each course stays free and full access is a one-time $39 ($19 for up to 100 founding members chosen for helpful feedback). Your progress is kept. How the beta works

Recipe

Estimate a dominant eigenvalue by power iteration and the Rayleigh quotient

Use when: you have a square matrix A with (or assumed to have) a single strictly dominant eigenvalue, and want a numerical estimate of it and its eigenvector without forming the characteristic polynomial

Goal: a unit eigenvector for A's dominant eigenvalue \lambda_1, plus a numerical estimate of \lambda_1 itself, both accurate to as many digits as needed

Taught in The Rayleigh quotient and accelerated convergence

  1. 1

    Pick any nonzero \mathbf x_0. Any vector works in principle. It just can't be exactly orthogonal to the true dominant eigenvector. That's a real but rare failure mode -- see the mistakes below.

    Example

    For A=\begin{bmatrix}4&1\\2&3\end{bmatrix}, take \mathbf x_0=(0,1). That's an arbitrary, unremarkable choice, chosen only to be simple to compute by hand.

    • A single, strictly dominant real eigenvalue exists — proceed with the steps below. The direction and the eigenvalue estimate both converge at the rate \lvert\lambda_2/\lambda_1\rvert.
    • A is symmetric — proceed exactly the same way. But the Rayleigh quotient's OWN error shrinks roughly like the SQUARE of the vector's error. That happens once the iteration is close. The number typically stabilizes noticeably faster than the direction does.
    • A's two largest eigenvalues are a complex-conjugate pair, or two real eigenvalues tied in magnitude — this recipe does not apply at all. Plain power iteration never settles onto a single direction. Section 7's own QR algorithm handles this case instead. It's a completely different method, not a later version of this recipe.

    ⚡ Shortcut

    A rough guess for the dominant eigen-direction may be available for free. If so, use it instead of an arbitrary vector. Pick \mathbf x_0=\mathbf e_i, the standard basis vector for whichever row i has the largest \lvert a_{ii}\rvert (or the largest absolute row sum). That row is a reasonable bet for lying closer to the dominant eigen-direction than a generic guess. It can shave an iteration or two off convergence for no extra cost. For A above, row 1 has the larger diagonal entry (4>3). So \mathbf x_0=(1,0) would be the shortcut's own pick.

    Why: the theorem in Section 2 requires only a nonzero component along the dominant eigenvector. Almost every vector has that. There is nothing to solve for or compute at this step, only a choice to make.

  2. 2

    Compute \mathbf y=A\mathbf x_k.

    Example

    \mathbf y=A\mathbf x_0=\begin{bmatrix}4&1\\2&3\end{bmatrix}\begin{bmatrix}0\\1\end{bmatrix}=\begin{bmatrix}1\\3\end{bmatrix}.

    Why: this is the one operation the whole method is built from. Repeated multiplication by A is exactly what amplifies the dominant eigen-component fastest. This follows from Section 2's own derivation.

  3. 3

    Set \mathbf x_{k+1}=\mathbf y/\lVert\mathbf y\rVert_2.

    Example

    \lVert(1,3)\rVert=\sqrt{1^2+3^2}=\sqrt{10}\approx3.1623, so \mathbf x_1\approx(0.3162,\,0.9487).

    Why: without this step the raw vector's length runs away, or collapses, every iteration, exactly as Section 2's own common-trap example showed. Normalizing is what keeps the DIRECTION legible without the numbers overflowing.

  4. 4

    Compute the Rayleigh quotient at the newly normalized vector: \lambda_{k+1}=\mathbf x_{k+1}^{\mathsf T}A\mathbf x_{k+1} (no division needed -- \mathbf x_{k+1} is already unit length).

    Example

    A\mathbf x_1\approx(2.2136,\,3.4785), so \lambda_1\approx(0.3162)(2.2136)+(0.9487)(3.4785)\approx0.700+3.300=4.000.

    Why: this is exactly the formula derived above, simplified by the normalization Step 3 already performed. It is a genuine numerical estimate of \lambda_1, not just a byproduct of the arithmetic.

  5. 5

    Repeat Steps 2--4, tracking \lambda_{k+1} each time. Stop once two consecutive estimates agree to the precision needed. Report the final \mathbf x_k and \lambda_k.

    Example

    Continuing this same example: \lambda_2\approx4.6471, \lambda_3\approx4.8820, \lambda_4\approx4.9578, \lambda_5\approx4.9840. Each step's error from the true \lambda_1=5 shrinks by close to the same factor every time: \lvert\lambda_2/\lambda_1\rvert=2/5=0.4. This matches exactly what the theorem predicts.

    Why: a single Rayleigh-quotient value proves nothing on its own. It's the TREND across consecutive steps that distinguishes genuine convergence from an unlucky one-off coincidence. It's also the only stopping signal available that doesn't require already knowing \lambda_1.

Common mistakes

  • Skipping Step 3 (forgetting to normalize). The raw vector's length blows up or shrinks toward zero every iteration instead of converging to a fixed direction. This is exactly the failure Section 2's own common-trap worked example demonstrates.
  • Computing the Rayleigh quotient from the vector BEFORE this step's normalization -- using \mathbf y instead of \mathbf x_{k+1} -- is a mistake. So is forgetting the denominator entirely when the vector isn't actually unit length. The formula \mathbf x^{\mathsf T}A\mathbf x alone is only correct once \mathbf x has been normalized first.
  • Reporting the very first Rayleigh estimate as final without checking that it has actually stabilized. One lucky-looking number is not the same as convergence.
  • Starting from a vector that happens to be exactly orthogonal to the true dominant eigenvector (rare, but possible with a deliberately unlucky choice). In exact arithmetic the iteration would never acquire a component along it. It would instead converge to the SECOND-largest eigenvalue. Floating-point round-off almost always introduces a tiny nonzero component that eventually rescues the computation. But it can take many extra iterations to do so.