power_method


power_method, a Python code which carries out the power method, for determining the eigenvalue of largest magnitude, and the corresponding eigenvector, of a given matrix.

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.

Licensing:

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

Languages:

power_method is available in a C version and a C++ version and a Fortran90 version and a MATLAB version and an Octave version and a Python version.

Related Data and Programs:

pagerank, a Python code which illustrates the eigenvalue (power method) and surfer (Markov chain) approaches to ranking web pages.

test_eigen, a Python code which implements test matrices for eigenvalue analysis.

test_matrix, a Python code which defines test matrices.

Reference:

  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:


Last modified on 24 September 2022.