Coupled ODEs

Synchronization and Collective Dynamics

In this session we return to ODEs and study coupled oscillators. The main example is the Kuramoto model, where synchronization emerges from weak coupling.

Case Studies

We will focus on the Kuramoto model, which represents a population of oscillators with distributed natural frequencies. You can read the theory in the following page:

Kuramoto Model

The following button will guide you through a basic implementation of the model, including visualizations of the oscillators.

Oscillators and Animation

Next, we will explore the bifurcation diagram of the Kuramoto model, which shows how the order parameter changes as a function of the coupling strength.

Bifurcation Diagram

Finally, we merge the two graphs together into a full simulation with sliders to control parameters in real time.

Full Simulation

And once that is ready, we will apply the same ideas to a more complex system: the Millennium Bridge crowd–bridge synchrony model.

Assignment

What do we need?

scipy

We are back to ODEs. Use scipy.integrate.solve_ivp().

matplotlib.pyplot

Initialize the figure and axes and draw static elements.

matplotlib.animation

Update plot elements in real time for animations.

matplotlib.Slider

Add sliders so users can interact with parameters.

References