Eigenvector Calculator – Eigenvalues and Eigenvectors for 2×2 and 3×3 Matrices

Most vectors get knocked off course when a matrix acts on them. Eigenvectors are the rare directions that come out pointing exactly the way they went in — only stretched, shrunk or flipped by a factor called the eigenvalue. Type in a 2×2 or 3×3 matrix and this calculator finds every eigenvalue and eigenvector, shows the characteristic equation behind them, and then proves each pair by checking A·v against λ·v right on the page.

100% FreeNo sign-up neededInstant results

Your matrix A

The matrix loaded is A = [[2, 1], [1, 2]] — a friendly first example, because its two eigendirections sit at neat 45-degree angles. Decimals and negative entries are welcome; a fraction such as 1/2 should be typed as 0.5.

🔒 Everything is calculated in your browser — your numbers never leave your device.

Advanced options — unit eigenvectors and diagonalisation

Each unit vector has length 1: divide every component by the length of the vector as printed. The check beside each one recomputes A times the unit vector and lambda times the unit vector independently.

P holds one eigenvector per column and D holds the matching eigenvalues on its diagonal. When the panel reports a reconstruction error near zero, P D P inverse really is A again.

Unit vectors and the diagonal form are computed from the matrix above, so they update whenever the matrix changes. The main results keep the largest-component form; this panel adds the unit form and the P, D reconstruction.

The eigenvalues

The eigenvalues
λ₁ = 3 · λ₂ = 1
Two different eigenvalues, two independent directions — the full story for this matrix is in the pairs below.

The eigenpairs

λ = 3v = (1, 1)
λ = 1v = (−1, 1)

The characteristic equation

det(A − λI) = 0 → λ² − 4λ + 3 = 0

Eigenvalues are the values of λ that make A − λI impossible to invert — its determinant is zero, so a non-zero v with (A − λI)v = 0 can exist.

Why these pairs can be trusted

Each pair below is checked by direct multiplication: A times v on one side, λ times v on the other. When the two columns agree component for component, v is genuinely an eigenvector with eigenvalue λ — no faith required.

Copied ✓

The working, eigenvalue by eigenvalue

For each eigenvalue λ, the matrix A − λI is row-reduced. A column with no leading 1 is a free direction, and the reduced rows spell out the eigenvector directly.

λ = 3Form A − 3I, reduce it, and read off the free column
A − 3I
−11
1−1
→
Reduced
1−1
00
Eigenvector
v = (1, 1)
λ = 1Form A − 1I, reduce it, and read off the free column
A − 1I
11
11
→
Reduced
11
00
Eigenvector
v = (−1, 1)

Key takeaways

  • Eigenvalues are the roots of the characteristic equation det(A minus lambda I) = 0; every eigenvector is then found by reducing A minus lambda I and reading off its free directions.
  • An eigenvector is a direction, not a single vector: any non-zero multiple works, so the unit-normalised form in the Advanced panel and the largest-component form in the main results are the same direction written two ways.
  • A matrix is diagonalizable exactly when it owns a full set of independent eigenvectors; a repeated eigenvalue that brings too few directions, or a complex pair with no real direction, is the honest reason it is not.

The proof, pair by pair: A·v against λ·v

An eigenvector claim is easy to test and this page tests every one it makes. Multiply the matrix by the vector on the left; multiply the vector by the eigenvalue on the right. If the eigenvector is genuine, the two results are the same vector, component for component — that equality is the definition A·v = λ·v.

λ = 3 with v = (1, 1)
A · v
(3, 3)
=
λ · v
(3, 3)
✓ Equal — genuine eigenvector
λ = 1 with v = (−1, 1)
A · v
(−1, 1)
=
λ · v
(−1, 1)
✓ Equal — genuine eigenvector
Trace check
4
Eigenvalues always add up to the trace: 3 + 1 = 4 ✓
Determinant check
3
And they multiply to the determinant: 3 × 1 = 3 ✓
Independent directions
2
Two linearly independent eigenvectors — enough to span the whole plane

Keep going with matrices and equations

How it works, in 3 steps

1

Build the characteristic equation

Subtract λ down the diagonal to form A − λI, then set its determinant to zero. For a 2×2 matrix that gives a quadratic in λ; for a 3×3, a cubic. The equation is printed under the results so the working can be followed.

2

Solve for the eigenvalues

The roots of the characteristic equation are the eigenvalues. A 2×2 uses the quadratic formula on the trace and determinant; a 3×3 solves its cubic directly. Eigenvalues can repeat, and they can even be complex — this page says so honestly when they are.

3

Reduce, read, then check

For each λ, the system (A − λI)v = 0 is row-reduced. Free columns become the eigenvector’s free components, and the reduced rows fix the rest. Finally every pair is verified by computing A·v and λ·v independently and comparing them.

