The Power Method for Eigenvalues and Eigenvectors

POWER_METHOD is a MATLAB library which carries out the power method.

The power method implemented here is given a real square matrix, and seeks to determine the eigenvalue of maximum modulus, and a corresponding eigenvector.

The basic power method will not perform as expected if, corresponding to the maximum modulus, there are complex eigenvalues, or a pair of real eigenvalues of opposite sign. The power method's behavior can break down or be very slow initially if the starting vector has a zero or very small component in the eigenspace corresponding to the maximal eigenvalue.

A second version of the power method is included which can handle the case of complex eigenvalues.


The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.


POWER_METHOD is available in a C version and a C++ version and a FORTRAN77 version and a FORTRAN90 version and a MATLAB version.

Related Data and Programs:

ARPACK, a MATLAB library which computes eigenvalues and eigenvectors of large sparse matrices, accessible via the built-in EIGS command;

PAGERANK, a MATLAB library which illustrates the eigenvalue (power method) and surfer (Markov chain) approaches to ranking web pages.

TEST_EIGEN, a MATLAB library which implements test matrices for eigenvalue analysis.

TEST_MAT, a MATLAB library which defines test matrices.

TEST_MATRIX, a MATLAB library which contains Nick Higham's collection of test matrices.


  1. Richard Burden, Douglas Faires,
    Numerical Analysis,
    Thomson Brooks/Cole, 2004,
    ISBN13: 978-0534392000,
    LC: QA297.B84.
  2. Ward Cheney, David Kincaid,
    Numerical Mathematics and Computing,
    Brooks-Cole Publishing, 2004,
    ISBN: 0534201121,
    LC: QA297.C426.
  3. Gene Golub, Charles VanLoan,
    Matrix Computations, Third Edition,
    Johns Hopkins, 1996,
    ISBN: 0-8018-4513-X,
    LC: QA188.G65.
  4. Eric VanDeVelde,
    Concurrent Scientific Programming,
    Springer, 1994,
    ISBN: 0-387-94195-9,
    LC: QA76.58.V35.

Source Code:

Examples and Tests:

You can go up one level to the MATLAB source codes.

Last modified on 17 July 2008.