Eigenvalue Problem for Normal Modes

Every article in the oscillations tier has leaned on the same promise: any coupled linear system — pendulums sharing a spring, atoms in a molecule, a bridge deck trembling in wind — can be resolved into pure tones, each with its own frequency and its own fixed pattern of motion. This article is where the promise is cashed. The tool is a single piece of algebra: write the small-oscillation Lagrangian with a mass matrix M\mathbf M and a stiffness matrix K\mathbf K, guess a solution in which everything oscillates in lockstep, and the coupled differential equations collapse into the generalized eigenvalue problem (K−ω2M) a=0(\mathbf K - \omega^2\mathbf M)\,\mathbf a = 0. The frequencies fall out of a determinant; the patterns fall out of null vectors. What elevates this from recipe to theorem is the structure hiding in M\mathbf M and K\mathbf K. Both are real and symmetric, and M\mathbf M is positive definite because kinetic energy is positive for any motion whatsoever. Those bare facts force two conclusions, proven here in full: every ω2\omega^2 is real (and non-negative for a stable equilibrium — no coupled system of springs and masses can hide a complex frequency), and the mode patterns are mutually orthogonal, provided you measure angles with the mass matrix rather than the naive dot product. Existence, reality, completeness, orthogonality: the entire normal-mode edifice rests on these results. The article proves the theorems, handles the two edge cases that appear constantly in practice — zero-frequency modes (a free system drifting) and degenerate frequencies (symmetry offering you a choice) — assembles the general solution with its 2N2N constants, and then runs one eigenvalue problem end to end, digit by digit, on the CO₂-like chain of three masses and two springs.

Key takeaways
  • Small oscillations of any NN-degree-of-freedom system obey Mq¨=−Kq\mathbf M\ddot{\mathbf q} = -\mathbf K\mathbf q, with M\mathbf M (mass matrix) real symmetric positive definite and K\mathbf K (stiffness matrix) real symmetric.
  • The lockstep ansatz q=acos⁡(ωt−φ)\mathbf q = \mathbf a\cos(\omega t - \varphi) converts the coupled ODEs into the generalized eigenvalue problem (K−ω2M)a=0(\mathbf K - \omega^2\mathbf M)\mathbf a = 0; nontrivial shapes require det⁡(K−ω2M)=0\det(\mathbf K - \omega^2\mathbf M) = 0, a polynomial with NN roots ωr2\omega_r^2.
  • Structure theorem one: every ωr2\omega_r^2 is real, and ≥0\ge 0 when the equilibrium is stable (K\mathbf K positive semidefinite) — proven with the M\mathbf M-weighted Rayleigh quotient.
  • Structure theorem two: modes of distinct frequency are orthogonal in the mass metric, a(r)TM a(s)=0\mathbf a^{(r)\mathsf T}\mathbf M\,\mathbf a^{(s)} = 0 — not, in general, in the Euclidean one.
  • Zero modes (ω2=0\omega^2 = 0) are rigid translations or rotations of free systems: uniform drift a(0)(c1+c2t)\mathbf a^{(0)}(c_1 + c_2 t), the coordinate expression of momentum conservation.
  • Degenerate frequencies leave freedom: any combination within the degenerate subspace is a mode; choose an M\mathbf M-orthogonal basis, usually guided by symmetry.
  • The general solution superposes all modes with 2N2N constants fixed by initial positions and velocities via M\mathbf M-weighted projections.
  • Key idea: Diagonalizing two quadratic forms simultaneously: solve (K−ω2M)a=0(\mathbf{K} - \omega^2\mathbf{M})\mathbf{a}=0 to get frequencies from the secular determinant and shapes from the null vectors, then use M\mathbf{M}-orthogonality to decouple the system into independent simple harmonic oscillators.

Where this lives today

The generalized eigenvalue problem (K−ω2M)a=0(\mathbf K - \omega^2\mathbf M)\mathbf a = 0 is, by volume of computation, one of the most-solved equations in engineering. Every finite-element model of a bridge, aircraft wing, engine block, or skyscraper is exactly equation (2) with NN in the millions: mesh the structure, assemble M\mathbf M and K\mathbf K, and extract the lowest few hundred modes with Lanczos-type iterations (nobody expands a million-degree characteristic polynomial — the determinant is a proof device, not an algorithm). The mode list is the structure's dynamic identity: automotive engineers shift body modes away from engine firing frequencies; launch providers run "coupled loads analysis," re-solving the eigenproblem for rocket-plus-satellite to certify that liftoff won't find a resonance; and a spacecraft cannot book a ride until its modal survey — measured frequencies and shapes, shaken out on a vibration table — matches the model. When any of these systems is then driven at a mode frequency, the response is governed by the single-oscillator physics of the Resonance article, one mode at a time. The same mathematics runs far from mechanics. Quantum chemistry's workhorse Hartree–Fock–Roothaan equations, FC=SCε\mathbf F\mathbf C = \mathbf S\mathbf C\varepsilon, are a generalized symmetric eigenproblem with the overlap matrix S\mathbf S playing the role of M\mathbf M — same theorems, same whitening trick, same warning about the wrong inner product. Phonon band structures, the normal modes of crystals computed from density-functional K\mathbf K-matrices, decide materials' thermal conductivity and superconducting properties. And gravitational-wave astronomers fit black-hole ringdowns to normal-mode frequencies of spacetime itself. Wherever two quadratic forms meet — one inertia-like and positive, one stiffness-like — this article's machinery is already there.

The physical picture

Ask one question of any coupled system: which starting shapes does the motion preserve? Displace a system of masses in an arbitrary pattern and the pattern immediately falls apart — different parts oscillate at different effective rates and the configuration smears. But certain special patterns hold their shape forever, every coordinate rising and falling in unison like a photograph being rescaled, and each such pattern rings at one pure frequency. Those are the normal modes. The eigenvalue problem is nothing more than this question written in algebra: a shape a\mathbf a is preserved when the restoring forces −Ka-\mathbf K\mathbf a it generates are distributed across the masses in exactly the proportions of a\mathbf a itself, i.e. Ka=ω2Ma\mathbf K\mathbf a = \omega^2\mathbf M\mathbf a — the force pattern is the inertia pattern scaled by a constant. That constant is the squared frequency. The chain of three masses — light, heavy, light, joined by two equal springs, a caricature of the CO₂ molecule — makes the answer concrete. It has exactly three shape-preserving patterns, and you can guess all three before touching a determinant:

Figure
The three normal modes of the m–M–m chain — every motion it can make is built from these
ω² = 0 — rigid translation, no spring stretches m M m a⁽¹⁾ ∝ (1, 1, 1) ω² = k/m — symmetric stretch, the heavy center never moves at rest a⁽²⁾ ∝ (1, 0, −1) — outer masses breathe against a stationary center ω² = (k/m)(1 + 2m/M) — antisymmetric stretch, center recoils a⁽³⁾ ∝ (1, −2m/M, 1)

