Calcular aproximação de raiz quadrada

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

[ Hits: 10.824 ]

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

Unescape de caracteres especiais ISO-8859-1

Script de Inventário em Python

Calcula quantos dias uma pessoa viveu

pipe2json.py

Gerador de cartão de crédito com Tkinter


  

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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts