Eigenvalues and Eigenvectors: An Intuitive Introduction

Apply a matrix to almost any vector and it gets rotated and stretched. But a few special directions only stretch. Those are eigenvectors, and how much they stretch is the eigenvalue.

By Petrus Sheya

July 19, 2026 · 6 min read

Take any matrix and multiply it by a vector. What happens to the vector?

Usually, two things at once: it gets stretched, and it gets rotated. It ends up pointing somewhere new, with a new length. That's just what matrices do, they twist space around.

But here's the question worth sitting with: is there ever a direction that only stretches, and never rotates?

Turns out, yes. Almost every matrix has a few of these special directions. Find them, and the matrix stops looking like a tangle of numbers and starts looking like something you can actually picture.


Picture the matrix as a stretchy sheet

Imagine a rubber sheet with a woven grain in it, like fabric. Grab the sheet and pull it diagonally. Most of the threads tilt as well as stretch. But the threads running exactly along the grain lines? They just get longer. They don't tilt at all.

A matrix does the same thing to space. Most vectors get pushed off their own line. But a handful of special directions, the grain of the transformation, only get scaled.

We call those directions eigenvectors. We call the amount they get scaled by the eigenvalue.

Let's find them by hand, with a real matrix.


Why most directions get knocked off course

Take the matrix

A=[2112]A = \begin{bmatrix} 2 & 1 \\ 1 & 2 \end{bmatrix}

Pick a vector vv and compute AvAv. Do this for a few random directions and you'll notice AvAv almost never points along the same line as vv. It swings off to one side.

Visualizer 01

Most Directions Get Rotated

Drag the sky-blue vector v around the circle. Watch the amber vector Av, and notice how far it swings away from v's own line.

Avveigen-directions
angle between v and Av16.2°
|Av| (stretch factor)2.752

Drag vv all the way around the circle. Watch the angle between vv and AvAv in the readout below. For most of the circle, that angle is some annoying nonzero number.

But at exactly four points (really just two lines through the origin), the angle snaps to zero. At those points, AvAv lands right back on top of vv's own line. That's not a coincidence, and it's not special to this matrix. Every square matrix has directions like this (sometimes complex ones, more on that later).


Naming what just happened

So we write the special condition like this:

Av=λvAv = \lambda v

In words: applying AA to vv gives you back the same vector vv, just scaled by some number λ\lambda. No rotation, no shearing, just a stretch (or a shrink, or a flip if λ\lambda is negative).

vv is the eigenvector. λ\lambda is the eigenvalue. For our matrix AA, the two eigen-directions you found by dragging are (1,1)(1,1) and (1,1)(1,-1), with eigenvalues 33 and 11. Check it yourself: A(1,1)=(3,3)=3(1,1)A(1,1) = (3,3) = 3(1,1). Exactly what the readout showed.


What if you don't already know the eigenvector?

Dragging until the angle hits zero works, but it's not exactly a method. So how do we find eigenvectors without guessing?

Here's a neat trick: start with literally any vector, and just keep applying AA to it, over and over.

Visualizer 02

Any Direction Eventually Finds the Grain

This starting vector is nowhere near an eigenvector. Press play and watch it get pulled toward one anyway, step by step.

dominant eigenvector (45°)
current angle200.0°
estimated λ
true dominant λ3.0000

Press play. The starting vector isn't an eigenvector, it's nowhere close. But watch what happens after a few steps: it gets pulled toward the (1,1)(1,1) direction anyway. Every application of AA nudges it a little closer to the grain, because the stretch along that direction (factor of 33) dominates the stretch along the other eigen-direction (factor of 11).

Notice the estimated eigenvalue in the readout climbing toward 3.03.0 as kk grows. This is called power iteration, and it's not just a classroom trick. Search engines, recommendation systems, and vibration analysis in bridges all lean on this exact idea: repeat a transformation enough times, and whatever survives is the dominant eigenvector.


Finding eigenvalues without a picture

Dragging and iterating both work, but they're visual. What's the actual algebra?

Rearrange Av=λvAv = \lambda v like this:

(AλI)v=0(A - \lambda I)v = 0

For this to have a solution where vv isn't just the zero vector, the matrix (AλI)(A - \lambda I) has to be "squishing," meaning it collapses some direction to zero. That only happens when its determinant is zero:

det(AλI)=0\det(A - \lambda I) = 0

Expand that determinant for a 2x2 matrix and you get a plain quadratic in λ\lambda, called the characteristic polynomial. Its roots are the eigenvalues.

Visualizer 03

Eigenvalues Are Just Where a Curve Hits Zero

Drag d to change the matrix. The two roots of this parabola are the two eigenvalues, no matrix arithmetic needed once you can see the curve.

-2-101234561.003.00f(λ) = λ² − 4.0λ + 3.0
λ₁1.000
λ₂3.000
trace / det4.00 / 3.00

Drag dd, one entry of the matrix. Watch the parabola shift, and watch its two roots slide along the λ\lambda-axis. Those roots are the eigenvalues. No matrix algebra required to see them, just where a curve crosses zero.

And notice something else: no matter how far you drag dd, this parabola always crosses zero twice. It never lifts off the axis entirely. That's not luck, it's because this matrix is symmetric (the numbers mirror across the diagonal), and symmetric matrices are guaranteed real eigenvalues. Not every matrix gets that guarantee.


When there's no real grain at all

So what happens with a matrix that isn't symmetric? Specifically, what happens with a matrix that rotates?

A pure rotation matrix turns every vector by the same angle. If it turns every vector, there's no direction left that stays on its own line. No real eigenvector survives.

Visualizer 04

No Real Grain Left: When Eigenvalues Go Complex

Slide θ away from zero and the matrix starts rotating, not just stretching. Watch the trail spiral instead of settling on a line.

Complex eigenvalues — no real eigenvector
eigenvalues0.99 ± 0.53i
magnitude |λ|1.12

Set θ\theta to 00 and the trail sits still on one point, run through the exact same story as before. Now slide θ\theta up. The trail stops converging to a line and starts spiraling instead, because every step both rotates and scales the vector.

The eigenvalues haven't vanished, they've just gone complex: λ=a±bi\lambda = a \pm bi. The real part aa tells you how the spiral scales, the imaginary part bb tells you how fast it turns. There's no contradiction here, just a reminder that "eigenvector" sometimes means a direction in the complex plane, not a direction you can literally draw with a pencil.


The short version

An eigenvector is a direction a matrix doesn't rotate, it only stretches. The eigenvalue is exactly how much stretching happens along that direction.

You can find these directions by dragging until AvAv lines up with vv. You can find them by repeatedly applying the matrix and watching where any vector ends up, the dominant one always wins. Or you can find them algebraically, as the roots of the characteristic polynomial, det(AλI)=0\det(A - \lambda I) = 0.

And sometimes, when a matrix only rotates, there's no real direction left to find at all, just a pair of complex eigenvalues describing a spiral.

Once you see eigenvectors as "the directions that don't rotate," a huge amount of linear algebra stops being symbol pushing and starts being geometry.


All visualizations are interactive React components running entirely in your browser, built with plain SVG and no external libraries. The power-iteration and complex-eigenvalue animations use requestAnimationFrame to step forward; everything else responds instantly to drags and slider changes.