Slide all three masses together and no spring changes length: zero restoring force, zero frequency — a "mode" that is really the free molecule drifting through space. Stretch the two outer masses symmetrically outward and the center, pulled equally both ways, stays put while each outer mass rides its own spring. Push both outer masses the same way and the center must recoil to keep the center of mass fixed; both springs now work on every mass and the frequency is the highest of the three. Three degrees of freedom, three modes — and, as this article proves, that counting is not luck but theorem. The second picture to install is geometric, because it explains the strangest feature of the subject: mode shapes of systems with unequal masses look skewed — plotted as vectors, they visibly fail to be perpendicular — yet the theory keeps calling them orthogonal. The resolution is that "perpendicular" is being measured with the wrong ruler. The physically meaningful geometry of configuration space is the one set by kinetic energy: the length of a velocity vector is q˙TMq˙\dot{\mathbf q}^{\mathsf T}\mathbf M\dot{\mathbf q}, in which heavy coordinates count for more. Rescale each coordinate by the square root of its mass — stretch the heavy axes — and in the rescaled space the kinetic energy becomes the ordinary Euclidean length, and the mode shapes snap to exact right angles.

Figure
Mode shapes look skewed in raw coordinates but are exactly perpendicular in the mass-weighted geometry
raw coordinates (q₁, q₂) a⁽¹⁾ = (1, 1) a⁽²⁾ = (2, −1) angle ≈ 72° — NOT perpendicular dashed: surface of constant kinetic energy (an ellipse, m₂ = 2m₁) mass-weighted (√m₁ q₁, √m₂ q₂) (1, √2) (2, −√2) angle = 90° exactly — kinetic energy is now the ordinary length stretching the heavy axis by √m turns the ellipse into a circle

The vectors drawn are the actual mode shapes of the first worked example below (m2=2m1m_2 = 2m_1). This picture is the entire content of "M\mathbf M-orthogonality": the modes are perpendicular — in the geometry where kinetic energy is the ruler. Everything that follows (the decoupling of energies, the projection of initial conditions, the completeness of the mode basis) works because of that hidden right angle. The phenomenon these modes orchestrate — beating, energy exchange — lives in the Coupled Oscillators article; the mode concept itself is developed in Normal Modes; and what you do with the answer — turn each mode into an independent coordinate — is the business of Normal Coordinates. This article owns the machinery that finds the modes and the theorems that guarantee it always works.

From Lagrangian to algebra

Every small-oscillation problem, whatever its origin, arrives in the same standard form. Expand the Lagrangian about a stable equilibrium to second order in the displacements q=(q1,…,qN)\mathbf q = (q_1, \dots, q_N) and their velocities, and it reads

L=12 q˙TM q˙  −  12 qTK q(1)L = \tfrac12\,\dot{\mathbf q}^{\mathsf T}\mathbf M\,\dot{\mathbf q} \;-\; \tfrac12\,\mathbf q^{\mathsf T}\mathbf K\,\mathbf q \qquad (1)

where: q\mathbf q — column vector of generalized displacements from equilibrium; M\mathbf M — the mass (kinetic-energy) matrix, Mij=∂2T/∂q˙i∂q˙jM_{ij} = \partial^2 T/\partial\dot q_i\partial\dot q_j evaluated at equilibrium; K\mathbf K — the stiffness matrix, Kij=∂2V/∂qi∂qjK_{ij} = \partial^2 V/\partial q_i\partial q_j at equilibrium. Both matrices are constant, real, and symmetric. M\mathbf M is positive definite — q˙TMq˙>0\dot{\mathbf q}^{\mathsf T}\mathbf M\dot{\mathbf q} > 0 for any nonzero velocity, because kinetic energy is positive whenever anything moves. K\mathbf K is positive semidefinite when the equilibrium is a true minimum of VV: displacements cost energy, or at worst (symmetry directions) cost nothing. The Euler–Lagrange equations of (1) — one derivative through each quadratic form, the symmetry of the matrices absorbing the factors of two — give the coupled equations of motion in matrix form:

M q¨=− K q(2)\mathbf M\,\ddot{\mathbf q} = -\,\mathbf K\,\mathbf q \qquad (2)

where: each row says: the mass-weighted acceleration of coordinate ii is driven by every displacement that appears in row ii of K\mathbf K. Off-diagonal entries of K\mathbf K (or M\mathbf M) are the coupling. This is NN second-order equations tangled together; the next derivation untangles them into algebra.

Derivation AFrom the equations of motion to the secular determinant

We are deriving the central algebraic object of the article: the generalized eigenvalue problem and its solvability condition, the secular equation. The strategy is the lockstep ansatz — assume every coordinate oscillates at one common frequency with fixed relative amplitudes, which is precisely the definition of a normal mode — and watch the time dependence divide out of (2), leaving pure matrix algebra. Two things to watch: why assuming a common frequency is not a loss of generality (it finds the building blocks, and linearity lets us superpose them afterward), and why a determinant suddenly appears (homogeneous linear systems only have nonzero solutions when their matrix is singular).

Step 1. Insert the mode ansatz q(t)=acos⁡(ωt−φ)\mathbf q(t) = \mathbf a\cos(\omega t - \varphi), with a\mathbf a a constant vector, into (2). Differentiating twice pulls down −ω2-\omega^2, and the cosine — never zero for all tt — cancels from both sides:

(K−ω2M) a=0(3)\big(\mathbf K - \omega^2\mathbf M\big)\,\mathbf a = 0 \qquad (3)

where: a\mathbf a — the mode shape, the fixed proportions in which all coordinates move; ω\omega — the trial frequency. Why the ansatz is legitimate: we are not claiming all motions look like this — most do not. We are hunting the special shape-preserving solutions; because equation (2) is linear, the general motion will be recovered at the end as a superposition of them.

Step 2. Recognize the structure. Equation (3) asks for a vector that K\mathbf K and ω2M\omega^2\mathbf M treat identically — a generalized eigenvalue problem, reducing to the ordinary kind only if M∝1\mathbf M \propto \mathbb 1. Why the physics reading matters: Ka\mathbf K\mathbf a is the pattern of restoring forces the shape generates, Ma\mathbf M\mathbf a the pattern of inertia; a mode is a shape whose force pattern is its inertia pattern rescaled, so acceleration reshapes nothing.

Step 3. Demand a nontrivial solution. If the matrix K−ω2M\mathbf K - \omega^2\mathbf M were invertible, the only solution of (3) would be a=0\mathbf a = 0 — no motion at all. A genuine mode therefore requires the matrix to be singular:

