Poisson Systems Simulator

@ NTHU 2026 spring · harmonic oscillator + prey–predator model

Poisson Geometry Learning Hub

Poisson dynamics for the harmonic oscillator and the prey–predator model

There are two basic Poisson systems demonstrated in this webpage. The first is the harmonic oscillator with the canonical Poisson bracket. The second is the Lotka–Volterra prey–predator model with the noncanonical bracket $J(x,y)=xy\begin{pmatrix}0&1\\-1&0\end{pmatrix}$. Both models show a phase portrait, vector field, trajectory, and time trace in fixed-scale animation windows.

Canonical harmonic oscillator

$$z=(q,p),\quad J=\begin{pmatrix}0&1\\-1&0\end{pmatrix},\quad H(q,p)=\frac12(p^2+\omega^2q^2).$$ Hamiltonian equation $\dot z=J\nabla H$ gives $\dot q=p,\ \dot p=-\omega^2 q$. Energy level sets are ellipses in phase space.

Lotka–Volterra as a Poisson system

$$J(x,y)=xy\begin{pmatrix}0&1\\-1&0\end{pmatrix},\quad H=\gamma\ln x-\delta x+\alpha\ln y-\beta y.$$ Then $\dot x=x(\alpha-\beta y),\ \dot y=y(\delta x-\gamma)$, and the coexistence equilibrium is $(x^*,y^*)=(\gamma/\delta,\alpha/\beta)$.

1. Harmonic oscillator — canonical Poisson system

Drag the sliders to change $\omega$, initial condition, and visual speed. The yellow ellipse is the Hamiltonian level set selected by the initial energy.

Phase space: vector field, Hamiltonian level set, trajectory, and current state
Time trace: q(t) and p(t)

Controls

Poisson structure

symplectic leaf
whole phase plane
current state z=(q,p)
Poisson tensor
J = [[0,1],[-1,0]]
Hamiltonian
H = 1/2(p² + ω²q²)
equations
q̇ = p, ṗ = −ω²q
equilibrium and level sets
center at (0,0); orbits are closed ellipses.

Live interpretation

selected energy level
period
turning points
instantaneous vector field

Read the phase portrait as follows: the yellow ellipse is fixed by the initial energy, the purple curve is the simulated orbit from the current run, and the orange point moves along the same level set.

Legend

Vector field $\dot z=J\nabla H$
Hamiltonian level set
Full numerical trajectory
Current point

2. Prey–predator / Lotka–Volterra — noncanonical Poisson system

Use the controls to change growth, predation, predator death, conversion, initial populations, and speed. The nullclines cross at the coexistence equilibrium.

Positive quadrant phase portrait: vector field, nullclines, trajectory, and current state
Time trace: prey x(t) and predator y(t)

Controls

The slider ranges are intentionally conservative. Internally, the simulation uses $u=\ln x,\ v=\ln y$ so populations stay positive; a fixed safety envelope and fixed phase-axis ranges prevent extreme values from breaking or resizing the display. The time trace keeps the full curve from t=0.

Poisson structure

symplectic leaf
positive quadrant x>0, y>0
current state (x,y)
Poisson tensor
J(x,y)=xy [[0,1],[-1,0]]
Hamiltonian
H = γ ln x − δx + α ln y − βy
equations
ẋ=x(α−βy), ẏ=y(δx−γ)

Equilibrium & nullclines

coexistence equilibrium
prey nullcline
y = α/β
predator nullcline
x = γ/δ
phase portrait reading
closed population cycles surround the coexistence point.

Reading the phase portrait

current population trend
current vector field
active parameter set
  • Below the horizontal nullcline y=α/β, prey increases; above it, prey decreases.
  • Right of the vertical nullcline x=γ/δ, predators increase; left of it, predators decrease.
  • The simulation is run in u=ln x, v=ln y, so the positive quadrant is respected during playback.

Legend

Vector field
Nullcline $x=\gamma/\delta$
Nullcline $y=\alpha/\beta$
Full numerical trajectory
Current population state

Poisson-system summary

Both examples have the same geometric form $\dot z=J(z)\nabla H(z)$, but one is canonical and one is noncanonical.

Model Poisson tensor Hamiltonian Equations of motion Geometric interpretation
Harmonic oscillator J = [[0,1],[-1,0]] H = 1/2(p² + ω²q²) q̇ = p, ṗ = −ω²q Energy ellipses in the full $(q,p)$ plane; every orbit is periodic except the origin.
Prey–predator / Lotka–Volterra J(x,y)=xy [[0,1],[-1,0]] H = γ ln x − δx + α ln y − βy ẋ = x(α−βy), ẏ = y(δx−γ) Closed level curves around the coexistence equilibrium inside the positive quadrant; axes are degeneracy boundaries.

Tip: try increasing oscillator $\omega$ to squeeze the energy ellipse horizontally; then increase prey–predator $\beta$ to move the predator nullcline downward and change the orbit shape. The prey–predator ranges are limited to keep the trajectories readable and numerically safe. The time traces are cumulative, so they are not cleared during playback.