Dato $q$, trovare $r >0$, tale che $r\, = \, \sqrt{q}$, con un errore più piccolo di $\epsilon$.
Se $r = \sqrt{q}$ allora $r \cdot r = q$.
def mysqrt(q,g,epsilon): # I tre argomenti devono essere passati tutti.
while(abs(g*g - q) > epsilon):
g = (g + q/g)/2.
return g
mysqrt(16.,3)
mysqrt(16.,3.,1.e-7)
def mysqrt2(q,g,epsilon=1.e-5): # L'argomento epsilon è opzionale. Se non viene passato, assume il valore 1.e-5
while(abs(g*g - q) > epsilon):
g = (g + q/g)/2.
return g
mysqrt2(16.,6.)
mysqrt2(16.,6.,1.e-3)
mysqrt2(16.,6.,1.e-15)
Il nostro algoritmo ha: