Skip to content

Simulations & Interactive Learning

Two live widgets, aimed at the two places where PHY621's abstraction most needs something to look at: a basis expansion converging, and an eigenvalue problem being solved.

Live

  • Fourier series builder — watch harmonics assemble a square wave, and meet the Gibbs phenomenon
  • Normal modes lab — a real generalised-eigenvalue solver (Jacobi rotations) on coupled oscillators: the CO₂ triatomic, the uniform chain, and a heavy defect that localises a mode

What the normal-modes lab is checked against

Case Exact result Agreement
Triatomic, translation \(\omega_1 = 0\) \(10^{-9}\)
Triatomic, antisymmetric \(\omega_2 = \sqrt{k/m}\) machine precision
Triatomic, symmetric \(\omega_3 = \sqrt{(k/m)(1+2/\mu)}\) machine precision
Centre-mass amplitude in mode 2 exactly zero \(10^{-16}\)
Uniform chain \(\omega_n = 2\sqrt{k/m}\sin\frac{n\pi}{2(N+1)}\) \(10^{-16}\)
Mass-weighted orthogonality \(\mathbf{a}_i^{\mathsf T}A\mathbf{a}_j = 0\) \(10^{-16}\)

The two ideas these illustrate

Both widgets are the same mathematical operation wearing different clothes: expand in the eigenbasis of an operator.

  • The Fourier builder expands a function in the eigenfunctions of \(d^2/dx^2\) on an interval.
  • The normal-modes lab expands a displacement in the eigenvectors of the stiffness matrix.

Take \(N\to\infty\) in the second and you get the first: the discrete chain's eigenvectors are sampled sines, and its frequencies \(2\sin(n\pi/2(N+1))\) tend to \(n\pi/(N+1)\) — the linear dispersion of a continuous string. The normal modes lab lets you watch that limit happen by raising \(N\).

Eigenvalues & eigenvectors · Fourier series · Normal modes · Inner product spaces