Generalized Eigenvalue Problem for Symmetric Matrices
The program calculates the eigenvalues λi and corresponding eigenvectors xi
for the generalized eigenvalue problem:
A x = λ B x.
Alternatively the standard eigenvalue problem
A x = λ x
can also be solved. This is a special case of the generalized eigenvalue problem if we take B=I.
For the algorithms used here to work on the generalized eigenvalue problem is required that
B is positive definite or
B is regular and A is positive definite.
Equations for the calculation
The calculation is performed in 2 steps:
The eigenvalues λi are determined as solutions of the equation
det(A - λB) = 0.
The corresponding eigenvectors xi are determined using the system of equations
(A - λiB) xi = 0.
Application to natural frequencies of multi-mass oscillators
An application for the generalized eigenvalue problem is vibration analysis of dynamical systems with multiple degrees of freedom.
For dynamical systems with multiple degrees of freedom A is the stiffness matrix and B is the mass matrix.
B must be positive definite and matrix A must be positive semi-definite to give nonnegative values for the λi.
The eigenfrequencies ωi of the modes of vibration can be calculated by means of ωi=λi1/2.
The eigenvectors describe the relative strength and direction of motion with which points of the system participate in the oscillation mode.
Transition from the general eigenvalue problem to the standard eigenvalue problem
If the symmetric matrix B is positive definite, it can be decomposed into a product of two regular matrices using the Cholesky method:
B = L LT.
L is a lower triangular matrix.
From the general eigenvalue problem
(A - λ B) x = 0
follows
(A - λ L LT) x = 0.
Multiplying this from the left by L-1, one obtains
(L-1A - λ LT) x = 0.
Now introduce a new vector y:
x = L-T y.
This, when inserted, yields because LTL-T = I:
(L-1AL-T - λ I) y = 0.
This is the standard eigenvalue problem for the matrix L-1AL-T.
It has the same eigenvalues as the original general eigenvalue problem.
The standard eigenvalue problem is then solved using the cyclic Jacobi method.
Positive Definiteness
A matrix A is positive definite if for all vectors x ≠ 0 the following holds:
xTAx > 0.
This is always true, for example, for all diagonal matrices with only positive diagonal elements.
Matrices in which each diagonal element is greater than the sum of the absolute values of the remaining elements in the row are also positive definite.
Calculation example for the Standard Eigenvalue Problem
For die Matrix
⌈ 5 5 5 ⌉
❘ 5 0 0 |
⌊ 5 0 0 ⌋
the determinant for determining the characteristic polynomial is
| 5-λ 5 5 |
| 5 -λ 0 |
| 5 0 -λ |
Evaluating the determinant yields the characteristic polynomial:
-λ3 + 5·λ2 + 50·λ.
The characteristic polynomial has the zeros
λ1 = 0
λ2,3 = 5/2 ± 15/2.
The 3 eigenvalues of the matrix are therefore
λ1 = 0
λ2 = -5
λ3 = 10
Substituting the eigenvalue λ1 = 0 into the system of equations yields:
5 x + 5 y + 5 z = 0
5 x + 0 y + 0 z = 0
5 x + 0 y + 0 z = 0
This has the (non unique) solution
x = 0
y = -z
Thus, one obtains the eigenvector of λ1 = 0
⌈ 0 ⌉
❘ -1 |
⌊ 1 ⌋
Substituting the eigenvalue λ2 = -5 into the system of equations yields:
10 x + 5 y + 5 z = 0
5 x + 5 y + 0 z = 0
5 x + 0 y + 5 z = 0
This has the solution
x = -y
z = y
Thus, one obtains the eigenvector of λ2 = -5
⌈ -1 ⌉
❘ 1 |
⌊ 1 ⌋
Substituting the eigenvalue λ3 = 10 in das Gleichungssystem ein, entsteht:
-5 x + 5 y + 5 z = 0
5 x - 10 y + 0 z = 0
5 x + 0 y - 10 z = 0
This has the solution
x = 2y
z = y
Thus, one obtains the eigenvector of λ3 = 10
⌈ 2 ⌉
❘ 1 |
⌊ 1 ⌋
more JavaScript applications