L’insieme di Mandelbrot o frattale di Mandelbrot è l’insieme dei numeri complessi \(c \in \displaystyle{C}\) per i quali la successione definita da:
è limitata.
Nonostante la semplicità della definizione, l’insieme ha una forma complessa il cui contorno è un frattale.
Qui, la funzione per la costruzione della matrice da diagrammare:
def plotter(n, vallim, itlim, xi,xs,yi,ys):
image = np.full((n,n),0)
Xp = np.linspace(xi,xs,n)
Yp = np.linspace(yi,ys,n)
for x in range(n):
for y in range(n):
image[y][x] = divergetest(complex(Xp[x],Yp[y]),vallim, itlim)
return image
Di seguito, invece, la routine per verificare la convergenza della successione:
def divergetest(c, vallim, itlim):
z = c
i = 0
while i < itlim and np.sqrt((z.real)**2 + (z.imag)**2)< vallim:
z = z**2 + c
i = i + 1
return i
Il programma principale:
n = 5000
xi,xs,yi,ys = -3,1,-2,2
vallim = 5
itlim = 30
mandelbrot = plotter(n,vallim,itlim,xi,xs,yi,ys)
plt.figure(1,figsize=[8,8])
plt.title('Mandelbrot Set')
plt.imshow(mandelbrot,extent=[-3,1,-2,2])
plt.xlabel('Real')
plt.ylabel('Complex')
plt.show()
Di seguito, l’output del programma: