Iteração de Newton para raiz de cubo sem divisão


8

É um truque bastante conhecido evitar divisão no cálculo de raízes quadradas e aplicar o método de Newton para encontrar 1/x , e provavelmente melhor conhecido, usando o método de Newton para encontrarrecíprocos sem divisão.

Ao resgatar um encadeamento StackOverflow Semeando a iteração de Newton para a raiz do cubo de forma eficiente a partir da podridão do link, pensei que uma iteração sem divisão para raízes de cubo também deveria ser possível.

Por exemplo, se resolvermos:

x-3=uma2

em seguida, e 3 x=uma-2/3. A iteração de Newton para a equação acima é simplesmente:uma3=umax

xn+1=xn-xn-3-uma2-3xn-4=43xn-13uma2xn4

Novamente, evitamos operações de divisão, pelo menos se as constantes fracionárias forem pré-avaliadas para multiplicações de FP.

Portanto, algo desse tipo é possível, mas não encontrei uma discussão específica sobre esses métodos em minha pesquisa (reconhecidamente superficial) na Web. Mais precisamente, suspeito que uma pessoa inteligente já tenha descoberto uma idéia melhor e que um de vocês, colegas queridos, tenha visto ou pensado sobre isso.

Respostas:


8

As raízes do cubo não são tão importantes quanto as raízes quadradas (por exemplo, para vetores de normalização); portanto, pode ser por isso que elas são discutidas muito menos.

Em geral, se você aplicar o método de Newton a , obtém a iteração ( 1 - α - 1 ) x + βxα-β então você só precisa escolher a equação para queαseja um número inteiro negativo, não apenas raízes cúbicas e quadradas, isso também funciona para outros poderes racionais.

(1-α-1)x+βαx1-α,
α

Seu esquema precisa apenas de 7 iterações para convergir para a precisão dupla no intervalo partir do palpite inicial constante1:uma[12,1]1

insira a descrição da imagem aqui

Outra coisa interessante a considerar é o que as bibliotecas existentes implementam:

uma-2/313x3-uma[12,1]


[1/8,1]

321/3[12,1]
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.