Read the equation
Each oscillator advances at its natural frequency and is pulled by the sine of its phase differences with every oscillator. Dividing by N keeps the nominal coupling scale comparable as population size changes. The source initializes phases and frequencies on deterministic index grids despite comments calling them random, then applies synchronous Euler steps.
Terms & definitions
| Term | Meaning in this source |
|---|---|
| theta_i | Oscillator phase |
| omega_i | Natural frequency |
| K | Coupling strength |
| N | Oscillator count |
How it works
Read the definition from its right-hand expression to the quantity on the left. Its surrounding source records the intended input, state, or parameter context. Where the source leaves an operation unspecified, this page preserves that gap.
Assumptions & limits
Source recovery establishes that the expression appears in this record. Its mathematical validity, implementation behavior, and interpretation must be assessed separately. See the linked source and research notes for the checks available for this version.
Original context
Read the surrounding source passage
for (size_t i = 0; i < N; ++i) {
u[i] += du[i] * dt;
}
}
};
// Kuramoto Model (synchronization)
// dθ_i/dt = ω_i + (K/N) * Σ_j sin(θ_j - θ_i)
template<size_t N>
struct KuramotoModel {
float K = 1.0f; // Coupling strength
std::array<float, N> theta; // Phases
std::array<float, N> omega; // Natural frequencies
void initialize(float omega_mean, float omega_std) {
for (size_t i = 0; i < N; ++i) {
// Random phase in [0, 2π]Exact original notation
dθ_i/dt = ω_i + (K/N) * Σ_j sin(θ_j - θ_i)