Iteración de Newton para raíz cúbica sin división

8

Es un truco bastante conocido para evitar la división en el cálculo de raíces cuadradas para aplicar el método de Newton para encontrar1/ /X , y probablemente más conocido, utilizando el método de Newton para encontrar recíprocos sin división .

Al rescatar un hilo StackOverflow Sembrando la iteración de Newton para la raíz del cubo de manera eficiente a partir de la pudrición del enlace, se me ocurrió que también debería ser posible una iteración sin división para las raíces del cubo.

Por ejemplo, si tuviéramos que resolver:

X-3=una2

entonces y . La iteración de Newton para la ecuación anterior es simplemente:3 X=una-2/ /3una3=unaX

Xnorte+1=Xnorte-Xnorte-3-una2-3Xnorte-4 4=4 43Xnorte-13una2Xnorte4 4

Nuevamente, evitamos las operaciones de división, al menos si las constantes fraccionarias se evalúan previamente para las multiplicaciones de FP.

Entonces, algo por el estilo es posible, pero no encontré una discusión específica de tales métodos en mi búsqueda (ciertamente superficial) de la Web. Más concretamente, sospecho que una persona inteligente ya ha descubierto una idea mejor y que uno de ustedes, atesorados colegas, la ha visto o pensado.

hardmath
fuente

Respuestas:

8

Las raíces cúbicas no son tan importantes como las raíces cuadradas (p. Ej., Para normalizar vectores), por lo que podría ser la razón por la que se discuten mucho menos.

Xα-β

(1-α-1)X+βαX1-α,
α

una[12,1]1

ingrese la descripción de la imagen aquí

Otra cosa interesante a considerar es lo que implementan las bibliotecas existentes:

  • MPFR hace raíces cúbicas usando raíces cúbicas enteras ( http://www.mpfr.org/algo.html , alrededor de la página 36)
  • math/special_functions/cbrt.hpp
    Xnorte+1=Xnorte2si+Xnorte3si+2Xnorte3.
    20div{s,p}{s,d}

una-2/ /313X3-una[12,1]

Kirill
fuente
[1/ /8,1]
321/ /3[12,1]