How each answer is worked out

A·v = λ·v — and λ comes from det(A − λI) = 0: the characteristic equation

Worked example — the matrix loaded above. For A = [[2, 1], [1, 2]] the trace is 4 and the determinant is 2·2 − 1·1 = 3, so the characteristic equation is λ² − 4λ + 3 = 0, which factors as (λ − 3)(λ − 1) = 0: eigenvalues λ = 3 and λ = 1. For λ = 3, A − 3I = [[−1, 1], [1, −1]] reduces to [[1, −1], [0, 0]] — the second column is free, giving v = (1, 1). For λ = 1, A − 1I = [[1, 1], [1, 1]] reduces to [[1, 1], [0, 0]], giving v = (−1, 1). Check: A·(1, 1) = (3, 3) = 3·(1, 1), and A·(−1, 1) = (−1, 1) = 1·(−1, 1). Both directions survive the matrix unchanged in direction — one is stretched threefold, the other passes through exactly as it was.

Worked example — a repeated eigenvalue with a missing direction. Take A = [[3, 1], [0, 3]]. The characteristic equation is (λ − 3)² = 0, so λ = 3 arrives twice. But A − 3I = [[0, 1], [0, 0]] has rank 1: its null space is only the single direction v = (1, 0). One eigenvalue, counted twice, with just one eigenvector to show for it — such a matrix is called defective, and it cannot be diagonalized. This calculator reports the shortage instead of inventing a second vector.

Worked example — eigenvalues that leave the real line. The rotation matrix A = [[0, 1], [−1, 0]] turns every vector by 90 degrees, so no real direction can survive it — and the algebra agrees: the characteristic equation is λ² + 1 = 0, with roots λ = i and λ = −i. Complex eigenvalues are not an error; they are the algebraic shadow of rotation. This page reports them in a ± bi form, with their complex eigenvectors, rather than pretending no answer exists.

A note on how eigenvectors are written. Any non-zero multiple of an eigenvector is an eigenvector for the same λ, so answers can look different between books and still all be correct. This page scales each vector so its largest component is 1 — or, when that produces tidy whole numbers (as with (1, 1) and (−1, 1) above), shows the whole-number form instead. The checks in the panel above use the vector exactly as printed.

Deep dives

Picture the plane as a sheet of graph paper and the matrix as a machine that drags every point to a new position: the sheet can be stretched, sheared, rotated or flipped. Almost every arrow drawn on the sheet ends up pointing somewhere new. The eigenvectors are the exceptional arrows — the ones lying along the machine’s natural axes. They may grow, shrink or reverse, but they never swivel. The eigenvalue is simply the growth factor along that axis: 3 means tripled, 1 means untouched, 0.5 means halved, a negative sign means flipped end to end.

That is why eigenvectors keep appearing across science and engineering. They are the axes along which a complicated transformation behaves simply: the principal axes of a vibrating beam, the directions a fluid is stretched by a flow, the axes of a data cloud in principal component analysis, and — scaled up enormously — the importance directions behind search-engine ranking. Find the axes, and the behaviour of the whole system becomes a short list of independent stretches.

An eigenvalue’s algebraic multiplicity is how many times it appears as a root of the characteristic equation; its geometric multiplicity is how many independent eigenvectors it owns — the dimension of the null space of A − λI. The geometric count can never exceed the algebraic one, and when it falls short the matrix is called defective: it does not own enough independent directions to build a basis. Symmetric matrices (A equal to its own transpose) are never defective — their eigenvectors can always be chosen as a full perpendicular set — which is one reason they dominate applications from mechanics to statistics.

When a full set of independent eigenvectors does exist, the matrix can be diagonalized: A = PDP⁻¹, where D is the diagonal list of eigenvalues and P’s columns are the eigenvectors. Diagonalization turns hard problems into easy ones — powers of A become powers of the eigenvalues, and systems of differential equations split into independent one-line equations. When this calculator reports a full set of directions, diagonalization is possible; when it reports a shortage, it is not, and the honest answer is to say so.

Diagonalisation, worked all the way through

Diagonalisation is the payoff for finding eigenvectors. When a matrix owns a full set of independent eigenvectors, it can be rewritten as A = P D P inverse, where D is the diagonal matrix of eigenvalues and P is the matrix whose columns are the matching eigenvectors. The point of the rewrite is that D is trivial to work with: its powers are just the powers of its diagonal entries, and everything hard about A becomes easy about D. The Advanced panel on this page builds P and D from the displayed pairs for the matrix you type in, computes P inverse, and prints the reconstruction error, so you can watch the identity hold instead of taking it on trust.

