gives a list of the eigenvalues of the square matrix m.


gives the generalized eigenvalues of m with respect to a.


gives the first k eigenvalues of m.


gives the first k generalized eigenvalues.

Details and Options

  • Eigenvalues finds numerical eigenvalues if m contains approximate real or complex numbers.
  • Repeated eigenvalues appear with their appropriate multiplicity.
  • An × matrix gives a list of exactly eigenvalues, not necessarily distinct.
  • If they are numeric, eigenvalues are sorted in order of decreasing absolute value.
  • The eigenvalues of a matrix m are those for which for some nonzero eigenvector .
  • The generalized eigenvalues of m with respect to a are those for which .
  • When matrices m and a have a dimension shared null space, then of their generalized eigenvalues will be Indeterminate.
  • Ordinary eigenvalues are always finite; generalized eigenvalues can be infinite.
  • For numeric eigenvalues, Eigenvalues[m,k] gives the k that are largest in absolute value.
  • Eigenvalues[m,-k] gives the k that are smallest in absolute value.
  • Eigenvalues[m,spec] is always equivalent to Take[Eigenvalues[m],spec].
  • Eigenvalues[m,UpTo[k]] gives k eigenvalues, or as many as are available.
  • SparseArray objects and structured arrays can be used in Eigenvalues.
  • Eigenvectors has the following options and settings:
  • CubicsFalsewhether to use radicals to solve cubics
    MethodAutomaticmethod to use
    QuarticsFalsewhether to use radicals to solve quartics
  • Explicit Method settings for approximate numeric matrices include:
  • "Arnoldi"Arnoldi iterative method for finding a few eigenvalues
    "Banded"direct banded matrix solver for Hermitian matrices
    "Direct"direct method for finding all eigenvalues
    "FEAST"FEAST iterative method for finding eigenvalues in an interval (applies to Hermitian matrices only)
  • The "Arnoldi" method is also known as a Lanczos method when applied to symmetric or Hermitian matrices.
  • The "Arnoldi" and "FEAST" methods take suboptions Method->{"name",opt1->val1,}, which can be found in the Method subsection.


open allclose all

Basic Examples  (4)

Machine-precision numerical eigenvalues:

Eigenvalues of an arbitrary-precision matrix:

Eigenvalues of an exact matrix:

Symbolic eigenvalues:

Scope  (18)

Basic Uses  (5)

Find the eigenvalues of a machine-precision matrix:

Approximate 20-digit precision eigenvalues:

Eigenvalues of a complex matrix:

Exact eigenvalues:

The eigenvalues of large numerical matrices are computed efficiently:

Subsets of Eigenvalues  (5)

The largest five eigenvalues:

Three smallest eigenvalues:

Find the four largest eigenvalues, or as many as there are if fewer:

Repeated eigenvalues are listed multiple times:

Repeats are considered when extracting a subset of the eigenvalues:

Generalized Eigenvalues  (4)

Generalized machine-precision eigenvalues:

Generalized exact eigenvalues:

Compute the result at finite precision:

Find the generalized eigenvalues of symbolic matrices:

Find the two smallest generalized eigenvalues:

Special Matrices  (4)

Eigenvalues of sparse matrices:

Eigenvalues of structured matrices:

IdentityMatrix always has all-one eigenvalues:

Eigenvalues of HilbertMatrix:

Options  (10)

Cubics  (1)

Eigenvalues uses Root to compute exact eigenvalues:

Explicitly use the cubic formula to get the result in terms of radicals:

Method  (8)

"Arnoldi"  (5)

The Arnoldi method can be used for machine- and arbitrary-precision matrices. The implementation of the Arnoldi method is based on the "ARPACK" library. It is most useful for large sparse matrices.