det⁡(K−ω2M)=0(4)\det\big(\mathbf K - \omega^2\mathbf M\big) = 0 \qquad (4)

where: the left side, expanded, is the characteristic (secular) polynomial P(ω2)P(\omega^2) — a polynomial of degree NN in the variable ω2\omega^2, with NN roots ω12,…,ωN2\omega_1^2, \dots, \omega_N^2 counted with multiplicity. Why degree NN: each of the NN diagonal entries contributes one factor of ω2\omega^2 to the leading term, which is det⁡(−M) ω2N\det(-\mathbf M)\,\omega^{2N} up to sign.

Step 4. Read off the solution algorithm. Solve the polynomial (4) for the NN frequencies; substitute each root back into (3) and solve the now-singular linear system for its null vector a(r)\mathbf a^{(r)} — determined up to overall scale, as eigenvectors always are. Why up to scale: the equations are homogeneous, so twice a mode shape is the same shape; physics fixes only the ratios of the amplitudes. *For N=1N = 1, equation (4) reads k−ω2m=0k - \omega^2 m = 0, recovering the single oscillator ω=k/m\omega = \sqrt{k/m}; the historical name "secular" survives from Lagrange's application of the same equation to century-scale planetary perturbations.*

The characteristic polynomial is worth actually looking at once, because its graph is the frequency spectrum. For the m–M–m chain of the worked example below (m=1.0m = 1.0 kg, M=2.0M = 2.0 kg, k=100k = 100 N/m), the determinant expands to P(λ)=−2λ(λ−100)(λ−200)P(\lambda) = -2\lambda(\lambda - 100)(\lambda - 200) with λ=ω2\lambda = \omega^2 — a cubic whose three crossings are the three squared frequencies, zero mode included:

Figure
The characteristic polynomial of the triatomic chain — its roots are the squared normal frequencies
λ = 0 λ = 100 λ = 200 P(λ) = det(K − λM) = −2λ(λ−100)(λ−200) three real crossings — guaranteed by the structure theorems λ = ω² negative between the roots, but every crossing sits on the real axis at λ ≥ 0

For a generic polynomial, real coefficients guarantee nothing — roots pair off into the complex plane whenever they please. The remarkable claim of the figure is that this polynomial's roots always land on the real axis, and never below zero when the equilibrium is stable. That is not an accident of the example; it is the first structure theorem.

The structure theorems

Two theorems carry the whole subject on their backs. Both are one-page consequences of symmetry and positivity, and both proofs run on the same fuel: the M\mathbf M-weighted inner product ⟨u,v⟩M=u†M v\langle\mathbf u, \mathbf v\rangle_{\mathbf M} = \mathbf u^{\dagger}\mathbf M\,\mathbf v, the mass-metric geometry of the physical picture.

Go deeper · Derivation B · 2 minTheorem one — every squared frequency is real and stability makes it non-negative
Derivation BTheorem one — every squared frequency is real and stability makes it non-negative

We prove that each root ωr2\omega_r^2 of the secular equation is a real number, and non-negative whenever the equilibrium is stable. The strategy is the Rayleigh-quotient contraction: allow, for the sake of argument, a complex eigenvalue and eigenvector, sandwich the eigen-equation with the conjugate transpose a†\mathbf a^\dagger, and show that the resulting ratio is manufactured entirely from real quantities. The pivotal inputs are the symmetry of both matrices (making the sandwiched quadratic forms real even for complex a\mathbf a) and the positive-definiteness of M\mathbf M (keeping the denominator away from zero). Watch how physics supplies exactly the matrix properties the proof consumes: T>0T > 0 for any motion, and VV minimized at stable equilibrium.

Step 1. Suppose (K−ωr2M)a(r)=0(\mathbf K - \omega_r^2\mathbf M)\mathbf a^{(r)} = 0 with possibly complex ωr2\omega_r^2 and a(r)≠0\mathbf a^{(r)} \ne 0. Left-multiply by the conjugate transpose row vector a(r)†\mathbf a^{(r)\dagger} and solve for the eigenvalue:

ωr2  =  a(r)† K a(r)a(r)† M a(r)\omega_r^2 \;=\; \frac{\mathbf a^{(r)\dagger}\,\mathbf K\,\mathbf a^{(r)}}{\mathbf a^{(r)\dagger}\,\mathbf M\,\mathbf a^{(r)}}

Why contract with the conjugate: it produces Hermitian forms a†Aa\mathbf a^\dagger\mathbf A\mathbf a, and those are the objects whose reality we can control with symmetry.

Step 2. Show the numerator is real. Since it is a 1×11\times1 matrix, it equals its own transpose; transposing and using KT=K\mathbf K^{\mathsf T} = \mathbf K with real entries gives (a†Ka)∗=a†KTa=a†Ka(\mathbf a^\dagger\mathbf K\mathbf a)^* = \mathbf a^\dagger\mathbf K^{\mathsf T}\mathbf a = \mathbf a^\dagger\mathbf K\mathbf a — a number equal to its own conjugate is real. Why symmetry is the hero: for a non-symmetric matrix the two ends of the sandwich would not match up, and the argument would die here — as it should, since non-symmetric couplings (gyroscopic forces, for instance) genuinely can produce complex mode frequencies.

Step 3. The denominator is real by the identical argument, and strictly positive: writing a=u+iw\mathbf a = \mathbf u + i\mathbf w with real u,w\mathbf u, \mathbf w, one finds a†Ma=uTMu+wTMw>0\mathbf a^\dagger\mathbf M\mathbf a = \mathbf u^{\mathsf T}\mathbf M\mathbf u + \mathbf w^{\mathsf T}\mathbf M\mathbf w > 0, because each term is twice a kinetic energy and at least one of u,w\mathbf u, \mathbf w is nonzero. A real number divided by a positive real number: ωr2∈R\omega_r^2 \in \mathbb R. Why positive-definiteness cannot fail physically: if some velocity pattern had zero kinetic energy, it would describe motion of nothing.

Step 4. Add stability. At a true minimum of the potential, K\mathbf K is positive semidefinite — every displacement pattern costs aTKa≥0\mathbf a^{\mathsf T}\mathbf K\mathbf a \ge 0 in potential energy. The numerator is then ≥0\ge 0 and so ωr2≥0\omega_r^2 \ge 0: every ωr\omega_r is real and the motion is bounded oscillation (or, at exactly zero, drift). Why the converse bites: at a saddle point of VV some pattern has aTKa<0\mathbf a^{\mathsf T}\mathbf K\mathbf a < 0, giving ω2<0\omega^2 < 0, ω=i∣ω∣\omega = i|\omega|, and e∣ω∣te^{|\omega|t} runaway — the eigenvalue problem detects instability automatically, which is exactly how buckling loads are computed. *The ratio a(r)†Ka(r)/a(r)†Ma(r)\mathbf a^{(r)\dagger}\mathbf K\mathbf a^{(r)}/\mathbf a^{(r)\dagger}\mathbf M\mathbf a^{(r)} is the M\mathbf M-weighted Rayleigh quotient — twice the potential energy divided by twice the kinetic energy per unit ω2\omega^2 of the mode — and for N=1N=1 it collapses to ω2=k/m>0\omega^2 = k/m > 0.*

