draft

What an Eigenvalue Actually Is

This page is the third link in one chain, and it’s worth saying the chain out loud. The same aircraft, flown twice — the full nonlinear equations and their linearisation — parts company when you push it. That is why we had to understand motion and derivatives: the linear twin is a Jacobian evaluated at trim, and Why Aircraft Need Derivatives is the story of why we keep a model that lies at the edges. The answer was: because of what it carries. This page is the thing it carries.

If you’ve flown the Modes of motion workspace →, you’ve seen it: the aircraft behaves like a struck bell — poke it, and it doesn’t respond with arbitrary motion; it rings at its own frequencies, with its own decay rates, in its own characteristic shapes. Where do those come from? One matrix. This page is about what that matrix’s eigenvalues actually are — as physical objects, not as the answer to the det(AλI)=0\det(A-\lambda I)=0 ritual you were taught to perform. (By the end, you’ll also know why the ritual works — the determinant earns its place, it isn’t just liturgy.)

One state: the eigenvalue is the system

Start with the smallest dynamical system that exists — one state, linear:

x˙=ax\dot{x} = a\,x

Read it out loud: the rate of change of xx is proportional to xx itself. No spring, no restoring force, no oscillation — just “the bigger it is, the faster it changes.” Nature is full of these: coffee cooling (heat loss proportional to excess temperature), a capacitor discharging, compound interest. And the aircraft owns one, which you have flown: roll subsidence. Release the stick with a roll rate on and nothing restores the bank — a conventional wing has no roll stiffness; the aeroplane genuinely does not care what ϕ\phi is — there is only roll damping, a moment resisting the rate itself:

p˙=Lpp,Lp<0\dot{p} = L_p\,p, \qquad L_p < 0

Its entire life story is one exponential — because eate^{at} is the only function whose derivative is proportional to itself (growth by a fixed fraction per unit time is compounding, and compounding is the exponential):

x(t)=x0eatx(t) = x_0\,e^{at}

The roll rate bleeds away, and the eigenvalue LpL_p is the roll-subsidence mode you meet later in the modes catalogue. Everything about every possible motion is encoded in the single number aa:

  • Sign: a<0a<0 and every disturbance dies; a>0a>0 and every disturbance explodes. That’s stability, decided by inspection.
  • Magnitude: a|a| sets how fast — time constant 1/a1/|a|, half-life (or doubling time) ln2/a\ln 2 / |a|.

For a one-state system, the eigenvalue isn’t a property of the system — it essentially is the system. Hold onto that intuition: an eigenvalue is a growth rate. Units of one-over-seconds. Everything else below is about finding where a one-number growth rate hides inside a bigger system.

Two states: find the directions that behave like one

Now take two coupled states:

x˙=Ax,AR2×2\dot{\vec{x}} = A\,\vec{x}, \qquad A \in \mathbb{R}^{2\times 2}

Trajectories curve, spiral, shear — no single “growth rate” is visible. The eigenvalue idea is a question: is there a direction in state space along which this coupled system secretly behaves like the one-state system? That is, a vector v\vec{v} such that pushing the state along v\vec{v} produces a velocity also along v\vec{v}:

Av=λvA\vec{v} = \lambda\,\vec{v}

Read it as dynamics, not algebra: v\vec{v} is a direction the system doesn’t rotate — only stretches, and λ\lambda is the one-state growth rate that lives along it. Start exactly on v\vec{v} and the solution is the 1-state story again: x(t)=veλt\vec{x}(t)=\vec{v}\,e^{\lambda t}, forever. The eigenvector is the shape of a motion; the eigenvalue is its clock.

A 2×22\times 2 matrix generally has two such directions, and — this is the punchline of linearity — every motion is a mix of them:

x(t)=c1v1eλ1t+c2v2eλ2t\vec{x}(t) = c_1 \vec{v}_1 e^{\lambda_1 t} + c_2 \vec{v}_2 e^{\lambda_2 t}

The initial condition chooses the mix (c1,c2c_1, c_2) and then each ingredient evolves on its own clock, completely ignoring the other. In the right coordinates a coupled two-state system is just two one-state systems that happen to be written on the same page. These ingredients are the modes — the word we use for the rest of the course.

Where the determinant comes from

So far the eigenvalue is defined by a wish: find a v0\vec{v} \neq 0 and a λ\lambda with Av=λvA\vec{v} = \lambda\vec{v}. How do you hunt them down? Move everything to one side:

Av=λv        AvλIv=0        (AλI)v=0A\vec{v} = \lambda\vec{v} \;\iff\; A\vec{v} - \lambda I\,\vec{v} = 0 \;\iff\; (A - \lambda I)\,\vec{v} = 0

