Corso di Ottimizzazione Combinatoria (IN440)

Esercizi e sorgenti dei programmi

Visualizzazione dell'insieme di Mandelbrot in linguaggio Python

Di seguito riportiamo la codifica di un programmino Python che, utilizzando la libreria GraphicsDocumento in formato PDF visualizza l'insieme di Mandelbrot. Il programmino è stato sviluppato come esercizio in laboratorio.

Codifica in linguaggio Python 3.x

from graphics import *
import numpy as np

def punto(re, im, zre0, zim0, maxCicli):
   zre = zre0
   zim = zim0
   k = 0
   while zre**2 + zim**2 <=4.0 and k < maxCicli:
      temp = zre**2 - zim**2 +re
      zim = 2.0*(zim*zre) + im
      zre = temp
      k = k+1
   return k

win = GraphWin("Mandelbrot", 800, 600, autoflush=False)
win.setCoords(-2, -1.0, 0.7, 1.0)
max = 100

deltaRe = float(2.7/800.0)
deltaIm = float(2.0/600.0)
cre = -2
while cre < 0.7:
   cim = 2
   while cim > -1:
      c = punto(cre, cim, 0, 0, max)
      if c >= max:
         win.plot(cre,cim,color_rgb(0,0,0))
      else:
         win.plot(cre,cim,color_rgb(int(255*c/max), 0, 255-int(255*c/max)))
      cim = cim-deltaIm
   cre = cre+deltaRe
   update()

win.getMouse()
win.close()

Il programma produce il seguente output:

Insieme di Mandelbrot

Università degli Studi Roma Tre - Dipartimento di Matematica e Fisica - Corso di laurea in Matematica - Corso di Ottimizzazione Combinatoria (IN440)

Author: Marco Liverani - Last modified: Saturday September 05, 2020 - Document URI: https://www.mat.uniroma3.it/users/liverani/IN7/mandelbrot.shtml