Calcular aproximação de raiz quadrada

Publicado por Israel Silvino Melo Batista (última atualização em 28/05/2015)

[ Hits: 8.596 ]

Download 6215.raizq.py




Fiz um programa para aproximar o cálculo da raiz quadrada usando o mesmo algoritmo que eu uso na vida real.

Esse algoritmo mostrou-se surpreendentemente rápido, ele tende rapidamente para a raiz quadrada do número e aparentemente não gasta muito em termo de custos computacionais. Consegui calcular com precisão a raiz quadrada de um número gigante usando 1 como chute e 100 iterações e mesmo que eu colocasse 10000 iterações ainda assim a resposta seria quase instantânea.

Lembrando que esse programa é apenas para fins didáticos, para usar a raiz quadrada em programas Python use o método/função sqrt do módulo math.

  



Esconder código-fonte

#coding: utf8
# Programa para fins didáticos, para usar a raiz quadrada
# em seus programas use o método sqrt do módulo math
from __future__ import division

def raizq(x, chute = 1, i =20):
    # Calcula uma aproximação da raiz quadrada x após i iterações
    if i < 1:
        raise ValueError("É necessário pelo menos uma iteração")
    if chute < 1:
        chute = 1 # O chute precisa ser maior ou igual a 1, senão o resultado será incorreto
    if x < 0:
        return complex(0, raizq(-x, chute, i)) # A raíz quadrada de um número negativo é um número complexo
    else:
        for k in range(i):
            chute = 1/2*(chute+x/chute)
        return chute

Scripts recomendados

Contagem

Backup em Python

Verificador de números primos

Validador de cartão de crédito

Conversor de Temperaturas Kelvin Celsius e Fahrenheit


  

Comentários
[1] Comentário enviado por MattF em 29/05/2015 - 10:29h


Muito Legal! Usando o algorítmo de Newton-Raphson para resolver. Uma vez fiz um desses que calculava pi.

[2] Comentário enviado por Israel77 em 29/05/2015 - 13:02h

V

[1] Comentário enviado por MattF em 29/05/2015 - 10:29h


Muito Legal! Usando o algorítmo de Newton-Raphson para resolver. Uma vez fiz um desses que calculava pi.

Vlw, eu tava em dúvida a respeito do nome desse método porque no vídeo que eu aprendi o cara não falou o nome do método, dando uma pesquisada eu fiquei em dúvida se era o de Newton-Raphson ou o de frações continuadas. De qualquer modo qual função você utilizou para obter uma identidade matemática que resulta em pi?


Contribuir com comentário