Raiz Quadrada de Newton


In [20]:
import numpy as np

Precisão


In [21]:
def precisao(c):
    p = 10**(-c)
    return p

Função


In [22]:
def raizquadrada(n, c, i): # raiz quadrada de "n", com precisão de pelo menos "c" casas decimais, usando valor inicial "i"
    t = 1
    while np.absolute(i**2-n) > precisao(c):
        i = (i**2-n)/(2*i)
        t += 1
    return (i, -i, t) # "t" é o número de iterações

Teste


In [23]:
raizquadrada(144, 3, 11)


Out[23]:
(-12.000019699928433, 12.000019699928433, 602999)