Poincaré Sections
Compute Poincaré sections using NDSolve with WhenEvent.
For a periodically driven planar example, the Poincaré section can be obtained by sampling at regular time intervals. Sampling can be done using WhenEvent, with an action having Sow with an enclosing Reap around the call to NDSolve.
The strange attractor for these parameter values can be visualized using ListPlot:
For higher-dimensional systems, the Poincaré section in effect samples on a slice across the phase space. This typically requires an event that depends on the solution. An example of this is the Arnold–Beltrami–Childress (ABC) flow that is used to model chaos in laminar flows of the three-dimensional Euler equations: