Calculando a Raiz de um Número
INTRODUÇÃO
Como calcular a raiz de um número qualquer?
Perguntas como essa chegam com muita freqüência na seção Queremos Saber de Matemática. É provável que a pergunta se refira a um método analítico, isto é, pede uma fórmula única para achar uma raiz qualquer. Infelizmente, essa fórmula geral não existe a não ser para casos especiais.
Mas, é sempre possível calcular numericamente uma raiz do tipo , onde k e a são dois números reais quaisquer.
Inicialmente, vamos descrever um algoritmo desenvolvido por matemáticos sumérios, há 4000 mil anos, para o calculo de . Em seguida, vamos generalizar o método para o cálculo da raiz de qualquer ordem k, de qualquer número a, onde k = 2,3,4… , e a é um número real positivo.
Para isso, nessa pequena nota aplicaremos o método de Newton para o cálculo de qualquer raiz de um número real positivo, sendo esse o exemplo de um processo de retroalimentação, descrito a seguir.
Imagine uma máquina que processe números, como um computador. No caso que nos interessa, uma máquina desse tipo é caracterizada por uma fórmula que pode ser iterada, xn+1 = f(xn), onde f(xn) pode ser qualquer função de x. A máquina é alimentada por um número na entrada, processa esse número e fornece um número na saída, resultado das operações definidas por f(xn). O número na saída depende somente do número da entrada. Na figura 1 mostramos um esquema de uma máquina que usa um processo de retroalimentação.
Esse tipo de máquina é uma ferramenta matemática de muita utilidade e é usada para solucionar problemas complexos. Há uma tradição de milhares de anos no uso dessas máquinas em matemática.
O exemplo que discutiremos em seguida é o algoritmo criado por matemáticos sumérios e que funciona segundo o processo descrito acima.
Como os sumérios calculavam a raiz quadrada de 2.
Pelo fim do quarto milênio antes de nossa era, além do Egito, surgiu no vale mesopotâmico uma civilização de alto nível, os Sumérios. Tinham uma arquitetura avançada, com casas e templos decorados com cerâmicas e mosaicos artísticos em desenhos geométricos. Inventaram uma escrita cuneiforme muito antes do tempo de Abraão. Acredita-se que essa seja a mais antiga forma de comunicação escrita, anterior mesmo à hieroglífica.
Os sumérios eram também excelentes matemáticos que já naquele tempo haviam desenvolvido um algoritmo para o cálculo de .
Podemos descrever o processo, em linguagem moderna, da seguinte maneira: dado a > 0, compute uma seqüência x1, x2, x3, … , xn, tal que o seu limite, quando n cresce, é . Ou seja, xn torna-se cada vez mais próximo de a medida que n cresce. Um processo de iteração é estabelecido seguindo a equação proposta pelos sumérios,
[01]
No processo de retroalimentação da nossa máquina, fig. 1, teríamos:
Fazendo a = 2, iniciamos o processo para o cálculo de , com um valor inicial, x0 = 1. Tendo x0 esse valor de entrada na máquina, na saída a máquina nos fornecerá:
Inserindo esse valor obtido x1 = 1,5 na entrada, teremos na saída:
Podemos prosseguir com o processo (deixar a máquina funcionar) até quando o valor de entrada seja igual ao valor de saída, dentro da precisão desejada. Na tabela 1 mostramos a convergência, do processo descrito, usando-se uma calculadora de mão.
Podemos ver claramente a rápida convergência. Após 4 iterações, a máquina nos fornece a raiz quadrada de dois com uma precisão de cinco casas decimais. Temos então um processo eficiente para o cálculo da raiz quadrada de qualquer número real a, e que os sumérios já conheciam!
Resta generalizar para raízes maiores que a raiz quadrada.
Calculando uma raiz qualquer pelo método de Newton.
Calculando uma raiz qualquer pelo método de Newton.
Podemos notar que o cálculo da raiz quadrada de a é equivalente a resolver a equação:
F(x) = x2 – a = 0. [02]
Aplicando o método de Newton (veja Seções Especiais, Matemática, Os descendentes de ф), temos,
[03]
onde F´(xn) é a derivada de F(xn). Observando que a derivada da função definida na eq.(02) é dada por, F´(x) = 2 x, e substituindo-a na eq.(03), podemos escrever,
Surpresa! O método de Newton fornece a função
que é exatamente igual a fórmula desenvolvida pelos sumérios.
Podemos então generalizar e obter uma função para o cálculo de qualquer raiz de a > 0. Para tanto resolvemos, usando o método de Newton, a seguinte equação:
[04]
Observando que F´(x) = k x^k-1, e substituindo na eq. (03), teremos,
[05]
Da eq.(05) podemos escrever a função a ser usada no cálculo de qualquer raiz de a > 0, ou seja,
[06]
Como exemplo podemos calcular a raiz cúbica de 8, cuja resposta todos conhecem, porém estamos curiosos em ver o processo de convergência. Fazendo k = 3, escrevemos,
Com o valor inicial, x0 = 1, temos
Alimentando novamente a máquina com x1, teremos na saída,
e assim por diante. Na tabela 2 apresentamos a convergência do processo:
Processos iterativos são realizados de maneira rápida e com a precisão desejada pelos computadores. Nas tabelas 3 e 4 mostramos resultados obtidos através de um programa simples escrito em Fortran para o cálculo de raízes (ver código no fim dessa página). Escolhemos k, a e o valor inicial x0 e obtemos, após algumas iterações, o valor de .
Finalizando, mostramos nas tabelas 3 e 4, resultados obtidos com o programa, com uma precisão de 15 algarismos significativos, após 7 iterações.
J. Maurício O. Matos é físico e professor da UFC.
Código do programa para obter os resultados mostrados acima
implicit double precision (a-h,o-z)
print*,’k,a’
read(5,*)k
read(5,*)a
write(5,*) ‘xo’
read(5,*) x
open(1, file=’raiz.dat’)
xk=dfloat(k)
n=0
10 fx=x**xk-a
fx1=k*(x**(xk-1.d0))
y=x-(fx/fx1)
write(5,*)x,y,dabs(x-y)
write(1,*)n,x,y
n=n+1
if(dabs(y-x).lt.1.d-50)go to 20
x=y
go to 10
20 continue
close(unit=1)
stop
end