(The II is honest bookkeeping, not decoration: you can’t subtract a number from a matrix, so “stretch everything by λ\lambda” is written as the matrix λI\lambda I. Then AλIA - \lambda I is a meaningful object in its own right: the difference between what AA does and a pure stretch by λ\lambda.)

Now read the final equation slowly, because the entire method lives inside it. It asks for a nonzero vector that AλIA - \lambda I sends to zero — a whole direction of state space that this matrix flattens to nothing. A matrix that flattens a direction is called singular: it collapses space. And you already own a collapse detector: the determinant is a matrix’s area-scaling factor. (If you’ve been through the Generalisation Ladder, you dragged a parallelogram flat and watched det0\det \to 0 announce a dimension lost — that collapse and this one are the same event.) A matrix kills a direction exactly when it scales areas by zero:

(AλI)v=0 has a nonzero solution        det(AλI)=0(A-\lambda I)\vec{v}=0 \text{ has a nonzero solution} \;\iff\; \det(A - \lambda I) = 0

That is the whole trick. det(AλI)=0\det(A-\lambda I)=0 was never an incantation — it is the question “for which stretch rates λ\lambda does ’AA minus a pure stretch’ collapse space?” Each λ\lambda that answers it is a growth rate the system genuinely contains; the collapsed direction is its eigenvector.

For a 2×22\times 2, expand it once by hand and never again:

det ⁣[aλbcdλ]=(aλ)(dλ)bc=λ2(a+d)trAλ+(adbc)detA\det\!\begin{bmatrix} a-\lambda & b\\ c & d-\lambda \end{bmatrix} =(a-\lambda)(d-\lambda)-bc =\lambda^2-\underbrace{(a+d)}_{\operatorname{tr}A}\lambda+\underbrace{(ad-bc)}_{\det A}

— the characteristic polynomial: degree two, two roots, and (for a real matrix) any complex roots arriving as conjugate pairs — the spirals of the next section. Notice who survived the expansion: only the trace and the determinant, which is why they are about to star in the four-into-two compression below.

Run it on the mass-spring-damper demo’s matrix, A=[01kc]A = \begin{bmatrix}0&1\\-k&-c\end{bmatrix}:

det ⁣[λ1kcλ]=λ(λ+c)+k=λ2+cλ+k=0    λ=c2±c24k\det\!\begin{bmatrix} -\lambda & 1\\ -k & -c-\lambda\end{bmatrix} =\lambda(\lambda+c)+k =\lambda^2+c\lambda+k=0 \;\Rightarrow\; \lambda=-\tfrac{c}{2}\pm\sqrt{\tfrac{c^2}{4}-k}

With the demo’s defaults k=4k=4, c=0.4c=0.4: λ=0.20±1.99i\lambda = -0.20 \pm 1.99i — the exact numbers on its readout, now derived by hand. And the eigenvector costs one more step: put a λ\lambda back in and solve (AλI)v=0(A-\lambda I)\vec{v}=0. The matrix is singular by construction — that was the point — so one row is redundant and a direction’s worth of solutions survives. That direction is v\vec{v}.

A concrete one: mass, spring, damper — and its aircraft costume

The archetype two-state system is one degree of freedom with memory — the mass-spring-damper. Write it in states (position, rate):

x¨=kmxcmx˙ddt[xv]=[01k/mc/m][xv]\ddot{x} = -\tfrac{k}{m}x - \tfrac{c}{m}\dot{x} \quad\Rightarrow\quad \frac{d}{dt}\begin{bmatrix}x\\v\end{bmatrix} =\begin{bmatrix}0 & 1\\[2pt] -k/m & -c/m\end{bmatrix} \begin{bmatrix}x\\v\end{bmatrix}

Look at the four entries honestly: two are pure bookkeeping (the 00 and the 11 just say velocity is the derivative of position); only two carry physics — stiffness and damping. The aircraft’s version of this exact skeleton is the short-period approximation, states α\alpha and qq, whose entries are named stability derivatives: MαM_\alpha is the spring (weathercock stiffness from the tail — the static margin at work), MqM_q and ZαZ_\alpha are the dampers.

Now watch four numbers compress into two. The characteristic polynomial we just derived only ever sees two coordinate-invariant combinations of the entries — trace and determinant:

λ2tr(A)λ+det(A)=0        λ2+2ζωnλ+ωn2=0\lambda^2 - \operatorname{tr}(A)\,\lambda + \det(A) = 0 \;\;\equiv\;\; \lambda^2 + 2\zeta\omega_n\,\lambda + \omega_n^2 = 0

So the chain is: four entries → two invariants (tr,det)(\operatorname{tr}, \det) → the engineering pair (ωn,ζ)(\omega_n, \zeta) → one complex-conjugate pair λ=ζωn±iωd\lambda = -\zeta\omega_n \pm i\omega_d → one point on the map. When an engineer says “the short period is 3 rad/s3\ \text{rad/s} at ζ=0.3\zeta = 0.3,” they have told you the eigenvalues. And this is why eigenvalues, not matrix entries, deserve to be called the system’s numbers: change your state variables or units and all four entries scramble — the eigenvalues don’t move.