Take the matrix loaded on this page, A = [[2, 1], [1, 2]], with eigenvalues 3 and 1 and eigenvectors (1, 1) and (minus 1, 1). Stack the eigenvectors as columns to get P = [[1, minus 1], [1, 1]], and put the eigenvalues on the diagonal in the same order to get D = [[3, 0], [0, 1]]. The inverse of P is [[0.5, 0.5], [minus 0.5, 0.5]], which can be checked by multiplying P by it and recovering the identity matrix: the top-left entry is 1 times 0.5 plus minus 1 times minus 0.5, which is 1, the top-right is 1 times 0.5 plus minus 1 times 0.5, which is 0, and the second row works out the same way. Now multiply P by D to get [[3, minus 1], [3, 1]], and multiply that by P inverse: the top-left entry is 3 times 0.5 plus minus 1 times minus 0.5, which is 2; the top-right is 3 times 0.5 plus minus 1 times 0.5, which is 1; the bottom row gives 1 and 2. The result is [[2, 1], [1, 2]], which is A again, exactly as promised.

Powers are where the rewrite earns its keep. Squaring A directly gives [[5, 4], [4, 5]], by multiplying the matrix by itself: 2 times 2 plus 1 times 1 is 5 on the diagonal, and 2 times 1 plus 1 times 2 is 4 off it. Through the diagonal form, A squared equals P D squared P inverse, and D squared is just [[9, 0], [0, 1]], so the same product gives [[5, 4], [4, 5]] with the eigenvalue arithmetic doing all the work. Cubing works the same way: D cubed is [[27, 0], [0, 1]], P D cubed P inverse is [[14, 13], [13, 14]], and multiplying A squared by A directly gives the same [[14, 13], [13, 14]], since 5 times 2 plus 4 times 1 is 14 and 5 times 1 plus 4 times 2 is 13. For the hundredth power, the direct route needs ninety-nine matrix multiplications while the diagonal route needs two eigenvalue powers, which is why diagonalisation matters far beyond examinations.

The same rewrite splits systems of differential equations into independent one-line equations. If a vector x changes according to x prime equals A x, then writing x as P y turns the system into y prime equals D y, because P inverse A P is D. Each component of y then obeys its own equation, y prime equals lambda y, with solution y equals a constant times e to the power lambda t. The full solution is x equals P y, a combination of exponentials whose rates are the eigenvalues and whose directions are the eigenvectors. A negative eigenvalue means its component decays, a positive one means it grows, and a complex pair means its two components rotate into each other while growing or shrinking according to the real part. That is the whole qualitative story of a linear system, read off the diagonal form.

Diagonalisation also has two honest failure modes, and this page reports both instead of hiding them. The defective matrix [[3, 1], [0, 3]] has eigenvalue 3 twice but only one independent eigenvector, (1, 0), because A minus 3I is [[0, 1], [0, 0]], whose null space is a single line. There is no second column for P, so P cannot be built and the matrix cannot be diagonalised; the nearest available form is a Jordan block, which keeps a 1 just above the diagonal and is beyond what this page constructs. The rotation matrix [[0, 1], [minus 1, 0]] fails differently: its eigenvalues are i and minus i, so over the real numbers there are no eigenvectors at all, and no real P exists. Over the complex numbers it does diagonalise, but that is a complex P, not the real working this page prints. Symmetric matrices, where A equals its own transpose, never fail in either way: their eigenvalues are always real, and their eigenvectors can always be chosen as a full set of perpendicular directions, which is one reason they dominate mechanics, statistics and data analysis.

Unit eigenvectors: the same direction, scaled to length 1

Every eigenvector on this page is printed in its largest-component form, or in a tidy whole-number form when one exists, which is why the loaded matrix shows (1, 1) and (minus 1, 1). That choice is excellent for reading, but many applications want a different scaling: the unit eigenvector, whose length is exactly 1. The Advanced panel computes it for every displayed pair by dividing each component by the vector’s length, defined as the square root of the sum of the squared components, and then re-checks the result by multiplying A by the unit vector and comparing it with lambda times the unit vector. Nothing about the direction changes; only the ruler changes.

For the loaded matrix the arithmetic is short. The vector (1, 1) has length equal to the square root of 1 squared plus 1 squared, which is the square root of 2, about 1.4142, so dividing gives (0.7071, 0.7071). Check it: A times (0.7071, 0.7071) is (2 times 0.7071 plus 0.7071, 0.7071 plus 2 times 0.7071), which is (2.1213, 2.1213), and 3 times (0.7071, 0.7071) is also (2.1213, 2.1213), so the unit vector is a genuine eigenvector with eigenvalue 3. The vector (minus 1, 1) has the same length, the square root of 2, so its unit form is (minus 0.7071, 0.7071). Check it the same way: A times (minus 0.7071, 0.7071) is (minus 1.4142 plus 0.7071, minus 0.7071 plus 1.4142), which is (minus 0.7071, 0.7071), exactly 1 times the unit vector. Both checks pass to the rounding shown, and the panel reports the largest difference it actually computed, so any rounding is visible rather than hidden.

