Van der Pol Oscillator
Simulate the second-order nonlinear equation \(\ddot{x} - \mu(1-x^2)\dot{x} + x = 0\) and observe the transition from sinusoidal oscillation to relaxation oscillations as \(\mu\) increases.
The Van der Pol Equation
The Van der Pol oscillator, introduced by Dutch physicist Balthasar van der Pol (1920), models self-sustained oscillations in electrical circuits with nonlinear damping. The second-order ODE is:
Writing \(v = \dot{x}\), this is equivalent to the first-order system \(\dot{x}=v\), \(\dot{v}=\mu(1-x^2)v - x\).
Physical Interpretation — Horizontal Slider
The animation shows a mass block threaded onto a fixed horizontal pole. The restoring force \(-x\) acts like a spring pulling the mass back to center. The nonlinear damping \(\mu(1-x^2)\dot{x}\) switches sign depending on position:
- Blue zone \(|x|<1\): negative damping — the system pumps energy in, like a hidden motor accelerating the mass.
- Red zone \(|x|>1\): positive damping — energy is removed, braking the mass.
These two competing effects self-regulate to drive every trajectory toward the unique stable limit cycle of amplitude ≈ 2.
Regimes
- \(\mu = 0\): Simple harmonic oscillator — sinusoidal motion, constant amplitude.
- \(\mu \ll 1\): Quasi-sinusoidal, slowly converging to limit cycle. Period \(\approx 2\pi\).
- \(\mu \approx 1\): Clear nonlinear distortion, rapid approach to limit cycle.
- \(\mu \gg 1\): Relaxation oscillations — the mass drifts slowly then snaps rapidly. Period \(T \approx 1.614\,\mu\).
Numerical Solvers
- RK4 (classical, order 4) — used for \(\mu \le 5\). Four evaluations per step. Fixed step \(\Delta t = 0.01/(1+\mu/5)\).
- SDIRK2 (singly diagonally implicit, order 2) — used for \(\mu > 5\). A-stable and L-stable: unconditionally stable for any step size. Newton iteration with analytic Jacobian and exact \(2\times2\) solve. Adaptive step control.
Slider range 0 to 20; type any value 0–1000 in the number field. At mu equals 0, period equals 2 pi. For large mu, period is approximately 1.614 times mu.
Space pause / resume R reset