Go deeper · Derivation C · 2 minTheorem two — modes of distinct frequency are orthogonal in the mass metric
Derivation CTheorem two — modes of distinct frequency are orthogonal in the mass metric

We prove that eigenvectors belonging to different frequencies satisfy a(r)TM a(s)=0\mathbf a^{(r)\mathsf T}\mathbf M\,\mathbf a^{(s)} = 0 — perpendicular, provided angles are measured with M\mathbf M. The strategy is the classic two-equation sandwich: write the eigen-equation for each mode, contract each with the other's eigenvector, and subtract; the symmetry of M\mathbf M and K\mathbf K makes the two cross terms identical, and the frequency difference multiplies what remains. Since theorem one already delivered real eigenvalues, everything can be kept real. The payoff to appreciate in advance: this orthogonality is what makes mode amplitudes independently extractable from any initial condition, and what kills every cross term in the energy.

Step 1. Write the eigen-equations for two modes with ωr2≠ωs2\omega_r^2 \neq \omega_s^2: Ka(r)=ωr2Ma(r)\mathbf K\mathbf a^{(r)} = \omega_r^2\mathbf M\mathbf a^{(r)} and Ka(s)=ωs2Ma(s)\mathbf K\mathbf a^{(s)} = \omega_s^2\mathbf M\mathbf a^{(s)}. Contract the first with a(s)T\mathbf a^{(s)\mathsf T} from the left, the second with a(r)T\mathbf a^{(r)\mathsf T}:

a(s)TK a(r)=ωr2 a(s)TM a(r),a(r)TK a(s)=ωs2 a(r)TM a(s)\mathbf a^{(s)\mathsf T}\mathbf K\,\mathbf a^{(r)} = \omega_r^2\,\mathbf a^{(s)\mathsf T}\mathbf M\,\mathbf a^{(r)}, \qquad \mathbf a^{(r)\mathsf T}\mathbf K\,\mathbf a^{(s)} = \omega_s^2\,\mathbf a^{(r)\mathsf T}\mathbf M\,\mathbf a^{(s)}

Why cross-contract: it manufactures two expressions containing the same two scalars, setting up a subtraction in which everything but the orthogonality statement cancels.

Step 2. Use symmetry to identify the left sides. A scalar equals its transpose, so a(s)TKa(r)=a(r)TKTa(s)=a(r)TKa(s)\mathbf a^{(s)\mathsf T}\mathbf K\mathbf a^{(r)} = \mathbf a^{(r)\mathsf T}\mathbf K^{\mathsf T}\mathbf a^{(s)} = \mathbf a^{(r)\mathsf T}\mathbf K\mathbf a^{(s)}, and likewise for the M\mathbf M-terms. Subtracting the two equations of Step 1 therefore leaves

0=(ωr2−ωs2)  a(r)TM a(s)0 = \big(\omega_r^2 - \omega_s^2\big)\;\mathbf a^{(r)\mathsf T}\mathbf M\,\mathbf a^{(s)}

Why this is the crux: both potential-energy cross terms were equal, so the entire difference of the two equations is carried by the mass-metric overlap of the two shapes, multiplied by the frequency gap.

Step 3. Divide by the nonzero factor. With ωr2≠ωs2\omega_r^2 \neq \omega_s^2 the frequency difference is nonzero, forcing a(r)TM a(s)=0\mathbf a^{(r)\mathsf T}\mathbf M\,\mathbf a^{(s)} = 0. Feeding this back into Step 1 gives a(r)TK a(s)=0\mathbf a^{(r)\mathsf T}\mathbf K\,\mathbf a^{(s)} = 0 as well: distinct modes are orthogonal under both matrices — which is exactly the statement that both energies decouple mode by mode. Why Euclidean orthogonality is not implied: nothing in the proof involves a(r)Ta(s)\mathbf a^{(r)\mathsf T}\mathbf a^{(s)}; unless M∝1\mathbf M \propto \mathbb 1, that quantity has no reason to vanish, and in the worked examples below it does not.

Step 4. Fix the scale. Eigenvectors carry arbitrary normalization; the standard convention — mass normalization — sets each mode's M\mathbf M-length to one, so the full statement reads

a(r)TM a(s)=δrs,a(r)TK a(s)=ωr2 δrs(5)\mathbf a^{(r)\mathsf T}\mathbf M\,\mathbf a^{(s)} = \delta_{rs}, \qquad \mathbf a^{(r)\mathsf T}\mathbf K\,\mathbf a^{(s)} = \omega_r^2\,\delta_{rs} \qquad (5)

where: δrs\delta_{rs} — the Kronecker delta. Engineering practice sometimes prefers "largest component = 1" for readability; either is fine, but energy formulas assume (5), so declare your convention before computing. Why the choice matters practically: with (5), the transformed kinetic and potential energies have unit masses and stiffnesses ωr2\omega_r^2 — the cleanest possible bookkeeping. *For the m–M–m chain the three shapes (1,1,1)(1,1,1), (1,0,−1)(1,0,-1), (1,−2m/M,1)(1,-2m/M,1) give M\mathbf M-overlaps m−m=0m - m = 0, m−2m+m=0m - 2m + m = 0, m+0−m=0m + 0 - m = 0 — all vanishing for any masses, as confirmed numerically in worked example 2.*

Together the theorems deliver the complete package promised in the overview. Reality plus symmetry guarantees a full set of NN modes spanning configuration space (repeated roots included — see below), M\mathbf M-orthogonality makes them independent, and mass normalization makes them an orthonormal basis in the kinetic-energy geometry. Transforming to that basis is precisely what turns the Lagrangian into NN independent oscillators — the construction carried out in the Normal Coordinates article.

Zero modes and degenerate frequencies

Two special spectral features are so common in real systems that they deserve their own treatment, and both are opportunities rather than pathologies. A zero mode is a root ω2=0\omega^2 = 0 of the secular equation, which by (3) means Ka(0)=0\mathbf K\mathbf a^{(0)} = 0: a displacement pattern that generates no restoring force at all, a flat direction of the potential. Free-floating systems always have them — translate the whole m–M–m chain and neither spring changes length. For a zero mode the equation of motion is not oscillation but ξ¨0=0\ddot\xi_0 = 0, integrating to

