17.11.2012 Views

Numerical recipes

Numerical recipes

Numerical recipes

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

462 Chapter 11. Eigensystems<br />

§11.6)<br />

We also discuss, in §11.7, how to obtain some eigenvectors of nonsymmetric<br />

matrices by the method of inverse iteration.<br />

Generalized and Nonlinear Eigenvalue Problems<br />

Many eigenpackages also deal with the so-called generalized eigenproblem, [6]<br />

A · x = λB · x (11.0.18)<br />

where A and B are both matrices. Most such problems, where B is nonsingular,<br />

can be handled by the equivalent<br />

(B −1 · A) · x = λx (11.0.19)<br />

Often A and B are symmetric and B is positive definite. The matrix B −1 · A in<br />

(11.0.19) is not symmetric, but we can recover a symmetric eigenvalue problem<br />

by using the Cholesky decomposition B = L · L T of §2.9. Multiplying equation<br />

(11.0.18) by L −1 , we get<br />

where<br />

C · (L T · x) =λ(L T · x) (11.0.20)<br />

C = L −1 · A · (L −1 ) T<br />

(11.0.21)<br />

The matrix C is symmetric and its eigenvalues are the same as those of the original<br />

problem (11.0.18); its eigenfunctions are L T · x. The efficient way to form C is<br />

first to solve the equation<br />

for the lower triangle of the matrix Y. Then solve<br />

Y · L T = A (11.0.22)<br />

L · C = Y (11.0.23)<br />

for the lower triangle of the symmetric matrix C.<br />

Another generalization of the standard eigenvalue problem is to problems<br />

nonlinear in the eigenvalue λ, for example,<br />

(Aλ 2 + Bλ + C) · x =0 (11.0.24)<br />

This can be turned into a linear problem by introducing an additional unknown<br />

eigenvector y and solving the 2N × 2N eigensystem,<br />

�<br />

0 1<br />

−A −1 · C −A −1 · B<br />

�<br />

·<br />

� �<br />

x<br />

= λ<br />

y<br />

� �<br />

x<br />

y<br />

(11.0.25)<br />

This technique generalizes to higher-order polynomials in λ. A polynomial of degree<br />

M produces a linear MN × MN eigensystem (see [7]).<br />

Sample page from NUMERICAL RECIPES IN C: THE ART OF SCIENTIFIC COMPUTING (ISBN 0-521-43108-5)<br />

Copyright (C) 1988-1992 by Cambridge University Press. Programs Copyright (C) 1988-1992 by <strong>Numerical</strong> Recipes Software.<br />

Permission is granted for internet users to make one paper copy for their own personal use. Further reproduction, or any copying of machinereadable<br />

files (including this one) to any server computer, is strictly prohibited. To order <strong>Numerical</strong> Recipes books or CDROMs, visit website<br />

http://www.nr.com or call 1-800-872-7423 (North America only), or send email to directcustserv@cambridge.org (outside North America).

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!