[ Generalised Symmetric Eigenproblem ]
[ Eigenvalues and Eigenvectors ]

In this page we demonstrate we employ ALADDIN's matrix functions to compute solutions to the generalised symmetric eigenvalue problem. More precisely, we seek solutions to the matrix equations:

[ K ].[ phi ] = [ M ].[ phi ].[ lambda ] (nxn) . (nxp) = (nxn) . (nxp) . (pxp) <=== matrix dimensions.where

[ K ] = (nxn) positive definite symmetric matrix; [ M ] = (nxn) positive definite symmetric matrix; [ phi ] = (nxp) matrix containing 'p' eigenvectors; [ lambda ] = (pxp) diagonal matrix containing 'p' eigenvalues;

and ` p <= n `. For structural dynamics applications,
` [K] ` and ` [M] ` correspond to the
stiffness and mass matrices, respectively.

We will assume readers are familiar with:

- Basic concepts from eigenvalue/eigenvector analysis, such as characteristic equations, etc ..
- The methods of Householder Transformation, and Subspace iteration.

A review of the theoretical concepts needed to solve linear matrix equations may be found in Bathe's Finite Element Text.

ALADDIN provides three functions for computing solutions to the generalised symmetric eigen problem:

FUNCTION PURPOSE ================================================================== Eigen( K, M, [p] ) Compute 'p' eigenvalues and eigenvectors. The third argument is a (1x1) matrix cont- aining the number of eigenvalues/vectors to be computed (i.e. `p`). The result is assigned to a ((n+1) x p) matrix called [ eigen ]. Eigenvalue( eigen ) Extract eigenvalues from array [ eigen ]. Eigenvector( eigen ) Extract eigenvectors from array [ eigen ]. ==================================================================

** Example 1 : ** The script of code

/* [a] : Setup (2x2) [K] matrix and [M] = [I] */ K = [ 2, -2; -2, 4 ]; M = [ 1, 0; 0, 1 ]; /* [b] : Compute eigenvalues and eigenvectors */ eigen = Eigen ( K, M, [2]); eigenvalue = Eigenvalue ( eigen ); eigenvector = Eigenvector ( eigen ); /* [c] : Print eigenvalues and eigenvectors */ PrintMatrix( eigenvalue ); PrintMatrix( eigenvector );

generates the output

*** SUBSPACE ITERATION CONVERGED IN 2 ITERATIONS MATRIX : "eigenvalue" row/col 1 units 1 7.63932e-01 2 5.23607e+00 MATRIX : "eigenvector" row/col 1 2 units 1 1.00000e+00 -6.18034e-01 2 6.18034e-01 1.00000e+00

In thie example we compute both eigenvalues and eigenvectors. Only 2 cycles of subspace iteration are needed to reach convergece.

** Note : **
By writing down the characteristic equations for [K] it is
and easy hand calculation to show that the eigenvalues are
given by solutions to

P (x) = (2 - x).(4 - x) - 4 = 0. ==> x_1 = 3 - sqrt(5) = 0.764. x_2 = 3 + sqrt(5) = 5.236.