The 3 by 3 preset on this page, [[2, 1, 0], [1, 2, 0], [0, 0, 5]], shows why unit form is worth having in three dimensions too. Its eigenvalues are 3, 1 and 5, with eigenvectors (1, 1, 0), (minus 1, 1, 0) and (0, 0, 1). The first two have length the square root of 2, so their unit forms are (0.7071, 0.7071, 0) and (minus 0.7071, 0.7071, 0); the third already has length 1, so its unit form is itself, (0, 0, 1). Notice something the largest-component form hides: all three unit vectors are perpendicular to each other, since the dot product of the first two is 0.7071 times minus 0.7071 plus 0.7071 times 0.7071, which is 0, and both are perpendicular to (0, 0, 1) because their third components are 0. A set of perpendicular unit vectors is called orthonormal, and it is the nicest possible basis: projections onto it are just dot products, lengths are preserved, and the matrix P built from it satisfies P inverse equals P transpose, so diagonalisation needs no separate inversion step at all.

Unit form is the convention in the places where eigenvectors do real work. In principal component analysis, the directions of greatest variance in a data cloud are reported as unit vectors, because the direction is the finding and any other scaling would smuggle in an arbitrary size. In quantum mechanics, state vectors are normalised to length 1 because their squared components are probabilities, which must sum to 1. In vibration analysis, mode shapes are often normalised so that the largest component is 1, exactly as this page does, or so that the mass-weighted length is 1, which is a unit form under a different ruler. The lesson is the same in every case: always ask which scaling a source uses before comparing numbers. A textbook printing (2, 2) where this page prints (1, 1) and the Advanced panel prints (0.7071, 0.7071) is not disagreeing three ways; it is printing one direction on three rulers. The test that settles every such comparison is the one this page runs: multiply A by the vector and see whether the result is lambda times the vector.

The characteristic polynomial, coefficient by coefficient

The characteristic equation is often treated as a means to an end: expand a determinant, solve for lambda, move on. Its coefficients deserve more attention, because each one is a simple, checkable function of the matrix, and together they explain why the trace and determinant checks printed on this page always work. For a 2 by 2 matrix [[a, b], [c, d]], subtracting lambda down the diagonal gives [[a minus lambda, b], [c, d minus lambda]], whose determinant is (a minus lambda)(d minus lambda) minus bc. Expanding gives lambda squared minus (a plus d) lambda plus (ad minus bc), which is lambda squared minus trace times lambda plus determinant. The eigenvalues are the roots, so their sum is the trace and their product is the determinant, by the same algebra that says the roots of lambda squared minus S lambda plus P are two numbers summing to S and multiplying to P. For the loaded matrix, trace 4 and determinant 3 give lambda squared minus 4 lambda plus 3, which factors as (lambda minus 3)(lambda minus 1), and indeed 3 plus 1 is 4 and 3 times 1 is 3.

For a 3 by 3 matrix the pattern extends by one coefficient. The characteristic polynomial is lambda cubed minus trace times lambda squared plus C times lambda minus determinant, where C is the sum of the three 2 by 2 principal minors: the determinants of the matrices left after deleting one row and the matching column. For the preset [[2, 1, 0], [1, 2, 0], [0, 0, 5]], deleting the third row and column leaves [[2, 1], [1, 2]] with determinant 2 times 2 minus 1 times 1, which is 3; deleting the second row and column leaves [[2, 0], [0, 5]] with determinant 10; deleting the first row and column leaves [[2, 0], [0, 5]] again, also 10. So C is 3 plus 10 plus 10, which is 23, the trace is 2 plus 2 plus 5, which is 9, and the determinant is 2 times (2 times 5 minus 0) minus 1 times (1 times 5 minus 0), which is 20 minus 5, which is 15. The polynomial is lambda cubed minus 9 lambda squared plus 23 lambda minus 15, and it factors as (lambda minus 1)(lambda minus 3)(lambda minus 5): multiplying the first two factors gives lambda squared minus 4 lambda plus 3, and multiplying by lambda minus 5 gives lambda cubed minus 5 lambda squared minus 4 lambda squared plus 20 lambda plus 3 lambda minus 15, which is exactly lambda cubed minus 9 lambda squared plus 23 lambda minus 15. The eigenvalues 1, 3 and 5 sum to the trace 9 and multiply to the determinant 15, as they must.

