Computes the eigenvalues and eigenvectors of a real symmetric matrix.

Namespace: Imsl.Math
Assembly: ImslCS (in ImslCS.dll) Version: 6.5.0.0

Syntax

C#
[SerializableAttribute]
public class SymEigen
Visual Basic (Declaration)
<SerializableAttribute> _
Public Class SymEigen
Visual C++
[SerializableAttribute]
public ref class SymEigen

Remarks

Orthogonal similarity transformations are used to reduce the matrix to an equivalent symmetric tridiagonal matrix. These transformations are accumulated. An implicit rational QR algorithm is used to compute the eigenvalues of this tridiagonal matrix. The eigenvectors are computed using the eigenvalues as perfect shifts, Parlett (1980, pages 169, 172). The reduction routine is based on the EISPACK routine TRED2. See Smith et al. (1976) for the EISPACK routines. Further details, some timing data, and credits are given in Hanson et al. (1990).

Let M = the number of eigenvalues, \lambda = the array of eigenvalues, and x_j is the associated eigenvector with jth eigenvalue.

Also, let \varepsilon be the machine precision. The performance index, \tau, is defined to be

\tau  = \mathop{\max}\limits_{1 \le j \le M} 
            \frac{\left\| Ax_j-\lambda _j x_j \right\|_1 }{10N\varepsilon \left\| A 
            \right\|_1 \left\| x_j \right\|_1}

While the exact value of \tau is highly machine dependent, the performance of SymEigen is considered excellent if \tau\lt 1, good if 1 \le 100, and poor if \tau> 100. The performance index was first developed by the EISPACK project at Argonne National Laboratory; see Smith et al. (1976, pages 124-125).

Inheritance Hierarchy

System..::.Object
Imsl.Math..::.SymEigen

See Also