ξ0(t)=c1+c2 t(6)\xi_0(t) = c_1 + c_2\,t \qquad (6)

where: c1,c2c_1, c_2 — constants set by the initial displacement and velocity along the mode. Uniform drift: the pattern slides at constant rate forever. This is momentum conservation wearing mode clothing — the zero mode of translation is the center-of-mass coordinate, and c2c_2 is its conserved velocity. Count them by symmetry: a molecule free in three dimensions has three translational zero modes and three rotational ones (two if linear, since spinning a line about its own axis moves nothing), which is exactly the origin of the 3N−63N - 6 (or 3N−53N - 5) count of true vibrations. A zero mode in a structure that is supposed to be anchored is a design alarm: some direction is unbraced.

Degeneracy is a repeated root: two (or more) modes sharing one frequency. Then the null space of K−ω2M\mathbf K - \omega^2\mathbf M is a plane rather than a line, and any vector in that plane is a legitimate mode shape — the eigenvalue problem refuses to pick favorites. The freedom is real and harmless: choose any M\mathbf M-orthogonal basis within the degenerate subspace (Gram–Schmidt, using the M\mathbf M-inner product) and all the formulas of this article proceed unchanged. The overwhelmingly common cause is symmetry: CO₂ can bend in the vertical plane or the horizontal one, and the molecule's axial symmetry makes the two bends physically indistinguishable, hence exactly degenerate. Symmetry-adapted combinations are the natural choice — and the deep version of this remark, that degenerate subspaces carry representations of the symmetry group, is the road from this article into molecular spectroscopy and solid-state physics.

Assembling the general solution

The modes are building blocks; the general motion is the building. Because equation (2) is linear, any superposition of mode solutions solves it, and because the NN mode shapes span configuration space, every solution is such a superposition:

q(t)  =  ∑r=1Na(r)[Crcos⁡ωrt+Drsin⁡ωrt](7)\mathbf q(t) \;=\; \sum_{r=1}^{N} \mathbf a^{(r)}\Big[C_r\cos\omega_r t + D_r\sin\omega_r t\Big] \qquad (7)

where: Cr,DrC_r, D_r — two constants per mode, 2N2N in all, exactly matching the initial data of NN positions and NN velocities (for a zero mode the bracket is replaced by the drift c1+c2tc_1 + c_2 t of equation (6)). A second-order system with NN coordinates needs 2N2N constants, and the mode expansion supplies them in the most organized possible way: two per pure tone, amplitude and phase. Extracting the constants from initial conditions is where theorem two pays its way. Contract q(0)\mathbf q(0) and q˙(0)\dot{\mathbf q}(0) with a(r)TM\mathbf a^{(r)\mathsf T}\mathbf M and orthonormality (5) collapses the sums:

Cr=a(r)TM q(0),Dr=1ωr a(r)TM q˙(0)(8)C_r = \mathbf a^{(r)\mathsf T}\mathbf M\,\mathbf q(0), \qquad D_r = \frac{1}{\omega_r}\,\mathbf a^{(r)\mathsf T}\mathbf M\,\dot{\mathbf q}(0) \qquad (8)

where: the mass matrix sits inside every projection — the single most forgotten factor in the subject. Without M\mathbf M-orthogonality each initial condition would spray across all NN constants and you would face a 2N×2N2N \times 2N linear solve; with it, each constant is one inner product. That is the practical content of "the modes form an orthonormal basis": initial-value problems in coupled oscillations are exactly as easy as Fourier analysis — indeed Fourier analysis is this procedure applied to the translation-invariant chain, as the continuum limit makes explicit.

Limiting cases

CaseResultMeaning
already decoupled (M\mathbf M, K\mathbf K diagonal)ωr2=Krr/Mrr\omega_r^2 = K_{rr}/M_{rr}no off-diagonal coupling: each coordinate is its own mode, the determinant factorizes term by term
equal masses, M=m1\mathbf M = m\mathbb 1Ka=mω2a\mathbf K\mathbf a = m\omega^2\mathbf aordinary symmetric eigenvalue problem; Euclidean and mass orthogonality coincide
zero mode, det⁡K=0\det\mathbf K = 0ω0=0\omega_0 = 0,  ξ0=c1+c2t\ \xi_0 = c_1 + c_2 ta flat direction of VV — rigid translation/rotation; drift, not vibration; momentum conservation in disguise
degenerate pair, ωr=ωs\omega_r = \omega_srepeated root of P(ω2)P(\omega^2)any combination in the subspace is a mode; pick an M\mathbf M-orthogonal pair, usually symmetry-adapted
unstable equilibrium (K\mathbf K indefinite)some ω2<0⇒ω=i∣ω∣\omega^2 < 0 \Rightarrow \omega = i\lvert\omega\rverte∣ω∣te^{\lvert\omega\rvert t} runaway along that pattern — the expansion point was a saddle of VV, not a minimum
stiff coupling limitωN2→\omega_N^2 \to largest Rayleigh quotientthe highest mode localizes on the stiffest path through the system; frequencies interlace as springs stiffen

Worked examples

1 · Two unequal masses: the mass metric in action (confidence builder)

A chain runs wall–spring–mass–spring–mass–spring–wall along a line: m1=1.0m_1 = 1.0 kg and m2=2.0m_2 = 2.0 kg, with spring constants ka=1.0k_a = 1.0, kb=2.0k_b = 2.0, kc=2.0k_c = 2.0 N/m (wall–m1m_1, m1m_1–m2m_2, m2m_2–wall). Find the normal frequencies and mode shapes, and test the shapes for orthogonality — both kinds.

Step 1. Build the matrices. M=diag(1,2)\mathbf M = \mathrm{diag}(1, 2) kg. Each diagonal stiffness entry collects every spring touching that mass; the off-diagonal entry is minus the coupling spring: K11=ka+kb=3K_{11} = k_a + k_b = 3, K22=kb+kc=4K_{22} = k_b + k_c = 4, K12=−kb=−2K_{12} = -k_b = -2, all in N/m. So K=(3−2−24)\mathbf K = \begin{pmatrix} 3 & -2 \\ -2 & 4 \end{pmatrix}.

Step 2. Secular equation (4): det⁡(3−ω2−2−24−2ω2)=(3−ω2)(4−2ω2)−4=2ω4−10ω2+8=0\det\begin{pmatrix} 3-\omega^2 & -2 \\ -2 & 4-2\omega^2 \end{pmatrix} = (3-\omega^2)(4-2\omega^2) - 4 = 2\omega^4 - 10\omega^2 + 8 = 0, i.e. ω4−5ω2+4=(ω2−1)(ω2−4)=0\omega^4 - 5\omega^2 + 4 = (\omega^2 - 1)(\omega^2 - 4) = 0. The frequencies: ω1=1.0 rad/s\boxed{\omega_1 = 1.0\ \mathrm{rad/s}} and ω2=2.0 rad/s\boxed{\omega_2 = 2.0\ \mathrm{rad/s}} — periods 6.286.28 s and 3.143.14 s. Both real, both positive: theorem one, on duty.

