Case Study 2 — The RLC Circuit and the Damping Spectrum: How One Eigenvalue Decides Whether a System Rings
Field: electrical engineering and control theory. This study cashes in §37.5 (complex eigenvalues = oscillation), §37.7 (stability from the real part), and §37.8 (the trace-determinant classification) on the circuit at the heart of every radio, filter, and oscillator. The same eigenvalue analysis decides whether a car suspension bounces, a building sways, or a control loop hunts — the "damping spectrum" is one of engineering's most reused ideas.
The problem: a circuit that might ring
A series RLC circuit connects a resistor ($R$), an inductor ($L$), and a capacitor ($C$) in a loop. It is the electrical twin of a mass on a spring with friction: the inductor stores energy in a magnetic field (like a moving mass's momentum), the capacitor stores it in an electric field (like a stretched spring), and the resistor dissipates it as heat (like friction). Energy sloshes back and forth between inductor and capacitor while the resistor steadily drains it. The question is the one this chapter keeps asking: left alone after an initial disturbance, does the circuit ring (oscillate as it dies) or ease quietly to rest? And what decides which?
Take the circuit's state to be $\mathbf{x} = (i, v_C)$, the current through the inductor and the voltage across the capacitor. The physical laws (Kirchhoff's voltage law and the capacitor relation $i = C\,v_C'$) give two coupled first-order equations. With normalized components $L = C = 1$, they become $$ i' = -R\,i - v_C, \qquad v_C' = i, $$ i.e. $\mathbf{x}' = A\mathbf{x}$ with $$ A = \begin{bmatrix} -R & -1 \\ 1 & 0 \end{bmatrix}. $$ The single knob is the resistance $R \ge 0$ — how much damping we apply. Everything about the circuit's character is going to turn out to be a function of where $R$ places the eigenvalues of $A$.
Reading the damping off the eigenvalues
Apply the trace-determinant tools of §37.8 before computing anything in detail. The trace is $\operatorname{tr} A = -R + 0 = -R$, and the determinant is $\det A = (-R)(0) - (-1)(1) = 1$. So:
- The determinant is $1 > 0$ for all $R$, which (with the eigenvalue product $\lambda_1\lambda_2 = 1 > 0$) rules out a saddle and guarantees the eigenvalues never have opposite signs.
- The trace is $-R \le 0$, so the sum of the real parts is non-positive. For any $R > 0$ the system is stable (eigenvalues in the left half-plane); at $R = 0$ it sits on the boundary.
- The character — ringing versus easing — is set by the discriminant $\Delta = (\operatorname{tr} A)^2 - 4\det A = R^2 - 4$.
That last quantity, $\Delta = R^2 - 4$, is the entire story, and its sign flips at $R = 2$. This $R = 2$ is the critical damping resistance, the knife-edge between two qualitatively different behaviors.
Underdamped ($R < 2$, so $\Delta < 0$): the circuit rings. The eigenvalues are complex, $\lambda = \tfrac{-R \pm \sqrt{R^2-4}}{2} = -\tfrac{R}{2} \pm i\,\tfrac{\sqrt{4-R^2}}{2}$. By §37.5, the real part $-R/2$ is the decay rate of the envelope and the imaginary part is the oscillation frequency. The current and voltage oscillate — energy ping-pongs between inductor and capacitor — inside a shrinking envelope $e^{-Rt/2}$. This is a stable spiral. A radio tuner lives here on purpose: light damping means a sharp resonance, the circuit "rings" at a definite frequency and rejects others.
Overdamped ($R > 2$, so $\Delta > 0$): the circuit eases. The eigenvalues are real and both negative, $\lambda = \tfrac{-R \pm \sqrt{R^2-4}}{2}$. No imaginary part means no oscillation — the energy is dissipated faster than it can slosh, so the current decays monotonically to zero without ever reversing. This is a stable node. A door-closer is tuned to be overdamped: you want the door to settle shut, not bounce.
Critically damped ($R = 2$, so $\Delta = 0$): the fastest non-ringing return. The eigenvalues coincide at $\lambda = -R/2 = -1$ (repeated). This is the boundary case of §37.8: the system returns to rest as fast as possible without overshooting. Push damping any lower and it rings; any higher and it sluggishly creeps. Critical damping is the engineer's sweet spot for many control systems — the quickest settle with no oscillation.
One number, $\Delta = R^2 - 4$, partitions the entire behavior of the circuit. Its sign decides ringing versus easing; the trace $-R$ decides how fast either one decays. The eigenvalues turn a continuous knob ($R$) into a qualitative verdict (spiral, node, or the critical boundary).
There is a lovely geometric way to watch this happen: trace the eigenvalues' path through the complex plane as $R$ increases from $0$. At $R=0$ the eigenvalues sit at $\pm i$ on the imaginary axis — a center, the undamped oscillator that rings forever. As $R$ grows from zero, the conjugate pair slides leftward off the axis (their real part $-R/2$ becomes negative) while staying complex — a stable spiral that rings and decays. The two eigenvalues travel along a circle of radius $1$ (because their product $\det A = 1$ is fixed, $|\lambda|^2=1$) until, at $R=2$, they collide on the negative real axis at $-1$. For $R>2$ they split apart and move along the real axis — one racing toward $-\infty$, the other creeping back toward $0$ — two real negative eigenvalues, an overdamped node. The whole drama of damping is this single trajectory: eigenvalues descending from the imaginary axis, meeting on the real axis at critical damping, then separating. Engineers call the picture a root locus, and designing a system is choosing where on such a curve to sit.
Verifying the three regimes
Let us compute the eigenvalues across the regimes and confirm the classification numerically.
# RLC circuit (L=C=1): A = [[-R,-1],[1,0]]. Discriminant R^2-4 decides ringing vs easing.
import numpy as np
from scipy.linalg import expm
from scipy.integrate import solve_ivp
def rlc(R):
return np.array([[-R, -1.], [1., 0.]])
for R in [1.0, 2.0, 3.0]:
lam = np.linalg.eigvals(rlc(R))
disc = R**2 - 4
print(f"R={R}: eig={np.round(lam,6)}, disc={disc:+.1f}")
# R=1.0: eig=[-0.5+0.866025j -0.5-0.866025j], disc=-3.0 underdamped -> stable spiral (rings)
# R=2.0: eig=[-1.+0.j -1.+0.j], disc=+0.0 critically damped (repeated eigenvalue)
# R=3.0: eig=[-2.618034+0.j -0.381966+0.j], disc=+5.0 overdamped -> stable node (no ring)
The output confirms the partition exactly: at $R=1$ the eigenvalues are complex ($-0.5\pm0.866i$ — a ringing stable spiral), at $R=2$ they collapse to the repeated real value $-1$ (critical damping), and at $R=3$ they are two distinct negative reals ($-2.618$ and $-0.382$ — a non-ringing stable node). The same matrix family walks from spiral to node as we turn up the resistance, crossing the critical boundary at $R=2$.
Now watch the trajectory tell the same story. Starting the underdamped circuit from $\mathbf{x}(0)=(1,0)$ (an initial current, no capacitor voltage), the current should oscillate as it decays:
# Underdamped R=1: trajectory rings (oscillates) while decaying. Verify expm vs solve_ivp.
import numpy as np
from scipy.linalg import expm
from scipy.integrate import solve_ivp
A = np.array([[-1., -1.], [1., 0.]]) # R = 1, underdamped
x0 = np.array([1., 0.])
for t in [1.0, 3.0]:
sol = solve_ivp(lambda t, x: A @ x, [0, t], x0, t_eval=[t], rtol=1e-10, atol=1e-12)
print(t, np.round(expm(A*t) @ x0, 6), np.round(sol.y[:, -1], 6))
# 1.0 [0.126193 0.533507] [0.126193 0.533507]
# 3.0 [-0.257597 0.133243] [-0.257597 0.133243]
At $t=1$ the current has dropped to $0.126$; by $t=3$ it has gone negative ($-0.258$) — the current has reversed direction, the visible fingerprint of oscillation, while the overall magnitude shrinks. The matrix exponential and the independent integrator agree to six decimals, confirming both the ringing (sign change) and the decay (shrinking magnitude). A circuit with complex eigenvalues rings; the negative real part guarantees the ringing fades.
The same spectrum, everywhere in engineering
The RLC circuit is the simplest member of a family that engineers analyze constantly, and the "damping spectrum" — underdamped / critically damped / overdamped, read off the discriminant — recurs in every corner of the field. The mechanical twin is a mass-spring-damper: replace $R$ with the friction coefficient and you get the suspension of a car. Car designers tune it slightly underdamped (a little ring) for a comfortable ride, but not so much that the car bounces repeatedly after a bump — too little damping is a queasy, oscillating ride; too much is a harsh, jarring one. The eigenvalues set the trade-off.
The deepest payoff is in control theory, the discipline of making systems behave by feedback. When you design a cruise control, a thermostat, a drone's attitude stabilizer, or a robot-arm controller, the closed-loop dynamics are $\mathbf{x}'=A\mathbf{x}$ where the matrix $A$ now depends on the feedback gains you choose. The entire art of control design is to place the eigenvalues of $A$ where you want them — deep in the left half-plane for fast, stable response; just complex enough for a touch of acceptable overshoot; never on or across the imaginary axis, which would mean sustained oscillation or runaway instability. A drone whose controller puts an eigenvalue in the right half-plane does not hover — it flips and crashes. A thermostat with eigenvalues too close to the imaginary axis "hunts," overshooting the setpoint and oscillating around it forever. Engineers have a whole vocabulary — pole placement, the Routh–Hurwitz criterion, gain and phase margins — devoted to one goal: keeping $\operatorname{Re}\lambda < 0$ with the right amount of damping. Every one of those techniques is a way of reasoning about the eigenvalues of $A$ without always computing them explicitly.
This is recurring theme #6 of the book at its most consequential. In Chapter 29 the dominant eigenvalue of a stochastic matrix ranked the web; here the eigenvalues of a system matrix decide whether a physical device is stable, sluggish, or oscillatory — whether a circuit rings, a car rides smoothly, a drone flies. The matrix exponential $e^{At}$ is the machine that turns those eigenvalues into the actual time response, but the engineer often skips it entirely: knowing the eigenvalues is knowing the fate. Turn the damping knob, watch the eigenvalues slide across the complex plane, and you are watching a design come to life — or fall apart. The spectrum is the system's character, written in two complex numbers.