These coefficient identities give a fast sanity check for any hand computation. If your claimed eigenvalues do not add to the trace, or do not multiply to the determinant, at least one of them is wrong, no matter how plausible the working looked. For a 3 by 3 matrix there is a third check in the middle coefficient: the sum of the pairwise products of the eigenvalues must equal C. For eigenvalues 1, 3 and 5, the pairwise products are 3, 5 and 15, summing to 23, which matches C. If a complex pair is present, the checks still hold with the pair counted twice in the sum, once per eigenvalue, and with the pair’s modulus squared in the product: a pair a plus bi and a minus bi contributes 2a to the trace and a squared plus b squared to the determinant, which is exactly how this page’s trace and determinant notes describe it. A student who checks all three coefficients before trusting a root has already caught most arithmetic slips.

One theorem ties the polynomial to the matrix itself. The Cayley-Hamilton theorem says that every square matrix satisfies its own characteristic equation: substitute the matrix for lambda and the zero matrix comes out. For the loaded matrix, the equation is lambda squared minus 4 lambda plus 3 equals 0, so A squared minus 4A plus 3I should be zero. A squared is [[5, 4], [4, 5]], 4A is [[8, 4], [4, 8]], and 3I is [[3, 0], [0, 3]], so the combination is [[5 minus 8 plus 3, 4 minus 4 plus 0], [4 minus 4 plus 0, 5 minus 8 plus 3]], which is [[0, 0], [0, 0]]. The theorem is not a curiosity: it is how matrix powers beyond the size of the matrix are reduced, since A squared can always be rewritten in terms of A and I for a 2 by 2 matrix, and higher powers follow by repeated reduction. It also explains why the characteristic polynomial, rather than any other polynomial, is the one whose roots are the eigenvalues: the determinant condition det(A minus lambda I) equals 0 is precisely the condition for a non-zero vector to exist in the null space, and that vector is the eigenvector.

A test table: seven matrices and what their answers mean

MatrixEigenvaluesReading
[[2, 1], [1, 2]]3, 1Two distinct real directions, (1, 1) and (minus 1, 1); diagonalizable.
[[0, 1], [minus 1, 0]]i, minus iA 90-degree rotation; no real direction survives, so the pair is complex.
[[1, 1], [0, 1]]1 (twice)A shear; eigenvalue 1 repeats but owns only (1, 0), so the matrix is defective.
[[4, 7], [0, minus 2]]4, minus 2Triangular: the eigenvalues sit on the diagonal, whatever the 7 above it does.
[[minus 3, 0], [0, 6]]minus 3, 6Diagonal: each axis is stretched by its own entry, one flipped by the minus sign.
[[4, 2], [2, 3]]5.5616, 1.4384Symmetric: real eigenvalues, perpendicular eigenvectors, always diagonalizable.
[[2, 9, 9], [0, minus 1, 4], [0, 0, 5]]2, minus 1, 5Triangular 3 by 3: again the diagonal entries are the eigenvalues.

Read the table as a set of predictions to test against the calculator, not as decoration. The triangular rows carry the most useful shortcut in the subject: for any triangular matrix, upper or lower, the eigenvalues are exactly the diagonal entries, because det(A minus lambda I) is the product of its diagonal entries (a minus lambda)(d minus lambda) and the rest, and setting it to zero gives lambda equal to each diagonal entry in turn. The 7 in [[4, 7], [0, minus 2]] and the 9s and 4 in the 3 by 3 row affect the eigenvectors, which lean as the off-diagonal entries grow, but they cannot move the eigenvalues at all. Students who expand a full determinant for a triangular matrix are doing honest work they do not need to do.

The symmetric row deserves its own check, because its eigenvalues are not tidy. For [[4, 2], [2, 3]] the trace is 7 and the determinant is 4 times 3 minus 2 times 2, which is 8, so the characteristic equation is lambda squared minus 7 lambda plus 8 equals 0. The quadratic formula gives lambda equal to (7 plus or minus the square root of 49 minus 32) over 2, which is (7 plus or minus the square root of 17) over 2, giving 5.5616 and 1.4384 to four decimal places. Their sum is 7.0000, the trace, and their product is 8.0000 to rounding, the determinant, so the untidy roots pass both checks. Symmetry guarantees real eigenvalues and perpendicular eigenvectors here, and the calculator’s reduction will show those perpendicular directions; a non-symmetric matrix with the same trace and determinant could have had complex roots instead, which is why the discriminant, trace squared minus 4 determinant, here 49 minus 32, which is 17 and positive, is the number that decides.