The following options can be specified for the method "Arnoldi":

  • "BasisSize"the size of the Arnoldi basis
    "Criteria"which criteria to use
  • the maximum number of iterations
  • "Shift"
  • the Arnoldi shift
  • "StartingVector"
  • the initial vector to start iterations
  • "Tolerance"the tolerance used to terminate iterations
  • Possible settings for "Criteria" include:

  • "Magnitude"based on Abs
    "RealPart"based on Re
    "ImaginaryPart"based on Im
    "BothEnds"a few eigenvalues from both ends of the symmetric real matrix spectrum
  • Compute the largest eigenvalue using different "Criteria" settings. The matrix m has eigenvalues :

    By default, "Criteria"->"Magnitude" selects a largest-magnitude eigenvalue:

    Find the largest real-part eigenvalues:

    Find the largest imaginary-part eigenvalue:

    Find two eigenvalues from both ends of the matrix spectrum:

    Use "StartingVector" to avoid randomness:

    Different starting vectors may converge to different eigenvalues:

    Use "Shift"->μ to shift the eigenvalues by transforming the matrix to . This preserves the eigenvectors but changes the eigenvalues by -μ. The method compensates for the changed eigenvalues. "Shift" is typically used to find eigenpairs where there is no criteria such as largest or smallest magnitude that can select them:

    Manually shift the matrix and adjust the resulting eigenvalue:

    Automatically shift and adjust the eigenvalue:

    "Banded"  (1)

    The banded method can be used for real symmetric or complex Hermitian machine-precision matrices. The method is most useful for finding all eigenvalues.

    Compute the two largest eigenvalues for a banded matrix:

    "FEAST"  (2)

    The FEAST method can be used for real symmetric or complex Hermitian machine-precision matrices. The method is most useful for finding eigenvalues in a given interval.

    The following suboptions can be specified for the method "FEAST":

  • "ContourPoints"select the number of contour points
    "Interval"interval for finding eigenvalues
    "MaxIterations"the maximum number of refinement loops
    "NumberOfRestarts"the maximum number of restarts
    "SubspaceSize"the initial size of subspace
    "Tolerance"the tolerance to terminate refinement
    "UseBandedSolver"whether to use a banded solver
  • Compute eigenvalues in the interval :

    Use "Interval" to specify the interval:

    The interval endpoints are not included in the interval in which FEAST finds eigenvalues.

    Quartics  (1)

    A 4×4 matrix:

    In general, for a 4×4 matrix, the result will be given in terms of Root objects:

    You can get the result in terms of radicals using the Cubics and Quartics options:

    Applications  (1)

    Smallest eigenvalue of a Hilbert matrix:

    Properties & Relations  (3)

    Characteristic polynomial:

    The generalized characteristic polynomial is given by TemplateBox[{{a, -, {b,  , lambda}}}, Det]:

    The generalized characteristic polynomial defines the finite eigenvalues only:

    The eigenvalues of a random symmetric matrix:

    The eigenvectors are all real:

    Possible Issues  (5)

    The general symbolic case very quickly gets very complicated:

    The expression sizes increase faster than exponentially:

    Here is a 20×20 Hilbert matrix:

    Compute the smallest eigenvalue exactly and give its numerical value:

    Compute the smallest eigenvalue with machine-number arithmetic:

    The smallest eigenvalue is not significant compared to the largest:

    Use sufficient precision for the numerical computation:

    When eigenvalues are closely grouped, the iterative method for sparse matrices may not converge:

    The iteration has not converged well after 1000 iterations:

    You can give the algorithm a shift near the expected value to speed up convergence:

    Eigenvalues and Eigenvectors are not absolutely guaranteed to give results in corresponding order:

    The sixth and seventh eigenvalues are essentially equal and opposite:

    In this particular case, the seventh eigenvector does not correspond to the seventh eigenvalue:

    Instead it corresponds to the sixth eigenvalue:

    Use Eigensystem[mat] to ensure corresponding results always match:

    The endpoints given to an interval as specified for the FEAST method are not included. Set up a matrix with eigenvalues at 3 and 9:

    Computing the eigenvalues in the interval does not return the values at the endpoints:

    Enlarge the interval to so that FEAST finds the eigenvalues 3 and 9:

    Wolfram Research (1988), Eigenvalues, Wolfram Language function, https://reference.wolfram.com/language/ref/Eigenvalues.html (updated 2015).


    Wolfram Research (1988), Eigenvalues, Wolfram Language function, https://reference.wolfram.com/language/ref/Eigenvalues.html (updated 2015).


    @misc{reference.wolfram_2020_eigenvalues, author="Wolfram Research", title="{Eigenvalues}", year="2015", howpublished="\url{https://reference.wolfram.com/language/ref/Eigenvalues.html}", note=[Accessed: 20-January-2021 ]}


    @online{reference.wolfram_2020_eigenvalues, organization={Wolfram Research}, title={Eigenvalues}, year={2015}, url={https://reference.wolfram.com/language/ref/Eigenvalues.html}, note=[Accessed: 20-January-2021 ]}


    Wolfram Language. 1988. "Eigenvalues." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2015. https://reference.wolfram.com/language/ref/Eigenvalues.html.


    Wolfram Language. (1988). Eigenvalues. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/Eigenvalues.html