# Eigenvalues and Eigenvectors

### GENERALISED SYMMETRIC EIGENPROBLEM

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.

### EIGENVALUES AND EIGENVECTORS

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, );
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.
```

Developed in April 1996 by Mark Austin