GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Raiz quadrada ... metodo chines


#1

Ou...

Quem conhece como fazer riaz quadrada pelo metodo chinês pode me dizer se tem como o resultado aparecer em quebrado??

po exemplo a raiz de 3....

Valeu!

Atn.
Dennys Fernando


#2

Raiz quadrada pelo metodo chines!?


#3

Ué... pq vc não usa

long raiz = Math.sqrt(3);

??


#4

é um algoritmo....

foi pedido para usar o metod chinês para praticar lógica.....


#5

Método chinês, pra mim, é usar uma calculadora made in china :smile:


#6

rs**

o método que falo é este:

http://www.prof2000.pt/users/esm/netdays2000/chines.htm


#7

Não encontrei muitas informações sobre o método chinês, mas as poucas que eu achei trazem algoritmos que (creio eu) só funcionam devidamente para extrair raízes quadradas de quadrados perfeitos (4, 9, 16, 25, 36, ...).

Não serve o método de Newton-Raphson?


#8

Não, o professor pediu esta...

Muito obrigado de qualquer maneira,

acredito que não dê mesmo pois não existe como vc fazer de 0.1 em 0.1 passo entendeu???

Atn.
Dennys Fernando


#9

Ué, dá sim:

for(float i = 0; i <= 1; i+=0.1){
    System.out.println(i);
}

#10

O problema aqui é outro. O algoritmo não funcionaria se fosse utilizado um passo fracionário.

Para o pessoal aí se situar: o método chinês de extração de raízes quadradas basea-se no fato de que todo quadrado perfeito, N^2, pode ser escrito como a soma dos N primeiros números ímpares consecutivos (a partir de 1):

1 + 3 = 4 = 2^2
1 + 3 + 5 = 9 = 3^2
1 + 3 + 5 + 7 = 16 = 4^2 ...

O algoritmo é, basicamente, fazer isto ao contrário, ou seja, pegar o número e subtrair números ímpares consecutivos. Se você chegar ao valor 0 em N iterações, então N será a raiz quadrada do seu número.


#11

Hum... legal, estamos chegando no ponto em que pensei....

fazendo assim

for(float i = 0; i <= 1; i+=0.1){ 
    System.out.println(i); 
}

O passo vai de 0.1 em 0.1 beleza!

Só que:

A Raiz quadrada é a soma dos números impares até chegar o número que é a rais quadrada. exemplo:

a raiz de 4 é 2 em método chines:

1 - primeiro impar
3 - segundo impar

a soma dos impares deu 4 logo a rais é a quantidade de impares que utilizei na soma neste caso é 2 pq usei dois impares ( 1 , 3 )....

se vc fizer de 0.1 em 0.1 vai observar que a raiz de 4 não é 2 vai dar um outro número pois 1.x pode ou não ser impar...

Entendeu?!?!


#12

Falou tudo Operador Nabla!


#13

A meu ver, o método chinês serve não para calcular raízes quadradas em geral, mas para investigar se determinado número é quadrado perfeito ou não.


#14

hummm ... legal esse algoritmo, mas existe um outro método chinês para cálculo da raiz quadrada que permite achar raizes de números que não são quadrados perfeitos ....

Veja esse paper!


#15

É outro método Chinês?!??!?!

[/quote]


#16

uhehehe leia o capítulo (item, seja lá o que for) 3. :lol:


#17

hmmm.... muito legal!

Que tal fazer assim: sabemos que raiz de 3 é 1,732...
Então, exercitando a lógica, se multiplicar o número por 10Ex, sua raiz será multiplicada por 10E(x/2). Então dividir por 10Ex a raíz do número múltiplo para ter a do original.

Então se quiser raiz de 3 com precisão de 1 casa decimal é só multiplicar por 100, chegando em 300, achar o quadrado perfeito anterior a ele (é 289), tirar a raiz, ou ver quantos ímpares foram somados (que é 17), e dividir por 10, chegando em 1,7.

Se multiplicar por 10E4 (30.000), ver que foram 173 ímpares, e terá que a raíz de 3 é 1,73.

Seguindo isso, temos que é só multiplicar por 10E(n*2) para ter a raíz com precisão de n casas decimais.


#18

Essa era a peça que faltava...
Excelente raciocínio!!

Vale lembrar que, neste caso, o erro cometido na estimativa será de 1 na última casa decimal.

PS: Mas eu continuo com Newton-Raphson :twisted:. Este algoritmo é interessante, mas tem as suas limitações. Mas não é isso que estamos discutindo aqui.


#19

Qual é esse algorítmo? E, se não for esse, qual é o algoritmo mais tradicional para se calcular raiz (quadrada ou qualquer outra, genérica)?


#20

O algoritmo de Newton-Raphson é um método geral para determinar raízes de equações do tipo f(x) = 0. A partir de uma estimativa x[0], construímos a seqüência:

x[n] = x[n-1] - f( x[n-1] ) / f'( x[n-1] )
n = 1, 2, 3, ...

onde f'(x) é a derivada de f, calculada em x.

Determinar a raiz quadrada de um número a corresponde a encontrar a raiz da equação x^2 - a = 0. Para esta equação, a seqüência acima fica assim:

x[n] = 0.5 * ( x[n-1] + a / x[n-1] )
n = 1, 2, 3, ...
Esta é a famosa "média aritmética entre x[n-1] e a / x[n-1]".

A função f(x) = x^2 é muito "bem comportada", o que faz com que x[n], na seqüência acima, convija rapidamente para a raiz quadrada de a.

Obviamente, se a sua estimativa x[0] for positiva, você encontrará a raiz quadrada positiva de a. Se x[0] for negativa, você encontrará a raiz quadrada negativa de a.