edu.mines.jtk.dsp
Class Eigen

java.lang.Object
  extended by edu.mines.jtk.dsp.Eigen

public class Eigen
extends java.lang.Object

Special-purpose eigensolvers for digital signal processing. Methods of this class solve small eigen-problems efficiently.

Version:
2008.09.04
Author:
Dave Hale, Colorado School of Mines

Constructor Summary
Eigen()
           
 
Method Summary
static void solveSymmetric22(double[][] a, double[][] v, double[] d)
          Computes eigenvalues and eigenvectors for a symmetric 2x2 matrix A.
static void solveSymmetric22(float[][] a, float[][] v, float[] d)
          Computes eigenvalues and eigenvectors for a symmetric 2x2 matrix A.
static void solveSymmetric33(double[][] a, double[][] v, double[] d)
          Computes eigenvalues and eigenvectors for a symmetric 3x3 matrix A.
static void solveSymmetric33Fast(double[][] a, double[][] v, double[] d)
          Computes eigenvalues and eigenvectors for a symmetric 3x3 matrix A.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Eigen

public Eigen()
Method Detail

solveSymmetric22

public static void solveSymmetric22(float[][] a,
                                    float[][] v,
                                    float[] d)
Computes eigenvalues and eigenvectors for a symmetric 2x2 matrix A. If the eigenvectors are placed in columns in a matrix V, and the eigenvalues are placed in corresponding columns of a diagonal matrix D, then AV = VD.

Parameters:
a - the symmetric matrix A.
v - the array of eigenvectors v[0] and v[1].
d - the array of eigenvalues d[0] and d[1].

solveSymmetric22

public static void solveSymmetric22(double[][] a,
                                    double[][] v,
                                    double[] d)
Computes eigenvalues and eigenvectors for a symmetric 2x2 matrix A. If the eigenvectors are placed in columns in a matrix V, and the eigenvalues are placed in corresponding columns of a diagonal matrix D, then AV = VD.

Parameters:
a - the symmetric matrix A.
v - the array of eigenvectors v[0] and v[1].
d - the array of eigenvalues d[0] and d[1].

solveSymmetric33

public static void solveSymmetric33(double[][] a,
                                    double[][] v,
                                    double[] d)
Computes eigenvalues and eigenvectors for a symmetric 3x3 matrix A. If the eigenvectors are placed in columns in a matrix V, and the eigenvalues are placed in corresponding columns of a diagonal matrix D, then AV = VD.

Parameters:
a - the symmetric matrix A.
v - the array of eigenvectors v[0], v[1], and v[2].
d - the array of eigenvalues d[0], d[1], and d[2].

solveSymmetric33Fast

public static void solveSymmetric33Fast(double[][] a,
                                        double[][] v,
                                        double[] d)
Computes eigenvalues and eigenvectors for a symmetric 3x3 matrix A. If the eigenvectors are placed in columns in a matrix V, and the eigenvalues are placed in corresponding columns of a diagonal matrix D, then AV = VD.

This method is typically faster but not as accurate when eigenvalues differ by more than a few orders of magnitude.

Parameters:
a - the symmetric matrix A.
v - the array of eigenvectors v[0], v[1], and v[2].
d - the array of eigenvalues d[0], d[1], and d[2].