The remaining rows are warnings against two common overgeneralisations. The shear [[1, 1], [0, 1]] shows that a repeated eigenvalue does not guarantee a repeated direction: the eigenvalue 1 arrives twice, but A minus I is [[0, 1], [0, 0]], whose null space is only the x-axis, so the matrix is defective and cannot be diagonalised. Contrast the identity multiple [[5, 0], [0, 5]], where the eigenvalue 5 also arrives twice but every vector qualifies, because A minus 5I is the zero matrix and its null space is the whole plane. Multiplicity alone tells you nothing about directions; only the null space does. And the rotation row shows that real matrices need not have real eigenvalues at all: a matrix that turns vectors cannot leave a real direction unchanged, so its characteristic equation must have complex roots, and the honest answer is the pair i and minus i, not an error message and not a forced real number.

Where do these answers get used? In vibration analysis, the eigenvalues of a stiffness-and-mass system are the squares of the natural frequencies, and the eigenvectors are the mode shapes, which is why a bridge or a building is analysed by finding them before it is built. In a Markov chain, where a matrix advances a probability distribution one step, the eigenvalue 1 belongs to the steady-state distribution, and the other eigenvalues, all smaller than 1 in size, govern how fast the chain settles. In data analysis, the eigenvectors of a covariance matrix are the principal components, ordered by eigenvalue, which is the size of the variance along each direction. In each case the workflow is the one this page follows: form the characteristic equation, solve for the eigenvalues, reduce A minus lambda I for the directions, and verify every pair by direct multiplication before trusting it.

A second 2 by 2, worked end to end

The matrix loaded on this page is the friendly one. This example is the second friendly one, chosen because its arithmetic stays whole all the way through.

Let A be [[4, 2], [1, 3]]. The trace is 4 plus 3, which is 7, and the determinant is 4 times 3 minus 2 times 1, which is 10, so the characteristic equation is lambda squared minus 7 lambda plus 10 equals 0, which factors as (lambda minus 5)(lambda minus 2) equals 0. The eigenvalues are 5 and 2. For lambda equals 5, A minus 5I is [[-1, 2], [1, -2]], and the equation minus x plus 2y equals 0 gives x equals 2y, so (2, 1) is an eigenvector, and the check is direct: A times (2, 1) is (10, 5), which is 5 times (2, 1). For lambda equals 2, A minus 2I is [[2, 2], [1, 1]], and 2x plus 2y equals 0 gives x equals minus y, so (1, -1) is an eigenvector, and A times (1, -1) is (2, -2), which is 2 times (1, -1). The two directions are different, the two stretch factors are different, and every non-zero multiple of each eigenvector, including the sign-flipped and unit-length versions, is an eigenvector for the same eigenvalue.

The workflow is the one this page follows for every matrix: trace and determinant, characteristic equation, eigenvalues, then one reduction per eigenvalue, then the multiplication check. Where the characteristic equation does not factor over whole numbers, the same steps still work, with the quadratic formula in place of the factorisation, and where it has no real roots, the eigenvalues are complex, which this page reports rather than printing a real eigenvector that does not exist. A reduction that gives only the zero vector has gone wrong somewhere, because eigenvectors are non-zero by definition, and a reduction whose free variable was set to zero instead of to a non-zero value is the usual cause: choose a non-zero value for the free variable, read off the rest, and check by multiplication before trusting the pair.

A triangular 3 by 3: eigenvalues on the diagonal

For a triangular matrix, the characteristic equation needs no work at all. The shortcut is exact, and it is also the easiest shortcut to misuse.

Let A be [[4, 1, 0], [0, 3, 0], [0, 0, 2]]. Every entry below the diagonal is zero, so the matrix is upper triangular, and the eigenvalues are the diagonal entries: 4, 3, and 2. For lambda equals 4, A minus 4I has rows [0, 1, 0], [0, -1, 0], and [0, 0, -2], so y and z are both zero and x is free, giving (1, 0, 0), and the check is A times (1, 0, 0) equals (4, 0, 0). For lambda equals 3, A minus 3I has rows [1, 1, 0], [0, 0, 0], and [0, 0, -1], so z is zero and x equals minus y, giving (1, -1, 0), and A times (1, -1, 0) is (3, -3, 0), which is 3 times (1, -1, 0). For lambda equals 2, A minus 2I forces x and y to zero and leaves z free, giving (0, 0, 1), and A times (0, 0, 1) is (0, 0, 2). Three eigenvalues, three directions, three checks, and no cubic equation was ever solved.

The shortcut applies only while the matrix is triangular: all entries on one side of the diagonal, below for upper triangular or above for lower triangular, must be zero. A single non-zero entry on the wrong side breaks it, and reading the diagonal of a general matrix as its eigenvalues is one of the commonest eigenvalue errors, because the diagonal of the 2 by 2 example on this page happens to be 2 and 2 while its eigenvalues are 3 and 1. Diagonal matrices are the extreme case, where every off-diagonal entry is zero and each standard basis vector is an eigenvector for its own diagonal entry, and the triangular case sits between the diagonal case and the general case: the eigenvalues are free, but the eigenvectors still need the reduction, one per eigenvalue, with the multiplication check at the end.

