Lesson 15 of 15

Chaos Synchronization

Chaos Synchronization

It may seem paradoxical: two chaotic systems — which are exquisitely sensitive to initial conditions — can nonetheless synchronize completely, with their trajectories becoming identical after some transient time.

The key mechanism is unidirectional coupling (master-slave). A master system evolves freely; a slave system is nudged toward the master at each step with coupling strength k:

xn+1=f(xn)(master)x_{n+1} = f(x_n) \quad \text{(master)} yn+1=(1k)f(yn)+kf(xn)(slave)y_{n+1} = (1 - k)\,f(y_n) + k\,f(x_n) \quad \text{(slave)}

When k = 0, the systems are independent and diverge (chaotic sensitivity). When k = 1, the slave is driven entirely by the master and synchronizes exactly after one step. For intermediate k, the slave is partially driven and may or may not synchronize depending on the Lyapunov exponent of the coupled system.

This phenomenon, discovered by Pecora and Carroll (1990), has applications in secure communications, where a message can be encoded in a chaotic signal and recovered by a synchronized receiver.

Implement the following functions:

  • master_slave_logistic(x0, y0, r, k, steps) — evolve the master-slave coupled logistic maps for steps iterations, return (x, y)
  • synchronization_error(x0, y0, r, k, n_transient, n_measure) — mean |x - y| over n_measure steps after n_transient transients
  • is_synchronized(x0, y0, r, k, n_transient, n_measure, tol) — True if the mean sync error is below tol
Python runtime loading...
Loading...
Click "Run" to execute your code.