The formula (the core equation(s), each with a one-line reading of what it says)
A = Aᵀ (real symmetric: a_ij = a_ji)
Reads: the coupling from DOF i to DOF j equals the coupling from j back to i — the matrix form of reciprocity, and the reason stiffness, mass, and covariance matrices come out symmetric without anyone asking.
H = Hᴴ = conj(Hᵀ) (Hermitian: h_ij = conj(h_ji), diagonal real)
Reads: the complex generalization — transpose AND conjugate. The diagonal must be real, and the conjugate is not optional: a complex matrix that is merely symmetric gets none of the guarantees below.
A = Q·Λ·Qᵀ (Q orthogonal, Λ = diag(λ₁ … λₙ), all λᵢ real)
H = U·Λ·Uᴴ (U unitary, Λ still real)
Reads: the spectral theorem — every symmetric or Hermitian matrix has real eigenvalues and a full set of mutually perpendicular eigenvectors, no exceptions, no defective cases. This is why "principal axes" always exist.
λ_min ≤ (xᴴ·H·x)/(xᴴ·x) ≤ λ_max (Rayleigh quotient)
Reads: plug in any trial vector and the quotient lands between the extreme eigenvalues — the one-line justification for every hand estimate of a fundamental frequency.
H_part = (Z + Zᴴ)/2, S_part = (Z − Zᴴ)/2, Z = H_part + S_part
Reads: any square matrix splits uniquely into a Hermitian part and a skew-Hermitian part; in an impedance matrix the Hermitian part is the piece that dissipates real power.
Where you meet it (2-4 concrete engineering situations, specific: bench, test stand, review board)
The modal survey on the shake table. The structure under test obeys M·ü + K·u = 0 with both K and M symmetric — K because elastic reciprocity says deflecting point i loads point j exactly as deflecting j loads i, M because kinetic energy is a quadratic form. The natural frequencies come from K·φ = ω²·M·φ, and symmetry of K plus positive-definiteness of M — kinetic energy is a positive quadratic form — is what guarantees real ω² and mass-orthogonal mode shapes (φᵢᵀ·M·φⱼ = 0 for distinct modes). Symmetry alone is not enough: an indefinite M can push ω² complex even with both matrices perfectly symmetric. Every modal-assurance-criterion table and every mode normalization in the test report leans on that orthogonality.
The two-port on the VNA. Measure a passive reciprocal network and the S-matrix comes back symmetric: S₂₁ = S₁₂, transpose only, no conjugate — reciprocity is a symmetric statement even for complex numbers. The Hermitian statement shows up one step later: time-average power delivered to an n-port is P = ½·Iᴴ·(Z + Zᴴ)/2·I, so passivity is the claim that the Hermitian part of Z is positive semidefinite. Confusing the two symmetries is the classic RF bench mistake, covered below.
The covariance matrix in the data review. Any sample covariance — scatter of accelerometer channels, error ellipse of a tracking solution — is symmetric by construction, since cov(x_i, x_j) = cov(x_j, x_i). Go to complex baseband and the array covariance R = E[x·xᴴ] is Hermitian; direction-finding algorithms live entirely inside its eigenvector decomposition, which exists and is orthonormal precisely because R is Hermitian.
The spin-balance slide at the review board. The inertia tensor is symmetric, so the spectral theorem hands you three real principal moments and three perpendicular principal axes for any rigid body, however lopsided. The stress tensor at a point is symmetric for the same structural reason (moment balance), which is why principal stresses are always real and Mohr's circle never produces a complex answer.
How it works (the real substance — behavior, gotchas, limits of validity, the mistake people make)
Run the honest numbers. Two-DOF stand: masses 2 kg and 1 kg, springs giving
K = [ 3000 -1000 ] M = [ 2 0 ]
[-1000 1000 ] [ 0 1 ]
Solving K·φ = ω²·M·φ gives ω² = 500 and 2000, so ω = 22.4 and 44.7 rad/s — 3.56 Hz and 7.12 Hz, both real, with mode shapes that satisfy φᵀ·M·φ = I after normalization. A Hermitian example: H = [[2, 1−j], [1+j, 3]] has eigenvalues exactly 1 and 4 — complex entries, real spectrum, unitary eigenvectors. That is the whole promise.
What the solver buys from the structure:
- Half the storage, half the work, better guarantees. A symmetric n×n matrix carries
n(n+1)/2independent entries — 500,500 instead of a million at n = 1000 — and factors asL·D·Lᵀwithout the general-matrix bookkeeping. Symmetric eigensolvers (Householder tridiagonalization, Jacobi rotations, Lanczos instead of Arnoldi for the big sparse cases) are faster, and they return provably real eigenvalues with orthogonal vectors. Call the symmetric routine (eigh, DSYEV/ZHEEV) when you have the right, not the general one. - Eigenvalues that cannot be fragile. Weyl's inequality says a symmetric perturbation E moves each eigenvalue of a symmetric A by at most
‖E‖₂. Checked: perturbing the eigenvalue-1,3 matrix[[2,−1],[−1,2]]by a symmetric E with‖E‖₂ = 0.0224moved both eigenvalues by 0.0199. Predicted frequencies are robust to model error in a way general-matrix eigenvalues simply are not. The eigenVECTORS are the fragile part — two nearly equal eigenvalues share an ill-defined pair of directions, which is why closely spaced modes swap and mix between test and model.
The mistakes people actually make:
- Complex symmetric is not Hermitian.
Z = [[j, 1], [1, j]]is perfectly symmetric and its eigenvalues are1 + jand−1 + j— not real. Reciprocity gives youZᵀ = Z; it promises nothing about the spectrum. Real eigenvalues need the conjugate transpose. Rule of thumb at the bench: reciprocity is a transpose statement, power and passivity are conjugate-transpose statements, and a lossless network's S-matrix is unitary (SᴴS = I), which is again a Hermitian-flavored condition. - Roundoff asymmetry poisons the general solver. Assemble K from element contributions in floating point and
a_ijcan differ froma_jiin the last bit. Feed that to a general eigensolver and eigenvalues are free to leave the real axis — a skew perturbation of size 1e−9 on the identity yields the complex pair1 ± 1e−9·j, and suddenly the post-processing script is takingsqrtof a complex "ω²" and someone is debugging phantom damping. Fix is one line: symmetrize with(A + Aᵀ)/2, then call the symmetric routine, which never returns complex output. M⁻¹·Kthrows the symmetry away. The lazy way to reduceK·φ = ω²·M·φto a standard eigenproblem produces a nonsymmetric matrix even though K and M are both symmetric. The right way keeps it: factorM = L·Lᵀand work withL⁻¹·K·L⁻ᵀ, symmetric again, same eigenvalues. The Cholesky factor L exists only when M is positive definite — a model with massless or rotation-only DOFs has a singular M and the trick fails; factor K instead (or use a shift-invert transformation), which is exactly what sparse structural eigensolvers do. Every serious structural code handles this internally.- Symmetry is a property of the physics, not a favor from the code. Gyroscopic terms, follower forces, feedback-controlled actuators, and aeroelastic coupling all produce genuinely nonsymmetric system matrices — and genuinely complex eigenvalues, which is exactly how flutter shows up. If your matrix isn't symmetric, don't symmetrize it into a lie; ask why the physics broke reciprocity.
- A Hermitian matrix must have a real diagonal. If a "covariance" estimate shows 1e−12·j on the diagonal, that's accumulated roundoff, and the honest cleanup is
R ← (R + Rᴴ)/2before the eigendecomposition, noted in the analysis.
The quick estimate worth keeping: the Rayleigh quotient. Guess a deflected shape x, compute (xᵀ·K·x)/(xᵀ·M·x), and you have an upper-biased estimate of ω₁² that is second-order accurate for a first-order-accurate guess. That's the entire mechanism behind Rayleigh's classical beam-frequency method.
History (who derived it and when, told as a short story with inline [n] citations)
The subject was born in the solar system. Lagrange and Laplace, working the long-period "secular" perturbations of the planets in the late 1700s, kept arriving at systems whose coefficient arrays were symmetric — and whose characteristic roots had to be real for the solar system's story to make sense, a fact they could argue physically but not prove [1][2]. Augustin-Louis Cauchy closed the gap in an 1829 paper titled, in translation, "On the equation by which the secular inequalities of planetary motion are determined": working in the language of quadratic forms, he gave the first general proof that the eigenvalues of a real symmetric matrix are real [1][2]; a decade later, in an 1840 memoir on integrating linear equations, he would coin the term "équation caractéristique" for the equation that yields them [7].
Carl Jacobi made it computable. His 1846 paper in Crelle's Journal — again motivated by secular perturbation calculations — diagonalized a symmetric matrix by sweeping plane rotations through it, by hand [3][4]. The method sat mostly idle for a century until the machines of the 1950s made it practical, and rotation-based symmetric eigensolvers descend from it [3][4].
Charles Hermite supplied the complex half in 1855, in a short note to the Paris Academy responding to Cauchy's theorem: arrays equal to their own conjugate transpose share the real-eigenvalue property of real symmetric matrices [5][6]. The class took his name. Hilbert's school then pushed self-adjointness from finite arrays to operators on infinite-dimensional spaces, where Born, von Neumann, and company made Hermitian operators the observables of quantum mechanics — real eigenvalues being exactly what a measurable quantity requires [5][6].
Related tools (bullet list of HE calculator slugs that use or neighbor this topic, as /tools/ links; omit section if none fit)
- /tools/vibration-natural-freq — the n-DOF version of
ω = √(k/m)is the symmetric generalized eigenproblemK·φ = ω²·M·φ - /tools/shaft-speed-critical — critical speeds are eigenvalues of a symmetric stiffness–mass pair, real because of it
- /tools/beam-deflection — beam influence coefficients are symmetric by Maxwell–Betti reciprocity
- /tools/moment-of-inertia-shapes — the inertia tensor is the symmetric matrix whose eigenvectors are the principal axes
- /tools/stress-strain — the stress tensor's symmetry is why principal stresses are always real
- /tools/series-rlc-impedance — the one-port seed of the impedance matrices whose Hermitian part carries the dissipated power
Sources
- https://www.sciencedirect.com/science/article/pii/0315086075900324
- https://old.maa.org/press/periodicals/convergence/math-origins-eigenvectors-and-eigenvalues
- https://en.wikipedia.org/wiki/Jacobi_eigenvalue_algorithm
- https://www.cs.utexas.edu/~flame/laff/alaff/chapter11-Jacobi-method-spectral-decomposition.html
- https://en.wikipedia.org/wiki/Hermitian_matrix
- https://en.wikipedia.org/wiki/Charles_Hermite
- https://mathshistory.st-andrews.ac.uk/Miller/mathword/c/