Checking the same answers in Python

NumPy computes eigenvalues and eigenvectors in one call. The check that matters is the same multiplication check this page prints, and the comparison needs care, because the answers may look different while being the same.

With NumPy installed, the 2 by 2 example from the first section above is four lines: import numpy as np, then A = np.array([[4, 2], [1, 3]], dtype=float), then values, vectors = np.linalg.eig(A), then print both. The eigenvalues come back as the array values, and the eigenvectors come back as the columns of vectors, so the first eigenvector is vectors[:, 0] and the second is vectors[:, 1], paired with values[0] and values[1] in that order. The order is not guaranteed to match the order on this page or in a textbook, so pair each vector with the value in the same position, never with the value that looks nicest, and verify the pair by computing A @ v - lam * v and checking that the result is zero up to rounding, which is the same A times v equals lambda times v check, done numerically.

Two differences of appearance are expected and are not errors. First, NumPy returns eigenvectors scaled to unit length, so where this page gives (2, 1), Python gives approximately (0.894, 0.447), which is (2, 1) divided by its length, and where a textbook gives (1, -1), Python may give (-0.707, 0.707), the same direction with the opposite sign and unit length. To compare, divide the textbook vector by its length, or multiply the Python vector by a constant until it matches, and compare directions, not raw entries. Second, small rounding errors, of the order of one part in a thousand trillion, are normal in floating-point arithmetic and are not a sign that the pair is wrong: the check is whether the difference is tiny compared with the entries, not whether it is exactly zero. For exact whole-number answers, the hand reduction in the sections above is the authority; Python is the fast check, and the multiplication is the proof in both.

Frequently asked questions

What is an eigenvector, in plain words?

An eigenvector of a matrix is a non-zero vector whose direction the matrix does not change. Multiply the matrix by the vector and the result is the same vector stretched by some factor — possibly shrunk, possibly flipped — but never rotated away. That factor is its eigenvalue. For A = [[2, 1], [1, 2]], the vector (1, 1) comes out as (3, 3): same direction, three times the length, so (1, 1) is an eigenvector with eigenvalue 3.

How do you find eigenvalues?

Through the characteristic equation. If v is an eigenvector with eigenvalue λ, then Av = λv, which rearranges to (A − λI)v = 0. A non-zero v can satisfy that only when A − λI fails to be invertible, meaning its determinant is zero. So: form A − λI, take its determinant, set it to zero and solve. A 2×2 matrix gives a quadratic — for [[a, b], [c, d]] it is λ² − (a + d)λ + (ad − bc) = 0 — and a 3×3 gives a cubic. The roots are the eigenvalues.

How do you find the eigenvector for an eigenvalue?

Substitute the eigenvalue back into (A − λI)v = 0 and solve the system — usually by row reduction, which is what this page does. The system always has free variables (that is guaranteed by the eigenvalue), and each free variable generates one independent eigenvector. For λ = 3 in [[2, 1], [1, 2]], the reduced system says the first component equals the second, so v = (1, 1) — and equally (2, 2) or (−5, −5), since every multiple along that line works.

Can eigenvalues be complex numbers?

Yes — whenever the characteristic equation has complex roots, which for real matrices always arrive in conjugate pairs a + bi and a − bi. Geometrically they signal rotation: a matrix that turns vectors, like the 90-degree rotation [[0, 1], [−1, 0]] with eigenvalues i and −i, leaves no real direction unchanged, so no real eigenvector can exist. This calculator reports complex eigenvalues honestly in a ± bi form — for 2×2 matrices with their complex eigenvectors, and for 3×3 matrices alongside the real eigenvalue, whose eigenvector is worked out in full.

Why does my eigenvector look different from my textbook’s?

Because an eigenvector is a direction, not a specific vector: every non-zero multiple of an eigenvector is an eigenvector for the same eigenvalue, including negative multiples, which point the opposite way along the same line. This page scales each vector so its largest component is 1, or shows a tidy whole-number form when one exists — a book may print (2, 2) where this page prints (1, 1), and both are right. The surest test is the one this page runs for you: check that A·v really equals λ·v.

What if every vector is an eigenvector?

That happens precisely when the matrix is a multiple of the identity, such as [[5, 0], [0, 5]] or the zero matrix. Such a matrix stretches every direction by the same factor, so every direction qualifies, with the single eigenvalue repeated. The characteristic equation still reports that eigenvalue with full multiplicity, and the null space of A − λI is the whole space. This calculator says so plainly and offers the standard basis vectors as a valid — if unglamorous — set of eigenvectors.