The parameter count settles what’s left: 4=24 = 2 clocks + 2+\ 2 directions. The remaining two numbers live in the eigenvectors — the mode shape: how much of each state takes part, and with what phasing. Eigenvalues say when and how fast; eigenvectors say what actually moves (the phugoid puppets speed and height; the short period puppets α\alpha and qq — different puppets, same kind of clock).

Here is that skeleton made touchable — and, more importantly, made checkable: the demo measures the period and decay from the simulated response and compares them against what λ=c/2±ikc2/4\lambda = -c/2 \pm i\sqrt{k - c^2/4} promised, so you can see for yourself where the linearisation’s authority begins and ends.

Tune k and c, read λ, poke the mass — then turn on the cubic spring or crank the poke and watch the matrix’s promise expire.

Complex pairs: the spiral modes

For an aircraft, the eigenvalues usually come in complex conjugate pairs, and it’s worth seeing why that’s not an embarrassment but a description. Take the classic two-state phugoid approximation — the same matrix the Generalisation Ladder draws its decay envelope from: with V0=50m/sV_0 = 50\,\text{m/s} and L/D=12L/D = 12,

A=[2g(L/D)V0g2gV020]λ=0.016±0.277i    s1A = \begin{bmatrix} -\dfrac{2g}{(L/D)\,V_0} & -g \\[8pt] \dfrac{2g}{V_0^2} & 0 \end{bmatrix} \quad\Rightarrow\quad \lambda = -0.016 \pm 0.277\,i \;\;\text{s}^{-1}

No real direction survives unrotated here — the state genuinely orbits. The complex pair is how a real matrix says “spiral”: write λ=σ±iω\lambda = \sigma \pm i\omega and the motion along that mode is

eλt    eσt(cosωt, sinωt)e^{\lambda t} \;\rightsquigarrow\; e^{\sigma t}\big(\cos\omega t,\ \sin\omega t\big)
  • Real part σ\sigma — the old friend: a growth rate. σ<0\sigma < 0: the spiral winds inward. Half-amplitude in ln2/σ\ln 2/|\sigma| seconds.
  • Imaginary part ω\omega — the rotation rate: period 2π/ω2\pi/\omega.

(Old acquaintance alert: σ=0\sigma = 0 exactly is simple harmonic motion — the circle that neither grows nor decays. SHM was never a separate phenomenon; it’s the knife-edge case of a complex pair sitting precisely on the imaginary axis.)

For the phugoid pair above: period 2π/ω=22.7s2\pi/\omega = 22.7\,\text{s}, half-amplitude ln2/σ42s\ln 2/|\sigma| \approx 42\,\text{s}. Those are the numbers the Ladder’s chip printed “computed from the matrix, not from the flight” — and now you know what they are: the polar coordinates of one point in the complex plane.

The phugoid mode ringing down — a complex pair doing its job.

Why this is stability analysis

Here is the entire payoff, and it’s worth saying slowly. Every solution of the linear system is a mix of modes (when the eigendirections span the space — the generic case, and true of every matrix in this course), and a mix cannot invent growth that no ingredient has. Therefore:

every disturbance decays    every eigenvalue has Re(λ)<0\text{every disturbance decays} \iff \text{every eigenvalue has } \operatorname{Re}(\lambda) < 0

Think about what that buys. The nonlinear simulator can only answer “what happens this time, from this state” — one trajectory per run, no guarantees between runs. The eigenvalues answer “what happens for every small disturbance, forever” — by looking at a handful of points in a plane:

One glance at point positions replaces infinitely many simulations. That is stability analysis, and it is the whole reason we went to the trouble of linearising: the nonlinear equations have no eigenvalues. Only the linearised AA — the Jacobian at trim, whose entries are the stability derivatives — offers this bargain. (If linearisation itself is still feeling like a leap, that story is told from first principles in Why Aircraft Need Derivatives.)

And that’s why the rest of the course looks the way it does

Everything downstream is now motivated in one line each:

  • Building AA — deriving the stability derivatives, nondimensionalising, splitting longitudinal from lateral-directional: that’s manufacturing the matrix whose eigenvalues we want (worked example).
  • Modes of motion — meeting the aircraft’s actual points on the map, and learning their names: phugoid, short period, Dutch roll, spiral, roll subsidence.
  • Handling qualities — specs written directly on the map: “this pair must sit at least here-left, between these frequencies.”
  • Control — feedback as the tool that moves the points.

Fly it first: excite the modes →, watch each one ring at its own ω\omega and die at its own σ\sigma — then come back and find them as points. They were in the matrix all along.