Introduction to Complex Systems
Practical Problem 13: Pulse Coupled Oscillators
This problem is very similar to the last one. However, here the oscillators are coupled by pulses, short interactions that occur when an oscillators phase
reaches a threshold, sends pulses to neighboring oscillators and then experiences a phase
reset.
Like in the last problem patches should have two properties phase
and dphase
. However, the phase variable is defined on the range 0 to 1.
Each oscillator is governed by the equation
$$ \dot\theta = I - \theta $$
where the input $I$ should be a slider variable and have a value $>1$. A good value is $1.2$.
The phases should be initialized (setup
) randomly in a range 0 to 1.
independent oscillators
As such the dynamical system above will have each oscillator approach the asymptotic value $I$, so $\theta\rightarrow I$.
However, we will modify the dynamics such that when $\theta$ reaches 1, it will
- emit a spike
- be reset to 0
First code the dynamics of independent oscillators
ask patches [
set dtheta dt * ( I - theta )
set theta theta + dtheta
if theta > 1 [
set theta 0
]
]
Now write a function that emits a spike to the neighbors with the effect that for those neighbors dtheta
will be increased by a positive number $s$. That number should be a slider, also.