Commenti e precisazioni.

Leonardo Robol [2010-02-23 11:13]
Commenti e precisazioni.
Filename
NewtonFractal.py
diff --git a/NewtonFractal.py b/NewtonFractal.py
index be1032e..afb248d 100755
--- a/NewtonFractal.py
+++ b/NewtonFractal.py
@@ -6,6 +6,9 @@
 # divertente cambiare alpha ed eventualemnte
 # anche il numero di pixel dell'immagine.
 #
+# Ovviamente, essendo scritto in python, è piuttosto
+# lento, ma comunque crea le immagini in tempi
+# ragionevoli.

 def GetNewtonConvergenceSpeed(z, maxit = 255, eps = 10e-11, alpha = 3):
     """
@@ -18,6 +21,9 @@ def GetNewtonConvergenceSpeed(z, maxit = 255, eps = 10e-11, alpha = 3):
     fz = pow(z, alpha) - 1
     iterations = 0

+    # Finchè non abbiamo la necessaria precisione continuiamo
+    # ad iterare. Usciamo solamente se sforiamo il limite che
+    # ci siamo dati.
     while (abs(fz) > eps and iterations < maxit):

         # Usiamo una var temporanea per non dover
@@ -27,18 +33,19 @@ def GetNewtonConvergenceSpeed(z, maxit = 255, eps = 10e-11, alpha = 3):
         fz = t * z - 1
         fpz = alpha * t

-
         # Questo per prevenire la divisione per zero
-        # (tanto la nostra derivata si annulla solo lì)
+        # (tanto la nostra derivata si annulla solo in z=0,
+        # e perdere un punto non è poi tanto grave)
         if (fpz == 0):
             return maxit

+        # Iterazione del metodo di newton
         z = z - fz / fpz
         iterations += 1

     return iterations

-def Newton(size = 200):
+def Newton(size = 200, filename="newton.pnm"):
     """
     Calcola la velocità di convergenza su una rete di punti
     size x size sul quadrato di [-2,2]^2 attorno all'origine
@@ -46,7 +53,7 @@ def Newton(size = 200):
     newton.pnm
     """

-    # Delta è l'ampiezza dell'intervallo fratto il numero di
+    # delta è l'ampiezza dell'intervallo fratto il numero di
     # divisioni - 1
     delta = 4 / float(size - 1)

@@ -57,7 +64,7 @@ def Newton(size = 200):

     # Apriamo il file dove salveremo il nostro lavoro
     # e scriviamo l'intestazione del file PNM.
-    f = open("newton.pnm", 'w')
+    f = open(filename, 'w')
     f.write("P3\n")
     f.write(str(size) + " " + str(size) + "\n")
     f.write("255\n")
@@ -76,4 +83,5 @@ def Newton(size = 200):
 if __name__ == "__main__":

     # Creiamo un'immagine 1024px x 1024px.
-    Newton (1024)
+    Newton (1024, "newton.pnm")
+
ViewGit