La calculadora utiliza sucesiones obtenidas mediante refinamientos del método de Newton (véanse Les Algorithmes, Bibliothèque Tangente 37, 2013, o Itération et Récurrence, Bibliothèque Tangente 76, 2021).
La función f utilizada se define por f (x) = x2 ‒ a.
Buscamos la solución de f (x) = 0, pues la solución es precisamente a la cantidad que nos interesa. Apliquemos el algoritmo.
La derivada de f es f ' (x) = 2 x, y se tiene f(x)f′(x)=x2−a2x=x2−a2x.
De ello se deduce la sucesión de Herón:
un+1=un−f(un)f′(un)=un−un2+a2un=un2+a2un=12(un+aun).
Ilustremos ahora el método con a = 163. Para iniciar los cálculos, podemos partir de a o bien, dado que 163 está comprendido entre 144 = 122 y 169 = 132, de 12.
Tras solo tres iteraciones del algoritmo, el resultado es asombroso, pues 163=12,7671453348037…
En efecto, el número de cifras decimales correctas se duplica (como mínimo) en cada bucle (fenómeno de convergencia cuadrática).
En cada iteración hay una suma, una división y una división entre 2, fácil de programar en binario: solo tres operaciones que realizar.
El truco de Schönhage ---------------------
La principal desventaja de utilizar la sucesión de Herón (véase más arriba) es la presencia de una división: es una operación « penosa » y « lenta », incluso para un circuito electrónico. Pero es posible sustituir la división « a / *un » por una sucesión: se utiliza, una vez más, el método de Newton para calcular el inverso 1/b de un número real b > 0. Esta vez se utiliza la función g definida por g(x)=1x−b, lo que conduce a la sucesión v definida por vn*+1 = *vn(2 ‒ bvn*).
En efecto: g(x)=1x−b, y g′(x)=−1x2, de donde g(x)g′(x)=1x−b−1x2=−x2(1x−b)=−x+bx2,
es decir, vn+1=vn−g(un)g′(un)=vn+vn−bvn2=vn(2−bvn).
¡Aún se puede mejorar! El matemático alemán Arnold Schönhage (nacido en 1934) tuvo la idea de acoplar las dos sucesiones del método de Newton, y este acoplamiento resulta más eficaz que utilizar ambos métodos por separado. Para calcular un valor aproximado de la raíz cuadrada de a > 0, partimos de nuevo de la sucesión u, definida por
un+1=12(un+aun)=un+a−un22un.
Para calcular 12un, se utiliza el método de Newton aplicado al cálculo de inversos.
En este contexto se utilizan dos sucesiones, u y v:
{un+1=un+(a−un2)vn,\[0,7mm]vn+1=vn(2−2unvn)=vn+(1−2unvn)vn, con v0=12u0.