eig:

Syntax:	eig ( A )
	eig ( A , B )

	eigs ( A )
	eigs ( A , B )

	eign ( A )
	eign ( A , B )

Description:

	eig ( A )

		Computes the eigenvectors, and values of matrix
		A. eig() returns a LIST with elements `val' and `vec'
		which are the eigenvalues and eigenvectors. Eig checks
		for symmetry in A, and uses the appropriate solver.

	eig ( A , B )

		Computes the eigenvectors, and values of A, and B.
		Where A * x = lambda * B * x. The values and vectors
		are returned in a list with element names `val' and
		`vec'. Eig checks for symmetry in A and B and uses the
		appropriate solver.

	eigs ( A )

		This function solves the standard eigenvalue problem,
		like eig, but the symmetric solver is always
		used. Returns a list with elements `val' and `vec'.

	eigs ( A , B )

		The symmetric solution to the generalized eigenvalue
		problem. Returns a list with elements `val' and
		`vec'. Always uses the symmetric eigensolver.	

	eign ( A )

		This function solves the standard eigenvalue problem,
		like eig, but the non-symmetric solvers are always
		used. eign returns a list containing:

		lvec: A matrix of the left eigenvectors.

		rvec: A matrix of the right eigenvectors.

		val: A row vector of the eigenvalues.

	eign ( A , B )

		The nonsymmetric solution to the generalized
		eigenvalue problem. Returns a list containing:

		alpha: A row vector, such that val = alpha / beta

		beta: A row vector, such that val = alpha / beta

		lvec: A matrix of the left eigenvectors.

		rvec: A matrix of the right eigenvectors.


	Uses the LAPACK subroutines DSYEV/ZHEEV or DGEEV/ZGEEV.

Example:

	The generalized eigenvalue problem arises quite regularly in
	structures. From the second order differential equations
	describing a lumped mass system arise $M$ and $K$, coefficient
	matrices representing the mass and stiffness of the various
	physical degress of freedom. The equations are formulated as
	follows:

	  dx^2 
        M ---  + K x = F
	  dt^2

	Which leads to the eigenvalue problem:

	K v = w^2 M v

	For a two degree of freedom system we might have:

		> m = eye(2,2)
		> k = [5,1;1,5]
		> </ val ; vec /> = eig(k, m);
		
		> // Test the solution
		
		> k * vec[;1]
		    -2.83  
		     2.83  
		> val[1] * m * vec[;1]
		    -2.83  
		     2.83  
		
		> // Properties of the solution
		
		> vec' * m * vec
		        1  -4.27e-17  
		-4.27e-17          1  
		
		> vec' * k * vec
		        4  -1.71e-16  
		 1.23e-16          6  

	The eigenvalues and vectors are sometimes obtained by
	converting the generalized problem into a standard eigenvalue
	problem (this is only feasible under certain conditions).

		> a = m\k
		 a =
		        5          1  
		        1          5  
		> eig(a).val
		 val =
		        4          6  
		> eig(a).vec
		 vec =
		   -0.707      0.707  
		    0.707      0.707  

See Also: svd, schur