Step 3. Mode shapes from the null vectors of (3). For ω2=1\omega^2 = 1: the first row reads (3−1)a1−2a2=0(3-1)a_1 - 2a_2 = 0, so a2=a1a_2 = a_1: a(1)∝(1,1)\mathbf a^{(1)} \propto (1, 1) — the masses swing together. For ω2=4\omega^2 = 4: (3−4)a1−2a2=0(3-4)a_1 - 2a_2 = 0, so a1=−2a2a_1 = -2a_2: a(2)∝(2,−1)\mathbf a^{(2)} \propto (2, -1) — opposition, with the light mass moving twice as far. (Check the second rows: −2(1)+(4−2)(1)=0-2(1) + (4-2)(1) = 0 ✓ and −2(2)+(4−8)(−1)=0-2(2) + (4-8)(-1) = 0 ✓.)

Step 4. Test orthogonality. Euclidean: a(1) ⁣⋅a(2)=(1)(2)+(1)(−1)=1≠0\mathbf a^{(1)}\!\cdot\mathbf a^{(2)} = (1)(2) + (1)(-1) = 1 \neq 0 — not perpendicular. Mass metric: a(1)TM a(2)=(1)(1)(2)+(1)(2)(−1)=2−2=0\mathbf a^{(1)\mathsf T}\mathbf M\,\mathbf a^{(2)} = (1)(1)(2) + (1)(2)(-1) = 2 - 2 = \boxed{0} — exactly perpendicular, as theorem two demands. This pair of vectors is the pair drawn in the geometry figure above.

Step 5. Mass-normalize for later use: a(1)TMa(1)=1+2=3\mathbf a^{(1)\mathsf T}\mathbf M\mathbf a^{(1)} = 1 + 2 = 3 and a(2)TMa(2)=4+2=6\mathbf a^{(2)\mathsf T}\mathbf M\mathbf a^{(2)} = 4 + 2 = 6, so the normalized shapes are a~(1)=(1,1)/3\tilde{\mathbf a}^{(1)} = (1,1)/\sqrt3 and a~(2)=(2,−1)/6\tilde{\mathbf a}^{(2)} = (2,-1)/\sqrt6 in kg−1/2\mathrm{kg^{-1/2}}.

2 · The m–M–m triatomic chain, end to end (exam level)

Three masses on a line — m=1.0m = 1.0 kg, M=2.0M = 2.0 kg, m=1.0m = 1.0 kg — joined by two springs of k=100k = 100 N/m, free at both ends (a stand-in for a linear molecule like CO₂). Solve the eigenvalue problem completely: frequencies, shapes, orthogonality check, and the physical meaning of every mode.

Step 1. Build the matrices. M=diag(1,2,1)\mathbf M = \mathrm{diag}(1, 2, 1) kg. Only the interior springs contribute (no walls): K=(100−1000−100200−1000−100100)\mathbf K = \begin{pmatrix} 100 & -100 & 0 \\ -100 & 200 & -100 \\ 0 & -100 & 100 \end{pmatrix} N/m. Note each row of K\mathbf K sums to zero — the fingerprint of a free-free system, promising a zero mode.

Step 2. Expand the secular determinant along the first row, with λ=ω2\lambda = \omega^2: det⁡(K−λM)=(100−λ)[(200−2λ)(100−λ)−104]+100[−100(100−λ)]\det(\mathbf K - \lambda\mathbf M) = (100-\lambda)\big[(200-2\lambda)(100-\lambda) - 10^4\big] + 100\big[-100(100-\lambda)\big]. Factoring (100−λ)(100-\lambda) out of both terms: (100−λ)[(200−2λ)(100−λ)−2×104]=(100−λ)(2λ2−400λ)=2λ(100−λ)(λ−200)(100-\lambda)\big[(200-2\lambda)(100-\lambda) - 2\times10^4\big] = (100-\lambda)(2\lambda^2 - 400\lambda) = 2\lambda(100-\lambda)(\lambda-200). The roots: λ=0, 100, 200 (rad/s)2\boxed{\lambda = 0,\ 100,\ 200\ \mathrm{(rad/s)^2}}, matching the general formulas 00, k/mk/m, and (k/m)(1+2m/M)=100(1+1)=200(k/m)(1 + 2m/M) = 100(1 + 1) = 200. Frequencies: ω2=10.0\omega_2 = 10.0 rad/s (1.591.59 Hz) and ω3=200=14.1\omega_3 = \sqrt{200} = 14.1 rad/s (2.252.25 Hz).

Step 3. Null vector at λ=0\lambda = 0: Ka=0\mathbf K\mathbf a = 0 gives a1=a2=a3a_1 = a_2 = a_3, so a(1)∝(1,1,1)\mathbf a^{(1)} \propto (1, 1, 1) — rigid translation, no spring stretched, the zero mode of equation (6): struck along this pattern the chain simply drifts, conserving momentum.

Step 4. Null vector at λ=100\lambda = 100: K−100 M=(0−1000−1000−1000−1000)\mathbf K - 100\,\mathbf M = \begin{pmatrix} 0 & -100 & 0 \\ -100 & 0 & -100 \\ 0 & -100 & 0 \end{pmatrix}, forcing a2=0a_2 = 0 and a3=−a1a_3 = -a_1: a(2)∝(1,0,−1)\mathbf a^{(2)} \propto (1, 0, -1) — the symmetric stretch. The heavy center sits still (pulled equally both ways), and each outer mass oscillates on its own spring against an effectively fixed anchor, hence exactly ω2=k/m\omega^2 = k/m with no trace of MM.

Step 5. Null vector at λ=200\lambda = 200: the first row of K−200M\mathbf K - 200\mathbf M reads −100 a1−100 a2=0-100\,a_1 - 100\,a_2 = 0 so a2=−a1a_2 = -a_1; the third row gives a2=−a3a_2 = -a_3. Then a(3)∝(1,−1,1)\mathbf a^{(3)} \propto (1, -1, 1), the general pattern (1,−2m/M,1)(1, -2m/M, 1) at 2m/M=12m/M = 1 — the antisymmetric stretch: outer masses lunge one way, the center recoils to hold the center of mass fixed, both springs work on every mass, highest frequency. Check the middle row: −100(1)+(200−400)(−1)−100(1)=−100+200−100=0-100(1) + (200 - 400)(-1) - 100(1) = -100 + 200 - 100 = 0 ✓.

