Eigenvalues and Eigenvectors
An eigenvalue λ of a matrix A is a scalar with a non-zero vector v such that Av = λv. The calculator constructs the characteristic polynomial det(A − λI), finds its real roots, and for each eigenvalue recovers an eigenvector from the null space of A − λI.
The equation Av = λv, solved in stages
Most vectors change direction when a matrix acts on them. A few do not: they are only stretched or compressed, and those directions are the matrix's eigenvectors. The factor each is scaled by is its eigenvalue, and together they describe the transformation in its own natural terms.
This calculator takes a 2×2 or 3×3 matrix and reports the characteristic polynomial, the real eigenvalues, and one eigenvector for each distinct eigenvalue.
Finding eigenvalues and finding eigenvectors are two separate problems, and the tool keeps them separate. The eigenvalues come from a polynomial in λ; the eigenvectors come afterwards, one linear system per eigenvalue, using the eigenvalues already found.
Showing the characteristic polynomial explicitly matters because it is where hand-working usually goes wrong. For a 2×2 matrix it follows from the trace and determinant alone, and comparing that line against your own locates an arithmetic slip before it reaches the eigenvectors.
How to use this calculator
- Enter the matrix row by row Commas separate entries within a row and semicolons separate rows, so a 2×2 matrix is written 4, 1; 2, 3. Whitespace around separators is ignored.
- Keep it square, and 2×2 or 3×3 Eigenvalues are defined only for square matrices, and this solver covers the two sizes worked by hand. Anything else is rejected with an explicit message.
- Read the characteristic polynomial Its coefficients are built from the matrix entries before any root-finding happens. Checking it first separates a setup error from a root-finding one.
- Read the eigenvalues, then the eigenvectors One eigenvector is reported per distinct eigenvalue. A repeated eigenvalue is listed once in that section, even though it appears twice among the roots.
How the eigenvalues and eigenvectors are found
The characteristic polynomial is assembled from the matrix entries directly rather than by symbolic determinant expansion. In the 2×2 case it is λ² − tr(A)·λ + det(A), built from the trace and the determinant. In the 3×3 case the three coefficients are the negated trace, the sum of the three principal 2×2 minors, and the negated determinant.
The roots are then found in closed form. A quadratic is solved by the standard formula; a cubic is reduced to depressed form and solved by Cardano's method, with the sign of the discriminant selecting the branch — one real root when it is positive, a repeated root when it is zero, and the trigonometric form giving three distinct real roots when it is negative. Only real roots are reported, so a matrix whose eigenvalues are genuinely complex returns an explicit statement to that effect rather than an empty result.
For each distinct eigenvalue the matrix A − λI is formed and reduced to row-echelon form. A free column in that reduction gives a non-trivial null vector, which is exactly an eigenvector; the vector is then normalised to unit length before display, which is why the components are rarely whole numbers.
Because the eigenvalues are computed numerically, the rank test cannot use exact zero. The tolerance scales with the largest entry, so a matrix of large numbers is not falsely reported as full rank. Where no null vector is recovered, the tool says so rather than inventing one.
What each input means
- A Matrix — form field “Square matrix (2×2 or 3×3)”
- A square matrix of order 2 or 3, entered with commas between entries and semicolons between rows. Entries may be negative or fractional.
- λ Eigenvalue
- A scaling factor for which some non-zero vector satisfies Av = λv. Reported only when real. Zero is a legitimate eigenvalue, and means the matrix is singular.
- v Eigenvector
- A non-zero vector in the null space of A − λI, normalised to unit length. Any non-zero multiple of it is equally an eigenvector.
Worked examples
Every number below is produced by the same calculation engine the tool above runs. Nothing here is typed by hand, so the walkthrough cannot drift from what you get when you enter the same values yourself.
A 2×2 matrix with two distinct eigenvalues
The matrix with rows (4, 1) and (2, 3). The trace is 7 and the determinant is 10, so the characteristic polynomial factors cleanly and both eigenvalues are whole numbers.
Inputs Square matrix (2×2 or 3×3) = 4, 1; 2, 3
- Matrix A 2×2 [[4, 1], [2, 3]]
- Characteristic polynomial det(A − λI) = λ² − tr(A)·λ + det(A) = λ² − 7·λ + 10
- Eigenvalues λ1 = 5, λ2 = 2
- Eigenvector λ = 5: v = (0.707107, 0.707107)
- Eigenvector λ = 2: v = (-0.447214, 0.894427)
Result λ1 = 5, λ2 = 2; λ=5 → v=(0.707107, 0.707107); λ=2 → v=(-0.447214, 0.894427)
The polynomial line reads λ² − 7λ + 10, assembled from the trace and determinant without expanding a determinant symbolically. Its roots are 5 and 2, and their sum returns the trace while their product returns the determinant — two independent checks that need no further computation.
Each eigenvector is reported with unit length, so instead of a tidy pair such as (1, 1) the components are decimal. Scaling by any non-zero constant gives an equally valid eigenvector; the normalisation is a display convention, not part of the mathematics.
A symmetric 3×3 matrix
Rows (2, −1, 0), (−1, 2, −1) and (0, −1, 2). Symmetric matrices always have real eigenvalues, which makes this a good case for seeing the cubic branch resolve to three of them.
Inputs Square matrix (2×2 or 3×3) = 2, -1, 0; -1, 2, -1; 0, -1, 2
- Matrix A 3×3 [[2, -1, 0], [-1, 2, -1], [0, -1, 2]]
- Characteristic polynomial det(A − λI) = λ³ + (-6)·λ² + (10)·λ + (-4)
- Eigenvalues λ1 = 3.41421, λ2 = 0.585786, λ3 = 2
- Eigenvector λ = 3.41421: v = (0.5, -0.707107, 0.5)
- Eigenvector λ = 0.585786: v = (0.5, 0.707107, 0.5)
- Eigenvector λ = 2: v = (-0.707107, 0, 0.707107)
Result λ1 = 3.41421, λ2 = 0.585786, λ3 = 2; λ=3.41421 → v=(0.5, -0.707107, 0.5); λ=0.585786 → v=(0.5, 0.707107, 0.5); λ=2 → v=(-0.707107, 0, 0.707107)
The cubic has a negative discriminant, so the trigonometric branch of the solution applies and all three roots are real and distinct. That branch exists precisely because Cardano's formula would otherwise route three real roots through complex intermediate values.
The three eigenvectors come out mutually perpendicular. That is a property of symmetric matrices rather than of this calculation, and checking it is a useful independent test of the result.
Reading the result
What an eigenvector is defined up to
Scale. If v is an eigenvector then so is every non-zero multiple of it, including its negative. The unit-length form shown here is one representative of a whole line of solutions, so agreement with your own answer means agreement in direction, not in components.
When no real eigenvalues exist
A rotation in the plane turns every vector, so no direction survives unchanged and the characteristic polynomial has no real roots. The tool reports that explicitly. It is a genuine result about the matrix, not a limitation of the search.
When you would use this
Diagonalising a transformation
A matrix with a full set of independent eigenvectors becomes diagonal in the basis they form, turning repeated matrix multiplication into repeated multiplication of scalars. The eigenvalues are that diagonal.
Stability and long-run behaviour
Where a matrix is applied repeatedly, as in a discrete dynamical system, the eigenvalue of largest magnitude dominates the long run. Whether it exceeds one decides whether the system grows or settles.
Assumptions and limitations
What this calculator assumes
- The matrix is square and of order 2 or 3, with real entries.
- Only real eigenvalues are reported; complex ones are stated as absent rather than computed.
- Eigenvectors are normalised to unit length, and one is reported per distinct eigenvalue.
- Numerical tolerances scale with the largest entry in the matrix, so results depend mildly on its magnitude.
Where it stops being the right tool
- Matrices larger than 3×3 are out of scope, as are non-square ones.
- Complex eigenvalues and eigenvectors are not produced, so rotation matrices return only a statement that no real eigenvalues exist.
- A single eigenvector per eigenvalue: a multi-dimensional eigenspace is not spanned, and its dimension is not reported.
Common mistakes
Expecting the eigenvector to match yours component for component
Why it happens. Hand-working usually stops at a tidy integer vector such as (1, 2), while the tool normalises to unit length. The two look unrelated even when they describe the same direction.
How to avoid it. Divide your vector by its own length, or check that the ratio between components matches. Direction is what has to agree.
Reading “no real eigenvalues” as a failure
Why it happens. Every other case returns numbers, so a sentence in their place looks like the calculation gave up. For a rotation it is the mathematically correct answer.
How to avoid it. Check the characteristic polynomial: a negative discriminant in the 2×2 case confirms the roots are genuinely complex rather than merely unfound.
Assuming a repeated eigenvalue has only one eigenvector
Why it happens. One vector is shown per eigenvalue, which reads as a complete answer. A repeated eigenvalue often has a two-dimensional eigenspace with infinitely many independent directions.
How to avoid it. Solve (A − λI)v = 0 yourself for the repeated value and count the free variables. That number is the dimension of the eigenspace.
Learn why this works
Frequently asked questions
What is the characteristic polynomial?
It is det(A − λI) written out as a polynomial in λ, whose roots are the eigenvalues. For a 2×2 matrix it is λ² − tr(A)·λ + det(A); for a 3×3 it is a cubic whose coefficients come from the trace, the principal 2×2 minors and the determinant.
Why does my matrix report no real eigenvalues?
Because the characteristic polynomial has no real roots. A rotation in the plane is the standard example: it changes the direction of every vector, so no real eigenvector exists. Complex eigenvalues are not computed here.
Why are the eigenvector components not whole numbers?
Each eigenvector is normalised to unit length before display. Any non-zero multiple of it is equally an eigenvector, so scaling it back to whole numbers is always valid.