🌀Eigenvalue Problems
Inverse Iteration and Shifts
Inverse iteration, shifted inverse iteration, Rayleigh quotient iteration and deflation
The first number a structural engineer asks for
Every seismic design code — Eurocode 8, ASCE 7, IS 1893 — starts the same way: estimate the fundamental period of the structure, the period of its slowest natural mode. The design spectrum then gives the acceleration the structure must resist for that period, and the base shear follows.
The codes even offer rules of thumb for a first guess — a moment-frame building of storeys has roughly seconds — but a computed value is required for anything important. That period corresponds to the smallest eigenvalue of .
A finite-element model of a tall building has hundreds of thousands of degrees of freedom. The power method converges to the largest eigenvalue, some local jiggle of one element at thousands of hertz. What we need is at the opposite end of the spectrum, and we need it to four digits.
💡Inverse iteration
If then : same eigenvectors, reciprocal eigenvalues. The smallest eigenvalue of is the largest of . So run the power method on :
Never form . Factorise (or Cholesky) once; every iteration is then two triangular solves (Unit 3). The rate is — for the vibrating string, per step.
📐The fundamental mode of a string
The finite-difference matrix of on with 99 interior points has smallest eigenvalue , close to the continuous . Inverse iteration from the all-ones vector gives , , , … and has all eleven digits after 8 iterations. It converges even faster than the predicted because the symmetric starting vector contains no antisymmetric second mode: the effective ratio is .
Derivation
The string's exact discrete eigenvalues
The matrix here is lesson 3-3's second-difference matrix divided by , and lesson 4-1 found the eigenvalues of exactly: , with sampled sine waves as eigenvectors. Dividing by :
For small , , so : close to the continuous eigenvalues of , slightly low, with an error. With , against . The ratios give the rates and quoted above.
💡Shifts: the eigenvalue nearest σ
Apply inverse iteration to . Its eigenvalues are , so the iteration converges to the eigenvector whose eigenvalue is nearest the shift , at rate
A good shift makes this tiny. With , aimed at the string's third eigenvalue , five iterations give . The closer is, the faster — and when is almost exactly an eigenvalue, is almost singular. The solve is then badly conditioned, but harmlessly so: the large error points almost entirely along the eigenvector we want, and normalisation removes its size.
Rayleigh quotient iteration. Why keep the shift fixed? Use the best current estimate — the Rayleigh quotient — as the shift at every step:
For symmetric matrices the convergence is cubic: errors went in the lab. The price: a new factorisation every step, and less control over which eigenvalue you land on — started from a rough guess it converges to whichever eigenpair it is nearest, which may not be the one you wanted.
Derivation
Why Rayleigh quotient iteration is cubic
Suppose the current vector has error (its component along the other eigenvectors). Two facts from this unit combine:
- The shift is the Rayleigh quotient, so its error is of order (lesson 6-1): .
- One step of shifted inverse iteration multiplies the unwanted components by — and the denominator stays roughly the gap to the next eigenvalue.
Together:
Since the eigenvalue error is the square of the vector error, it is cubed too, and the number of correct digits roughly triples each step. In the lab the eigenvalue's relative error goes from (about 4 digits) to (about 11) in one step, and the next step reaches rounding level. For nonsymmetric matrices the Rayleigh quotient is only first-order accurate and the convergence drops to quadratic.
nothing whatsoever takes place in the universe in which some relation of maximum and minimum does not appear.
💡Deflation: one mode after another
Once mode 1 is found, how do we get mode 2? For symmetric matrices the eigenvectors are orthogonal, so project out the converged vectors at every step: . Inverse iteration on what remains finds the next-smallest eigenvalue. For a five-storey shear building this gives periods of 0.7805, 0.2674 and 0.1696 s — identical to
scipy.linalg.eigh. (With a mass matrix, 'orthogonal' means -orthogonal: lesson 6-4.)
Deflation one vector at a time accumulates error and is slow for many modes. Block versions — subspace iteration, and the Lanczos method (Cornelius Lanczos, 1950), which is to eigenvalues what conjugate gradients are to linear systems — compute dozens of modes together. scipy.sparse.linalg.eigsh(K, M=M, sigma=0) is shift-and-invert Lanczos: exactly this lesson, industrialised.💡Where you will use this
Structures and Earthquake Engineering: fundamental periods and the first few modes for response-spectrum analysis — every commercial FE package uses shift-and-invert Lanczos. Buckling: the smallest buckling load factor is the smallest eigenvalue of a generalised problem. Spacecraft Attitude Control: the lowest flexible-appendage frequency must stay well above the controller bandwidth. Rocket Propulsion: the lowest acoustic modes of a combustion chamber, where instability starts.
📚Further reading
- Beresford Parlett, The Symmetric Eigenvalue Problem (Prentice-Hall, 1980; SIAM Classics 1998) — inverse iteration, Rayleigh quotient iteration and Lanczos, with the cubic-convergence proof.
- Lloyd N. Trefethen and David Bau, Numerical Linear Algebra (SIAM, 1997), Lecture 27, 'Rayleigh Quotient, Inverse Iteration'.
- Klaus-Jürgen Bathe, Finite Element Procedures (Prentice-Hall, 1996), chapter 11, 'Solution Methods for Eigenproblems' — subspace iteration and Lanczos as structural codes use them.
↓But there is a problem
Inverse iteration, shifts and deflation find eigenpairs one at a time, each needing a factorisation, a starting vector and a target. To get all eigenvalues of a dense matrix that way is slow and fragile.
In 1959 a 25-year-old programmer in London, John Francis, without a university degree, found an algorithm that finds them all at once — by factorising the matrix and multiplying the factors back together in the wrong order, over and over. It was later named one of the ten most important algorithms of the twentieth century. Francis left the field in 1962, and did not find out for 45 years.