Click or drag to resize
SymEigen Class
Computes the eigenvalues and eigenvectors of a real symmetric matrix.
Inheritance Hierarchy
SystemObject
  Imsl.MathSymEigen

Namespace: Imsl.Math
Assembly: ImslCS (in ImslCS.dll) Version: 6.5.2.0
Syntax
[SerializableAttribute]
public class SymEigen

The SymEigen type exposes the following members.

Constructors
Methods
  NameDescription
Public methodEquals
Determines whether the specified object is equal to the current object.
(Inherited from Object.)
Protected methodFinalize
Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
(Inherited from Object.)
Public methodGetHashCode
Serves as a hash function for a particular type.
(Inherited from Object.)
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Public methodGetValues
Returns the eigenvalues.
Public methodGetVectors
Return the eigenvectors of a symmetric matrix of type double.
Protected methodMemberwiseClone
Creates a shallow copy of the current Object.
(Inherited from Object.)
Public methodPerformanceIndex
Returns the performance index of a real symmetric eigensystem.
Public methodToString
Returns a string that represents the current object.
(Inherited from Object.)
Top
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).

See Also

Reference

Other Resources