Step 6. Verify M\mathbf M-orthogonality numerically, all three pairs. a(1)TMa(2)=(1)(1)(1)+(1)(2)(0)+(1)(1)(−1)=0\mathbf a^{(1)\mathsf T}\mathbf M\mathbf a^{(2)} = (1)(1)(1) + (1)(2)(0) + (1)(1)(-1) = 0 ✓. a(1)TMa(3)=1−2+1=0\mathbf a^{(1)\mathsf T}\mathbf M\mathbf a^{(3)} = 1 - 2 + 1 = 0 ✓. a(2)TMa(3)=1+0−1=0\mathbf a^{(2)\mathsf T}\mathbf M\mathbf a^{(3)} = 1 + 0 - 1 = 0 ✓. (Euclidean check on the last pair: (1,0,−1)⋅(1,−1,1)=0(1,0,-1)\cdot(1,-1,1) = 0 too — an accident of the symmetry, not the rule; pair 1–3 fails Euclidean: 1−1+1=1≠01 - 1 + 1 = 1 \neq 0.) Mass-normalizing: norms2^2 are 44, 22, 44, giving a~(1)=12(1,1,1)\tilde{\mathbf a}^{(1)} = \tfrac12(1,1,1), a~(2)=12(1,0,−1)\tilde{\mathbf a}^{(2)} = \tfrac{1}{\sqrt2}(1,0,-1), a~(3)=12(1,−1,1)\tilde{\mathbf a}^{(3)} = \tfrac12(1,-1,1).

Step 7. The molecular payoff. For real CO₂ (m=16m = 16 u oxygens, M=12M = 12 u carbon) the same shapes predict ω3/ω2=1+2m/M=1+32/12=1.91\omega_3/\omega_2 = \sqrt{1 + 2m/M} = \sqrt{1 + 32/12} = 1.91; the measured infrared ratio is about 1.761.76 (23492349 vs 1333 cm−11333\ \mathrm{cm^{-1}}). A two-spring caricature lands within 9%9\% of a real molecule's spectrum — and the discrepancy itself is informative, measuring the bond–bond coupling and anharmonicity the model omits.

Origins · 1 minLeonhard Euler and how this was discovered
LE
Leonhard Euler
1707–1783 · Basel, St Petersburg, and Berlin

Leonhard Euler wrote more mathematics than anyone in history — his collected works pass eighty volumes — and an astonishing amount of this article traces to problems he touched. In the 1730s in St Petersburg he and Daniel Bernoulli dissected the oscillations of a hanging chain and of a weighted string, finding families of special motions with fixed shapes and pure frequencies — normal modes before the name — and in the process Euler introduced the functions later called Bessel's. His polemics with d'Alembert and Bernoulli over the vibrating string forced the question this article answers: whether every motion is a superposition of the simple modes. Euler supplied the tools the final theory would be built from — the systematic reduction of mechanics to differential equations, the exponential ansatz eλte^{\lambda t} for linear systems that turns calculus into algebra, and much of the machinery of determinants. He kept calculating through total blindness in his last decade, dictating to assistants. When Lagrange assembled the general small-oscillation theory in the Mécanique analytique, he was completing a program Euler had opened half a century earlier.

History
1732
— Daniel Bernoulli analyses the hanging chain and finds its infinite family of pure-frequency shapes; Euler, extending the work, introduces the functions now called Bessel functions.
1759
— Lagrange's memoir on sound solves the string loaded with nn masses — the first complete finite eigenvalue problem, with all nn frequencies and shapes.
1788
— The Mécanique analytique casts small oscillations in general coordinates and derives the secular equation, applying it to the slow oscillations of planetary orbits.
1829
— Cauchy proves that real symmetric matrices have real eigenvalues and orthogonal eigenvectors — the spectral theorem underwriting both structure theorems.
1877
— Rayleigh's Theory of Sound introduces the Rayleigh quotient and perturbation methods for estimating mode frequencies, the working toolkit of vibration analysis ever since.
1950
— Lanczos publishes the iteration that lets computers extract the lowest eigenvalues of enormous K\mathbf K, M\mathbf M systems — the algorithmic engine of modern modal analysis.

Going further

