Eigen Value Problem
Eigen Value Problem
Koh CE6003
Chapter 3: Numerical Eigenvalue Problems Sep 2005
Eigenvalue problems are often encountered in engineering mechanics problems, e.g.
determination of natural frequencies and mode shapes in dynamic analysis, and buckling
load in stability analysis.
Kφ=λφ or [K − λ I ] φ = 0 (1)
For eigen-problems, we look for non-trivial solutions of φ (i.e. at least one element in φ
is nonzero). There are n eigenvalues and eigenvectors satisfying (1).
For reason of numerical convergence, we will arrange the eigenvalues in the ascending
order as follows.
0 ≤ | λ 1 | ≤ | λ 2 | ≤ K ≤ | λ n −1 | ≤ | λ n |
The eigen-pair for the i-th mode is denoted as (λ i , φ i ) .
K is positive definite if all eigenvalues are positive, i.e. λ i > 0, i = 1, K , n . Most
engineering mechanics problems give positive definite matrices if properly constructed
and constrained.
K is positive semi-definite if all eigenvalues are non-negative, i.e. λ i ≥ 0 , i = 1, K , n .
This may happen in engineering mechanics problems where constraint is insufficient Æ
singular K. The number of zero eigenvalues normally corresponds to the number of rigid
body modes in the system. (Real life examples?)
Alternatively, in some methods, it is necessary to compute eigenvalues for unrestrained
structure/elements. See, for example, Koh, C G, K K Ang and R Xu (1997), “An eigen-
force method for finite element analysis and reanalysis”, International Journal for
Numerical Methods in Engineering, V40(5), pp. 777-796.
(2) Generalized eigen-problems
K φ = λ KG φ or [K − λ K G ] φ = 0 (2)
where K = elastic stiffness matrix, K G = geometric stiffness matrix (due to second-order
effect of compression load), λ = buckling load (or the corresponding scaling factor), and
φ = buckling mode shape.
3-1
In dynamic analysis, the undamped free vibration problem leads to
Kφ=λMφ or [K − λ M] φ = 0
(3)
K φ=λCφ or [K − λ C] φ = 0 (4)
Scaling of Eigenvectors
Each eigen-pair (λ i , φ i ) satisfies (3), we have
K φi = λi M φi i = 1, 2, ..., n (5)
Hence, the eigenvector is defined by its “shape”. But its “length” (or norm) is
indeterminate and arbitrary – up to us to scale or normalize it.
φ Ti K φ j = 0 and φ Ti M φ j = 0 if i ≠ j (7)
Proof:
Consider two different modes i and j.
K φi = λi M φi (8)
K φj =λj M φj (9)
3-2
Pre-multiply (8) by φ Tj Æ a scalar equation
φ Tj K φ i = λ i φ Tj M φ i (10)
1× n n×n n ×1
1× n n×n n ×1
The zero “cross-product” term means that the eigenvectors for two different modes are
orthogonal with respect to M, or they are said to be M-orthogonal.
(If λ i = λ j for i ≠ j , consider limiting case where λ i is very close to but not exactly
equal to λ j Æ same conclusion.)
(If φ i has been computed, λ i can be computed from the Rayleigh quotient.)
Since the eigenvector is arbitrary in length, it is possible to scale it. For example,
(
dividing φ i by M i* ) 1/ 2
as obtained in (16) gives
3-3
φ Ti M φ i = 1 (19)
Characteristic Polynomial
To obtain non-trivial solutions for [K − λ M ] φ = 0 means
det [K − λ M ] = 0 (26)
(If det ≠ 0, there is a unique solution. But a trivial solution is a solution and thus the
only one.)
In principle, solving Eq. (26) is equivalent to finding roots of an n-th degree polynomial
Pn (λ) = 0 . (27)
This is called the characteristic polynomial of the eigen-problem. Nevertheless, when n
is large, root-finding of high-degree polynomial is not easy.
Pn ( λ ) = det [K − λ M ]
λ2 λ3 λ4 λ5
λ
0
3-4
1. Inverse Iteration Method
Suitable for finding the lowest mode (with smallest | λ | )
Aim: To solve Kφ=λMφ (28)
Idea: Try an iteration vector x k for φ and substitute this into the RHS. Get a new
solution for φ from the LHS, and call it x k +1 .
K x k +1 = λ M x k (29)
But λ is unknown. Since we want only the shape of φ , λ is absorbed in the
new iteration vector called x k +1 . That is,
K x k +1 = M x k (30)
Iterate until the shape converges. When convergence is reached (hopefully), the
eigenvalue is given by the magnitude ratio of x k +1 and x k .
K x k +1 = y k (31)
Convergence Proof
Express x k as a linear combination of all eigenvectors:
n
x k = ∑ φ i (q i )k = Φ qk (31a)
i =1
Similarly,
n
x k +1 = ∑ φ i ( q i ) k +1 = Φ q k +1 (31b)
i =1
⎡ λ1 zeroes⎤ ⎡ q1 ⎤ ⎡ q1 ⎤
⎢ λ2 ⎥ ⎢ ⎥ ⎢ ⎥
i.e. ⎢ ⎥ ⎢q 2 ⎥ = ⎢q 2 ⎥
⎢ O ⎥ ⎢M⎥ ⎢M⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎣zeroes λ n ⎦ ⎣q n ⎦ k +1 ⎣q n ⎦ k
3-5
Let’s assume the first mode has the smallest eigenvalue in magnitude, i.e.
| λ1 | < | λ 2 | ≤ K ≤ | λ n | .
(qi )k +1 (qi )1 ⎛ λ1 ⎞ k
Æ = ⎜ ⎟ (Let’s compare to the lowest mode)
(q1 )k +1 (q1 )1 ⎜⎝ λ i ⎟⎠
Note that higher modes diminish at faster rates.
n
⎡ (q ) (q ) (q ) ⎤
x k +1 = ∑ φi (qi )k +1 = (q1 )k +1 ⎢φ1 1 k +1 + φ 2 2 k +1 + . .. + φ n n k +1 ⎥
i =1 ⎣ (q1 )k +1 (q1 )k +1 (q1 )k +1 ⎦
1 ⎡ ⎛ λ1 ⎞ ⎤
k k
⎛ λ1 ⎞
x k +1 = k ⎢φ1 (q1 )1 + φ2 (q2 )1 ⎜⎜ ⎟⎟ + . .. + φn (qn )1 ⎜⎜ ⎟⎟ ⎥ (34)
λ1 ⎢ ⎝ λ2 ⎠ ⎝ λ n ⎠ ⎥⎦
⎣
1
As k becomes large, x k +1 → ( q 1 )1 φ 1 , i.e. the iteration vector shape approaches the
λ k1
1st mode shape.
1
Similarly, as k is large, xk → (q1 )1 φ1
λk1−1
φ Ti K φ i
Recall: Rayleigh quotient is λ i = (exact)
φ Ti M φ i
In a similar way, define the following Rayleigh quotient for approximation:
x Tk+1 K x k +1 x Tk+1 y k
ρ k +1 = = (35)
x Tk+1 M x k +1 x Tk+1 y k +1
When x k +1 approaches φ 1 in shape, ρ k +1 → λ 1
During the process, the iteration vector can be re-scaled (and normalized). Re-scaling
will not change the result for ρ k +1 since its effects in the numerator and denominator of
the Rayleigh quotient will cancel out.
Notes:
• In (34), the convergence depends on the decay of ratios λ 1 / λ i (i ≠ 1). Obviously
the largest ratio is the slowest to diminish. Thus the convergence rate depends on
λ 1 / λ 2 since λ 2 is the nearest eigenvalue to λ 1 .
• The proof assumes | λ 1 | < | λ 2 | . If the first two eigenvalues are equal and of the
same sign, the proof becomes more complicated but the idea is still applicable. If
3-6
they are equal but of different signs, shifting is needed to separate them (to discuss
later).
• The proof also assumes (q1 )1 ≠ 0 , i.e. the starting iteration vector x1 contains φ1 .
Else, the solution will, in theory, not converge to the lowest mode but to the next
lowest mode if the starting iteration vector contains its mode.
Algorithm:
Assume a starting iteration vector for φ , say x1 (≠ 0) , e.g. ( 1, 1, ..., 1, ) T
Compute y 1 = M x1 (36)
For each iteration k = 1, 2, …
(A) Solve K x k +1 = y k
(B) Compute y k +1 = M x k +1
x Tk+1 y k
(C) Compute ρ k +1 =
x Tk+1 y k +1
y k +1
(D) M-normalized y k +1 =
( x Tk +1 y k +1 ) 1/2
When the iteration has converged, we have the numerical eigen solutions:
x Tk+1
λ1 ≈ ρ k +1 and φ1 ≈ (M-normalized)
( x Tk +1 y k +1 ) 1/2
Example 3.1 ⎡0 ⎤
⎡ 2 −1 0 0 ⎤
Compute λ1 and φ1 , using tol = 10 . -6 ⎢ −1 2 −1 0 ⎥ ⎢ 2 ⎥
K=⎢ ⎥ M= ⎢ ⎥
⎢ 0 − 1 2 − 1⎥ ⎢ 0 ⎥
⎢ ⎥ ⎢ ⎥
⎣ 0 0 −1 1 ⎦ ⎣ 1⎦
Solution:
⎡1⎤ ⎡0 ⎤ ⎡3⎤ ⎡0⎤
⎢1⎥ ⎢ ⎥ ⎢6⎥ ⎢12 ⎥
Start iteration with x1 = ⎢ ⎥ . For k = 1: y 1 = ⎢2⎥ ; x2 = ⎢ ⎥; y2 = ⎢ ⎥
⎢1⎥ ⎢0 ⎥ ⎢7⎥ ⎢0⎥
⎢⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎣1⎦ ⎣1 ⎦ ⎣8⎦ ⎣8⎦
3-7
⎡ 0.0 ⎤
x y1T ⎢1.02899 ⎥
ρ2 = = 0.1470588 ; y2 = ⎢ ⎥
2
… next iteration
x T2 y 2 ⎢ 0.0 ⎥
⎢ ⎥
⎣0.68599⎦
x k +1 y k +1 ρ k +1 Convergence
k yk
Check
1 3 0 0.1470588 - 0
6 12 1.02899
7 0 0
8 8 0.68599
2 1.71499 0 0.1464646 0.0040567 0
3.42997 6.85994 1.00504
4.11597 0 0
4.80196 4.80196 0.70353
3 1.70856 0 0.1464471 0.0001195 0
3.41713 6.83426 1.00087
4.12066 0 0
4.82429 4.82418 0.70649
4 1.70736 0 0.1464466 0.0000035 0
3.41472 6.82944 1.00015
4.12121 0 0
4.82771 4.82771 0.70700
5 1.70715 0 0.1464466 0.0000001 < tol 0
3.41430 6.82860 1.00003
4.12130 0 0
4.82830 4.82830 0.70709
⎡ 0.25001 ⎤
⎢ 0.50001 ⎥
After 5 iterations, we have λ 1 ≈ ρ 6 = 0.1464466 and normalized φ 1 = ⎢ ⎥
⎢ 0.60355 ⎥
⎢ ⎥
⎣ 0.70709 ⎦
| λ exact −ρ6 |
Exact λ 1 = 12 − 4
2
= 0.1464466094 Relative error = 1
= 3 . 14 * 10 − 9
λ exact
1
3-8
2. Forward Iteration Method
Suitable for finding the highest mode (with largest | λ | )
Aim: To solve K φ = λ M φ
Idea: Try x k for φ and substitute this into the LHS. Get a new iteration vector for φ
from the RHS, and call it x k +1 . Absorb λ in the new iteration vector called
x k +1 (= λ x k +1 ) . Thus,
M x k +1 = K x k (38)
The algorithm is similar to the inverse iteration method. Just swap M and K in the
equations of Steps (A) and (B).
A similar proof will show that, as k increases, x k +1 approaches φ n in shape and Rayleigh
quotient ρ k +1 → λ n .
Question: How do we get eigen solutions other than the first mode and last mode?
The eigen value is called η . This looks like a different eigen-problem from what we
want to solve, i.e.
Kφ=λMφ (40)
But they are closely related because (39) can be re-arranged as
K φˆ = (η + μ ) M φˆ (41)
Comparing (40) and (41), it can be seen that the eigenvalues are simply related by the
shift introduced:
η = λ−μ (42)
and the eigenvectors are the same, i.e. φˆ = φ . We shall write it as φ .
If we solve (39) by inverse iteration, the convergence will be towards the smallest
eigenvalue of the shifted eigen-problem. That is, Say, j-th mode
3-9
Pn ( λ ) = det [K − λ M ] Inverse iteration with shift will converge
to λ 4 which is nearest μ , provided that
the starting vector contains the 4-th mode.
λ1 λ 2 λ3 λ4 λ5
λ
0
Shift μ
If the solution converges to the j-th mode, the convergence rate depends on the ratio of
λ j − μ to λ k − μ where λ k is the next nearest eigenvalue to μ .
Example 3.2 Use inverse iteration (a) without shift and (b) with shift of 10. Tol = 10-6.
⎡ 5 −4 1 0 ⎤ ⎡2 ⎤ ⎡1⎤
⎢− 4 6 − 4 1 ⎥ ⎢ 2 ⎥ ⎢1⎥
K=⎢ ⎥; M= ⎢ ⎥; x1 = ⎢ ⎥
⎢ 1 − 4 6 − 4⎥ ⎢ 1 ⎥ ⎢1⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎣ 0 1 −4 5 ⎦ ⎣ 1⎦ ⎣1⎦
Solution:
(a) Use inverse iteration without shift on K φ = λ M φ with, after 3 iterations:
⎡0.3126 ⎤
⎢ 0.4955 ⎥
λ 1 ≈ 0.09654 ; φ1 ≈ ⎢ ⎥
⎢ 0.4791 ⎥
⎢ ⎥
⎣ 0.2898 ⎦
⎡ − 15 − 4 1 0 ⎤
⎢ − 4 − 14 − 4 1 ⎥
(b) Imposing a shift of μ = 10 , we have K − μM = ⎢ ⎥
⎢ 1 − 4 − 4 − 4⎥
⎢ ⎥
⎣ 0 1 − 4 − 5⎦
3-10
The above solution is an approximation to an eigenvalue nearest the shift and the
corresponding eigenvector. But how do we know which mode this is?
Idea: As mentioned before in the inverse iteration method, if the iteration vector is
“deficient” in (i.e. does not contain) the first eigenvector, the solution will not converge
to the first mode in theory (similarly for inverse iteration with shift and forward
iteration).
Question: Can we do something to prevent convergence to the “unwanted” mode(s)?
For example, we have already obtained a specific eigen-pair for the p-th mode,
i.e. (λ p , φ p ) . We now want to look for another eigen-pair.
Recall that the starting iteration vector (any vector, for that matter) can be expressed as a
linear combination of all eigenvectors.
n
x1 = ∑ α i φ i (43)
i =1
We can remove this particular mode (p) from the iteration vector by defining a new
iteration vector as follows
~
x1 = x1 − α p φ p (46)
Similarly, if we have already obtained several modes, say from mode 1 to mode m, we
can eliminate all these modes from the iteration vector by using
3-11
m
~
x1 = x1 − ∑ α p φ p (47)
p =1
where α p is computed based on (45) for p = 1, 2 , ..., m . We make the iteration vector
M-orthogonal to the unwanted modes – this procedure is known as Gram-Schmidt
orthogonalization (GSO).
Now if we start with iteration vector ~ x1 (with modes 1 to p removed as in Eq. 47), the
inverse iteration method will converge to the next available mode, i.e. mode p+1. This is
provided, of course, that the iteration vector is not accidentally deficient in mode p+1.
Mathematically, it is sufficient to do GSO just once for the starting iteration vector (k=1
only). But numerically it may be necessary to do GSO for every iteration or at regular
intervals to “purify” the iteration vector, i.e. to eliminate any unwanted mode that may
return due to round off errors (albeit at a higher computational cost).
Example 3.3
Consider
⎡ 5 −4 1 0 ⎤ ⎡2 ⎤ ⎡1⎤
⎢− 4 6 − 4 1 ⎥ ⎢ 2 ⎥ ⎢1⎥
K=⎢ ⎥ M=⎢ ⎥ x1 = ⎢ ⎥
⎢ 1 − 4 6 − 4⎥ ⎢ 1 ⎥ ⎢1⎥
⎢ ⎥ ⎢ ⎥ ⎢⎥
⎣ 0 1 −4 5 ⎦ ⎣ 1⎦ ⎣1⎦
The eigen-pairs for the first and last modes have been obtained:
⎛ ⎡ 0.3126 ⎤ ⎞ ⎛ ⎡ − 0.1076 ⎤ ⎞
⎜ ⎢ 0.4955 ⎥ ⎟ ⎜ ⎟
⎜ ⎟ ⎢ 0.2556 ⎥
⎜ ⎟
( λ 1 , φ 1 ) = ⎜ 0.09654 , ⎢ ⎥
⎟ and ( λ 4 , φ 4 ) = ⎜ 10.6385 , ⎢ ⎥
⎟
⎢ 0.4791 ⎥ ⎢ − 0.7283 ⎥
⎜ ⎢ ⎥ ⎟ ⎜ ⎢ ⎥ ⎟
⎜ ⎟ ⎜ ⎟
⎝ ⎣ 0.2898 ⎦ ⎠ ⎝ ⎣ 0.5620 ⎦ ⎠
Using Gram-Schmidt Orthogonalization, compute an appropriate starting iteration vector
to be deficient in the first and last modes.
Solution:
⎡1⎤
⎢1⎥
Let ~
x1 = ⎢ ⎥ − α 1φ 1 − α 4 φ 4
⎢1⎥
⎢ ⎥
⎣1⎦
(45) gives α 1 = 2.385; α 4 = 0.1299 .
3-12
⎡ 0.2683 ⎤
⎢ − 0.2149 ⎥
Thus, ~
x1 = ⎢ ⎥ -- this can be used in the inverse (or forward) iteration.
⎢− 0.04812⎥
⎢ ⎥
⎣ 0.2358 ⎦
Plot of characteristic polynomial: Pn ( λ ) = det [K − λ M ] versus λ
1000 60
750
40
500
250 20
0 0
-250 0 2 4 6 8 10 12 -20 0 1 2 3 4 5
-500
-750 -40
-1000 -60
(Zoom in for λ = 0 to 5)
Idea: Is it possible to use multiple starting iteration vectors in the inverse iteration?
E.g. Use three starting iteration vectors: X1 = [ u1 v1 w 1 ] (48)
Substitute into the RHS and solve
K X k +1 = M X k (49)
If we follow the algorithm of inverse iteration, the outcome is that all the three iteration
vectors will converge to the first mode (unless some of the starting iteration vectors are
already deficient in φ 1 ).
Hence, it is necessary to enforce GSO such that the iteration vectors are orthogonal to one
another and will not converge to the same modes. Better still, they should be M-
normalized (to help control the magnitudes). That is, new iteration vectors should satisfy
X Tk +1 M X k +1 = I (50)
[
The first vector is easy – just normalize it: u k +1 = β 1 u k +1 where β 1 = u kT+1 M u k +1 ] −1 / 2
3-13
The second vector has to be made orthogonal to the first vector:
~ u kT+1 M v Tk +1
v k +1 = v k +1 − α 12 u k +1 where α 12 =
u kT+1 M u k +1
This is similar to (45) except that the solution vector is used in place of the eigenvector
(which is not available yet but hopefully the solution vector will converge to it).
Normalize: v k +1 = β 2 ~
v k +1 where β 2 = ~
v Tk +1 M ~ [
v k +1 ] −1 / 2
The third vector has to be made orthogonal to the first and second vectors:
~
w = w −α u −α v where α and α are obtained similarly by GSO.
k +1 k +1 13 k +1 23 k +1 13 23
~
Normalize: w k +1 = β 3 w ~T ~ [
k +1 where β 3 = w k +1 M w k +1 ] −1 / 2
Combined:
⎡β1 − β 2 α 12 − β 3 α 13 ⎤
X k +1 = X k +1 R k +1 where R k +1 = ⎢⎢ 0 β2 − β 3 α 23 ⎥⎥
⎢⎣ 0 0 β 3 ⎥⎦
Then proceed back to (50) for next iteration. When converged, the iteration vectors will
converge to the first three modes (unless the starting iteration vectors are deficient in the
corresponding modes). The respective eigenvalues are obtained by the Rayleigh
quotients (see Eq. 35).
3-14