1import numpy as np 2import time 3 4tic = time.time() 5 6x1 = -2.0 7x2 = 1.0 8y1 = -1.0 9y2 = 1.0 10 11w = 150 12h = 100 13maxit = 127 14 15def mandelbrot(x, y, maxit): 16 c = x + y*1j 17 z = 0 + 0j 18 it = 0 19 while abs(z) < 2 and it < maxit: 20 z = z**2 + c 21 it += 1 22 return it 23 24dx = (x2 - x1) / w 25dy = (y2 - y1) / h 26 27C = np.empty([h, w], dtype='i') 28for k in np.arange(h): 29 y = y1 + k * dy 30 for j in np.arange(w): 31 x = x1 + j * dx 32 C[k, j] = mandelbrot(x, y, maxit) 33 34M = C 35 36toc = time.time() 37print('wall clock time: %8.2f seconds' % (toc-tic)) 38 39# eye candy (requires matplotlib) 40if 1: 41 try: 42 from matplotlib import pyplot as plt 43 plt.imshow(M, aspect='equal') 44 try: 45 plt.nipy_spectral() 46 except AttributeError: 47 plt.spectral() 48 plt.pause(2) 49 except: 50 pass 51