References. Goldstein, Poole & Safko, Classical Mechanics 3rd ed., Ch. 6 (Oscillations) · Morin, Introduction to Classical Mechanics, Ch. 4 (Oscillations) and the coupled-oscillator sections · Landau & Lifshitz, Mechanics 3rd ed., §23–24 (Free oscillations of systems with several degrees of freedom) · Taylor, Classical Mechanics, Ch. 11 (Coupled Oscillators and Normal Modes) Key checkpoints for the results on this page: the Euler–Lagrange reduction yields Mη¨+Kη=0\mathbf{M}\ddot{\boldsymbol{\eta}}+\mathbf{K}\boldsymbol{\eta}=0; the Rayleigh-quotient argument establishes real, non-negative ωr2\omega_r^2; the two-mass secular equation (k+k′−ω2m)2=k′2(k+k'-\omega^2 m)^2=k'^2 gives ω1=k/m\omega_1=\sqrt{k/m} and ω2=(k+2k′)/m\omega_2=\sqrt{(k+2k')/m}; and the M−1/2\mathbf{M}^{-1/2} symmetrization converts the generalized problem into a standard symmetric eigenvalue problem. Worked-example numbers (ω=1.0,2.0\omega = 1.0, 2.0 rad/s for the unequal-mass pair; ω2=0,100,200 (rad/s)2\omega^2 = 0, 100, 200\ \mathrm{(rad/s)^2} for the m–M–m chain with m=1m=1 kg, M=2M=2 kg, k=100k=100 N/m) follow directly from the boxed formulas; the CO₂ comparison uses the standard band centers ≈1333\approx 1333 and 2349 cm−12349\ \mathrm{cm^{-1}}.

Builds on: Small Oscillations About Equilibrium · Simple Harmonic Motion · Complex Exponential Representation of Oscillations · Amplitude, Phase, and Angular Frequency Leads to: Resonance · Driven Oscillations · Energy in Simple Harmonic Motion

How can assuming that everything oscillates at one common frequency not lose the general solution?

Because the ansatz is a search strategy, not a claim about generic motion. Generic motions are not lockstep — pluck a system arbitrarily and every coordinate wobbles at a mixture of rates. The ansatz asks a narrower question: do any special lockstep solutions exist? The eigenvalue problem answers with exactly NN of them. Linearity then finishes the job: any superposition of solutions of Mq¨=−Kq\mathbf M\ddot{\mathbf q} = -\mathbf K\mathbf q is again a solution, and since the NN mode shapes span configuration space (that is what the structure theorems guarantee), the superposition (7) has enough freedom — 2N2N constants — to match any initial positions and velocities. Every solution is therefore reachable this way, and uniqueness of ODE solutions says there are no others. The special solutions are the atoms; superposition builds all the molecules.

Where exactly would the reality proof break if K were not symmetric?

At the transpose step. The proof rests on a†Ka\mathbf a^\dagger\mathbf K\mathbf a equaling its own complex conjugate, which follows from taking the transpose of this 1×11\times1 scalar and using KT=K\mathbf K^{\mathsf T} = \mathbf K. Without symmetry, (a†Ka)∗=a†KTa≠a†Ka(\mathbf a^\dagger\mathbf K\mathbf a)^* = \mathbf a^\dagger\mathbf K^{\mathsf T}\mathbf a \neq \mathbf a^\dagger\mathbf K\mathbf a in general — the quantity acquires an imaginary part and the eigenvalue with it. This is physics, not pedantry: velocity-dependent gyroscopic forces (rotating shafts, spinning satellites) and follower forces (a rocket thrust that rotates with the structure) enter the equations as non-symmetric matrices and genuinely produce complex eigenvalues — oscillations that grow or decay, flutter being the notorious example. The symmetry of K\mathbf K encodes that the forces come from a potential; break that and the guarantee of bounded oscillation goes with it.

What actually happens physically when the equilibrium is unstable and some ω² comes out negative?

The eigenvalue problem doesn't fail — it diagnoses. A negative ω2\omega^2 means ω=i∣ω∣\omega = i|\omega|, and the mode solution cos⁡(ωt)\cos(\omega t) becomes cosh⁡(∣ω∣t)\cosh(|\omega| t): displacement along that particular shape grows exponentially, doubling every 0.69/∣ω∣0.69/|\omega|. The mode shape tells you which pattern of displacement is the escape route from the saddle point of VV, and ∣ω∣|\omega| sets the timescale of departure. All other modes, with positive ω2\omega^2, keep oscillating innocently — instability is direction-specific. Engineers exploit this constantly: Euler buckling analysis is exactly this calculation, increasing the compressive load until the smallest eigenvalue of the effective stiffness matrix crosses zero; the load at crossing is the buckling load, and the zero-crossing eigenvector is the buckled shape.

For a molecule free in 3D space, how do I count the zero modes before solving anything?

Count the rigid motions that leave every interparticle distance unchanged, because those and only those stretch no "spring." Free translation contributes three (along xx, yy, zz); rigid rotation contributes three more for a general shape, but only two for a linear molecule — rotating a line of atoms about its own axis displaces nothing, so no coordinate moves and no mode exists. Hence 3N−63N - 6 genuine vibrations for a bent molecule, 3N−53N - 5 for a linear one: water gets 33, CO₂ gets 44 (two stretches plus a degenerate pair of bends — degeneracy and zero modes appearing together in one tidy example). The count is also a debugging tool: solve a free molecule's eigenproblem numerically and anything other than exactly six (or five) numerically-zero eigenvalues means your K\mathbf K matrix has an error or your geometry wasn't actually at equilibrium.

Numerically, is it okay to just compute the eigenvalues of M⁻¹K?

For frequencies, yes; for anything involving the eigenvectors, be careful. M−1K\mathbf M^{-1}\mathbf K has the right eigenvalues, but it is non-symmetric, so a general-purpose eigensolver returns eigenvectors with no orthogonality of any kind attached, may be less numerically stable, and cannot exploit the fast symmetric algorithms. The professional route preserves symmetry: factor M=LLT\mathbf M = \mathbf L\mathbf L^{\mathsf T} (Cholesky — cheap and stable since M\mathbf M is positive definite), solve the symmetric problem L−1KL−Tb=ω2b\mathbf L^{-1}\mathbf K\mathbf L^{-\mathsf T}\mathbf b = \omega^2\mathbf b, and map back a=L−Tb\mathbf a = \mathbf L^{-\mathsf T}\mathbf b; the b\mathbf b's Euclidean orthogonality becomes exactly the a\mathbf a's M\mathbf M-orthogonality. Standard libraries do this internally when you call their generalized symmetric drivers (LAPACK's `sygv` family, `scipy.linalg.eigh(K, M)`) — so the practical advice is simply: use the generalized routine and hand it both matrices, rather than forming M−1K\mathbf M^{-1}\mathbf K yourself.

Is the characteristic polynomial actually used to solve big problems, or is it just for proofs?

Just for proofs and for hand-sized problems — and knowing this saves you from a famous numerical trap. Expanding an N×NN \times N determinant into polynomial coefficients costs a fortune and, worse, polynomial root-finding is catastrophically ill-conditioned: microscopic errors in coefficients scatter the roots wildly (Wilkinson's classic demonstration). For N=2N = 2 or 33 on paper, the determinant route is perfect, as in the worked examples. For the million-DOF K\mathbf K and M\mathbf M of a finite-element model, iterative Krylov methods — Lanczos and its relatives — extract the lowest few hundred eigenpairs by repeatedly multiplying vectors by the (sparse) matrices, never forming a polynomial or even a determinant. The structure theorems still do the heavy lifting, though: symmetric algorithms are faster and more stable precisely because reality and orthogonality are guaranteed in advance.

Why does M-orthogonality of the shapes make the energies decouple?

Write any motion as q(t)=∑rξr(t) a(r)\mathbf q(t) = \sum_r \xi_r(t)\,\mathbf a^{(r)} and substitute into both quadratic forms. Kinetic energy becomes 12∑r,sξ˙rξ˙s a(r)TMa(s)\tfrac12\sum_{r,s}\dot\xi_r\dot\xi_s\,\mathbf a^{(r)\mathsf T}\mathbf M\mathbf a^{(s)}: the double sum contains N2N^2 terms, but relation (5) kills every off-diagonal one, leaving 12∑rξ˙r2\tfrac12\sum_r\dot\xi_r^2. The potential energy collapses identically under the companion relation a(r)TKa(s)=ωr2δrs\mathbf a^{(r)\mathsf T}\mathbf K\mathbf a^{(s)} = \omega_r^2\delta_{rs}, giving 12∑rωr2ξr2\tfrac12\sum_r\omega_r^2\xi_r^2. No cross terms in either energy means no mechanism for one mode's amplitude to influence another's — each ξr\xi_r owns an isolated oscillator energy ErE_r, conserved by itself. That is the entire content of "the system is a collection of independent oscillators," and it is why the orthogonality theorem is a physics theorem, not bookkeeping: it is energy independence, stated geometrically. The construction and its consequences are the subject of the Normal Coordinates article.

Before this

Where this leads