How do I normalise an eigenvector to a unit vector?

Divide every component by the vector’s length, which is the square root of the sum of the squared components. For the vector (1, 1) the length is the square root of 2, about 1.4142, so the unit form is (0.7071, 0.7071), and its length is 1. The Advanced panel on this page does that division for every displayed pair and re-checks A times the unit vector against lambda times the unit vector, so the normalised form is verified, not just rescaled. Note that the sign is still free: (minus 0.7071, minus 0.7071) is the same direction with the opposite sign, and both are correct unit eigenvectors.

When can a matrix be diagonalised, and when can it not?

Exactly when it owns a full set of linearly independent eigenvectors: two for a 2 by 2 matrix, three for a 3 by 3 matrix. Then A equals P D P inverse, where D lists the eigenvalues on its diagonal and P holds one eigenvector per column, and the Advanced panel on this page builds P and D and shows the reconstruction error. Two honest failures exist. A defective matrix, such as [[3, 1], [0, 3]], repeats an eigenvalue without bringing enough directions, so P cannot be completed. A matrix with a complex pair, such as a rotation, has no real eigenvectors for that pair, so no real P exists either. Symmetric matrices are the reassuring exception: they are never defective, and their eigenvectors can always be chosen perpendicular.

What does the characteristic polynomial tell me beyond the eigenvalues?

Its coefficients are the matrix’s fingerprints. For a 2 by 2 matrix the polynomial is lambda squared minus trace times lambda plus determinant, so the trace is the sum of the eigenvalues and the determinant is their product, and both checks are printed on this page. For a 3 by 3 matrix the middle coefficient is the sum of the three 2 by 2 principal minors, which is why the cubic for [[2, 1, 0], [1, 2, 0], [0, 0, 5]] is lambda cubed minus 9 lambda squared plus 23 lambda minus 15, factoring as (lambda minus 1)(lambda minus 3)(lambda minus 5). The Cayley-Hamilton theorem adds one more fact: every matrix satisfies its own characteristic equation, so for [[2, 1], [1, 2]] the combination A squared minus 4A plus 3I is exactly the zero matrix.

Why does this page not give complex eigenvectors for 3 by 3 matrices?

Because the page’s working is deliberately real: its row reduction, its printed eigenvectors and its A times v checks all live in real arithmetic, and a complex eigenvector for a 3 by 3 matrix cannot be printed honestly inside that working without a second, complex layer of reduction. The page therefore reports the complex pair, gives the real eigenvalue and its eigenvector in full, and says plainly that the pair’s eigenvectors are not worked out, rather than printing something it has not computed. For 2 by 2 matrices the situation is different: the complex eigenvector follows from a single row of A minus lambda I, so it is given in full, with its conjugate, and its A times v check is printed beside it.

Can a 3 by 3 matrix have only 2 eigenvalues?

Yes, as distinct values: a repeated eigenvalue counts once in a list of distinct values, even though it is a double root of the characteristic equation. A 3 by 3 matrix always has 3 eigenvalues counting multiplicity, but a repeated root means only 2 distinct numbers, and the repeated eigenvalue may have one or two independent eigenvectors. A repeated root is still an eigenvalue, and its eigenvectors still need the reduction and the multiplication check.

Why does Python give a different-looking eigenvector from my textbook?

Because eigenvectors are free up to scale and sign, and NumPy returns them scaled to unit length. Where a textbook gives (2, 1), Python gives approximately (0.894, 0.447), the same direction at length 1, and the sign may also flip. Divide the textbook vector by its length, or rescale the Python vector, and compare directions, then verify with the multiplication check.

How do I check an eigenvector by hand?

Compute A times v and lambda times v separately, and compare them entry by entry. If they are equal, the pair is correct; if they differ, either the eigenvalue or the reduction is wrong, and the error is in the arithmetic, not in the method. The check needs no software, works for every size in this page, and is the step to run before trusting any eigenvector, from any source.

More maths calculators

Disclaimer: This calculator is an educational tool. Eigenvalues of 3×3 matrices are found numerically from the characteristic cubic, and all working is carried out in decimal arithmetic, so values that are mathematically exact (such as 1/3 or √2) are shown rounded — eigenvectors are scaled so the largest component is 1, or shown in a tidy whole-number form when one exists. Complex eigenvectors are given for 2×2 matrices; for a 3×3 matrix with a complex pair, the real eigenvalue and its eigenvector are worked out in full and the pair is reported. For coursework demanding exact symbolic answers, work the same steps by hand and treat this page as the check, not the source.