# Synchronized Chaos using Lorenz Attractor # FB - 201108011 import random delta = float(10) # Prandtl number r = float(28) b = float(8) / 3 h = 1e-3 # time step def Lorenz(x, y, z): dx_dt = delta * (y - x) dy_dt = r * x - y - x * z dz_dt = x * y - b * z x += dx_dt * h y += dy_dt * h z += dz_dt * h return (x, y, z) maxIt = 2000 size = 30 # initial state of the driver system x = random.random() * size * 2 - 1 y = random.random() * size * 2 - 1 z = random.random() * size * 2 - 1 # initial state of the sub-system # x1 = random.random() * size * 2 - 1 y1 = random.random() * size * 2 - 1 z1 = random.random() * size * 2 - 1 for i in range(maxIt): (x, y, z) = Lorenz(x, y, z) # x variable of the driver is chosen as driver signal (x1, y1, z1) = Lorenz(x, y1, z1) # 2 y and 2 z values should become synched w/ time print '(%04i, %+07.3f, %+07.3f, %+07.3f, %+07.3f)' % (i, y, y1, z, z1)