Una versión más rápida del método de Welton J. Crook para la raíz cúbica

Esta es una descripción de una versión más rápida del algoritmo de raíz cúbica de Welton J. Crook, en la misma línea que la versión acelerada del algoritmo de raíz cuadrada de Crook que he descrito en un artículo anterior. Como era de esperar, este algoritmo de raíz cúbica es mucho más complicado que el método de raíz cuadrada, pero aún puede ser útil para aquellos que realmente quieran usar el ábaco o el soroban para obtener raíces cúbicas.

Supongo que el lector ya está familiarizado con el algoritmo básico de raíz cúbica de Crook. Si no, se describe aquí. Para cada nuevo dígito de la raíz cúbica, empiezo el cálculo tal como lo hace Crook, con el mismo número cubo activo, el mismo número cuadrado y el mismo número de raíz. He desarrollado algunas ecuaciones que permiten ubicarse en el siguiente dígito sin pasar por el tedioso proceso iterativo del algoritmo original, y que luego permiten una rápida actualización del "número raíz" y el "número cuadrado". Otro cambio que he hecho es omitir la iteración al principio; en su lugar, simplemente resto el cubo más grande posible del primer grupo de dígitos. Esto supone que uno sabe, o tiene a mano, una tabla de los cubos de los números del uno al nueve. Estos cubos también serán necesarios para insertarlos en las ecuaciones que siguen. Tenga en cuenta que en la siguiente descripción invierto las posiciones del "número cubo" y el "número raíz" de la descripción de Crook, ya que prefiero mantener el cubo a la izquierda, el cuadrado en el medio y el "número raíz" en la derecha: puede asignarles la posición que desee, usando tantas varillas en el soroban como sea necesario.

Brevemente descrito, mi método para determinar un dígito dado comienza en el punto del algoritmo de Crook donde se acaba de determinar el dígito anterior y se acaba de bajar un nuevo grupo de tres dígitos y agregarlo a la parte "activa" del resto del cubo. Siguiendo a Crook, sumamos un uno al número raíz actual, pero en lugar de sumar esa suma al número cuadrado, lo restamos y luego restamos dos más del número cuadrado. La razón de esto es que el número cuadrado que nos queda del cálculo de dígitos anterior es mayor que el número cuadrado de Crook en este punto (la razón se explica más adelante) y debemos volver al mismo número cuadrado inicial antes de calcular el siguiente dígito. Ahora siguiendo de nuevo a Crook, agregamos dos ceros al número cuadrado, luego agregamos un solo cero al número raíz y le sumamos $11$. En este punto, no agregamos esto al número cuadrado como lo hace Crook. El nuevo procedimiento consiste en utilizar una ecuación para determinar el mayor de varios números discretos posibles que se pueden restar de la parte activa del número cúbico. Esto nos dará el nuevo dígito de la raíz cúbica verdadera, porque cada uno de los números discretos anteriores se calcula a partir de un valor posible, del uno al nueve, del nuevo dígito de la raíz cúbica de prueba. Habiendo encontrado el dígito de la raíz cúbica y restado su número correspondiente o "decremento" del cubo, usamos dos ecuaciones más para actualizar el número raíz al mismo valor que tendría en este punto en el algoritmo original de Crook, y para actualizar el número cuadrado al valor que tendría en el método de Crook si el dígito raíz fuera uno más grande de lo que es. Luego procedemos a encontrar el siguiente dígito de la raíz. Cuando tenemos tantos dígitos como necesitamos, podemos encontrar la verdadera raíz cúbica como en el método original sumando dos al número raíz y dividiendo por tres, aunque eso no es necesario si hemos estado llevando un registro de los verdaderos dígitos de la raíz cúbica obtenidos en el procedimiento anterior.

Símbolos usados en las ecuaciones:

$K$
la parte actualmente "activa" del cubo o su resto
$S_0$
el número cuadrado obtenido justo después de agregar los dos ceros como se describe arriba
$R_1$
el número raíz obtenido justo después de sumar $11$ como se describe arriba
$d$
el valor del dígito de la raíz cúbica que se está trabajando (de cero a nueve)
$D_d$
el número de decremento, calculado a partir de $d$, para restar de $K$
$S_d$
el número cuadrado actualizado después de encontrar $d$
$R_d$
el número raíz actualizado después de encontrar $d$
$S_{dinc}$
la cantidad a incrementar $S_d$ si $d$ se incrementa de $d-1$ a $d$ para revisar al alza si nos hemos quedado cortos, o alternativamente la cantidad a decrementar $S_d$ si $d$ se reduce de $d$ a $d -1$ para revisar a la baja

Las ecuaciones:

$\left\{\begin{array}{rcl} D_d &=& d\cdot S_0 + d^2(R_1 - 1) + d^3\\ S_d &=& S_0 + \left[(d + 1)^2 - d^2\right]\cdot(R_1 - 1) + (d + 1)^3 - d^3\\ R_d &=& R_1 + 3(d - 1)\\ S_{dinc} &=& 2(R_1 - 1) + 6d \end{array} \right.$

Tenga en cuenta que cuando calculamos $S_d$, en realidad estamos calculando el número cuadrado que, en el algoritmo de Crook, se restaría de $K$ si $d$ fuera uno mayor de lo que es. La razón para hacerlo de esta manera es permitir una fácil verificación de si nos hemos quedado cortos simplemente comparando $K$ y $S_d$.

La parte más difícil de este método es determinar cuál es el mayor valor de $D_d$ que se puede restar de $K$. Simplemente dividir $K$ por $S_0$ no es un método fiable porque las partes cuadradas y cúbicas de $D_d$ suelen ser grandes en comparación con la parte lineal. Probablemente sea mejor hacer una estimación de $D_d$ eligiendo valores de prueba de $d$, calculando mentalmente la estimación usando solo el primer dígito o los dos primeros (redondeado hacia arriba) de $S_0$, $d_2$ y $R_1$, y comparando esto con $K$. Esto debería asegurar que tenderemos a subestimar, en lugar de sobrestimar el valor correcto de $d$. Una vez que se ha determinado un valor posible para $d$, podemos calcular y restar simultáneamente el valor exacto de $D_d$ de $K$ y actualizar $S_d$ y $R_d$.

Si $K$ es mayor que el nuevo valor de $S_d$, entonces no alcanzamos el valor de $d$, por lo que incrementamos $d$, sumamos tres a $R_d$ y restamos $S_d$ de $K$. Luego corregimos el valor de $S_d$ y comprobamos que $S_d$ ahora es mayor que $K$. En el caso poco probable de sobrestimación, donde $K$ se vuelve negativo cuando restamos $S_d$, disminuimos $d$, restamos tres de $R_d$, corregimos el valor de $S_d$ y luego volvemos a agregarlo a $K$.

He aquí un ejemplo para ilustrar el proceso:

Raíz cúbica $\sqrt[3]{52 313 624} = 374$

  
      K              Sd        Rd
 

Comenzamos poniendo $S_0 = 0$ y $R_1 = 1$

  53 313 624          0         1
 

Recuerde que el primer grupo se trata de modo diferente; simplemente restamos el mayor cubo posible de dicho primer grupo

- 27 (d = 3)
-----
  25

y añadimos el siguiente grupo y calculamos los nuevos valores de $S_d$ y $R_d$ a partir de las ecuaciones

$\left\{\begin{array}{rcl} S_d &=& 0 + (42-32)\cdot(1-1)+43-33=37\\ R_d &=& 1+3(3-1)=7\\ \end{array} \right.$

 
 25 313              37         7
 

Sumamos uno a $R_1$ como en el algoritmno de Crook

                              + 1
                            -----
                                8
 

pero ahora, restamos este número y un $2$ adicional de $S_d$

                    - 8
                    - 2
                 ------
                     27
 

y ahora seguimos nuevamente a Crook para obtener la raíz inicial y el número cuadrado

                                80
                              + 11
                              ------
                     2700       91
 

En este punto no sumamos $R_1$ a $S_0$

 25 313              2700       91

Ahora debemos determinar el valor de $d$ que produce el mayor valor de $D_d$ que se puede restar de $K$. Si tomamos $d = 8$, podemos estimar $D_d$ (usando solo el primero o los dos primeros dígitos redondeados) como $8\cdot 2700 + 64\cdot 100 + 500 = 28500$, que es demasiado grande. Si $d$ fuera $7$, entonces $D_d$ sería aproximadamente $7\cdot 2700 + 50\cdot100 + 400 = 24300$, por lo que $d$ realmente es $7$.

$D_d = 7\cdot 2700 + 49\cdot(90) + 343$

 25 313
-14
- 4 9
- 3 6
  - 81
  - 343
------------
  1 660
  

Ahora actualizamos $S_d$ y $R_d$

$S_d = 2700 + (64 - 49)\cdot(91 - 1) + 512 - 343 = 2700 + 15\cdot90 + 512 - 343$

                     2700
                   + 09
                    + 45
                    + 512
                    - 343
                  ---------
                     4219

$R_d = 91 + 3\cdot(7 - 1) = 91 + 3\cdot6$

                                91
                              + 18
                              ----
                               109

Teniéndose:

  1 660              4219      109
  

Nuevamente seguimos nuestro anterior procedimiento para obtener los nuevos $S_0$ y $R_1$

                               + 1
                              ------
                               110
                    - 110
                      - 2
                    -------
                     4107      1100
                               + 11
                             --------
                               1111

y añadimos el siguiente grupo de tres cifras a $K$, pero sin sumar $R_1$ a $S_0$

  1 660 624          410700    1111

Ahora comenzamos todo el proceso de nuevo para determinar el siguiente dígito:

Buscamos un valor para $d$ que produzca el valor máximo de $D_d$ que se pueda restar de $K$. Si suponemos $d = 4$, entonces $D_d$ es $4*410 000 + 16*1200 + 64 \approx 1 660 000$ aproximadamente, por lo tanto probaremos con $d = 4$:

  1 660 624
- 1 6
  - 04
    - 2 8
   - 16
    - 1 6
      - 16
       - 64
-----------------
  0 000 000

Ya no hay necesidad de actualizar $S_d$ dado que $K = 0$. $R_d$ sólo necesitaría actualizarse si no hemos estado manteniendo un registro de los dígitos de la raíz y, por lo tanto, tendríamos que encontrar la raíz a partir del número raíz $R_d$. En este caso, $Rd = 1111 + 3\cdot(4 - 1) = 1120$ y la raíz sería $1122/3 = 374$.

Redondeo

No conozco una forma simple de determinar cuándo redondear al alza el último dígito de la raíz. Probablemente lo mejor que se pueda hacer es encontrar los nuevos $S_0$ y $R_1$ para el siguiente dígito y luego tratar de estimar $d$ para ese dígito; si es cinco o más, redondeamos al alza el último dígito de la raíz y/o sumamos tres al número raíz. Estimar $d$ generalmente se vuelve más fácil a medida que aumenta el número de dígitos determinados previamente ya que el término $S_0$ comienza a dominar en la ecuación para $D_d$, por lo que obtenemos mejores estimaciones simplemente dividiendo $K$ por $S_0$.

Subestimación

Como ejemplo de qué hacer cuando nuestra estimación del dígito se queda corta, volvemos al punto del ejemplo anterior donde estábamos tratando de encontrar el segundo dígito y tomaremos $d = 6$ en lugar del valor real $7$.

 25 313              2700       91

$Dd = 6\cdot2700 + 36\cdot(90) + 216$

 25 313
-12
- 4 2
- 2 7
  - 54
  - 216
-----------
  5 657
  

Ahora actualizamos $S_d$ y $R_d$ para $d = 6$

$S_d = 2700 + (49 - 36)\cdot(91 - 1) + 343 - 216 = 2700 + 13\cdot90 + 343 - 216$

                     2700
                   + 09
                    + 27
                    + 343
                    - 216
                  ---------
                     3997

$R_d = 91 + 3\cdot(6 - 1) = 91 + 3\cdot5$

                                91
                              + 15
                              ----
                               106

Dado que $S_d$ es menor que $K$, sabemos que nos hemos quedado cortos. Debemos incrementar $d$ y restar $S_d$ de $K$.

$d = d+1 = 6 + 1 = 7$

  5 657
- 3 997
---------
  1 660

Actualizamos $S_d$ y $R_d$

$R_d = R_d + 3 = 106 + 3 = 109$

$S_{dinc} = 2\cdot(R_1 - 1) + 6\cdot d = 2\cdot90 + 6\cdot7$

                     3997
                    + 18
                     + 42
                   -------
                     4219

Sobrestimación

Si sobrestimamos el valor de $d$ de forma que $K$ se vuelve negativo (esto debería ser raro usando el método de estimación descrito anteriormente), entonces deberemos disminuir $d$ y corregir $S_d$. Después agregaremos el $S_d$ corregido a $K$ para hacerlo positivo y disminuiremos $R_1$ en $3$. Si en el ejemplo anterior hubiéramos tomado $d$ como $8$, entonces tendríamos:

$D_d = 8\cdot2700 + 64\cdot90 + 512$

 25 313
-16
- 5 600
- 5 400
  - 360
  - 512
------------
997 441 (los 9 iniciales significan que es un número negativo)

En este punto, reconociendo que nos hemos excedido, podríamos simplemente calcular $S_d$ y $R_d$ para $d = 7$ y sumar $S_d$ nuevamente a $K$. Sin embargo, si no reconocemos esto a tiempo y seguimos adelante y calculamos $S_d$ para $d = 8$:

$S_d = 2700 + (81 - 64)\cdot90 + 729 - 512 = 4447$

Podríamos corregirlo restando $S_{dinc} = 2\cdot90 + 6\cdot8 = 228$

El valor corregido de $S_d$ es $4447 - 228 = 4219$ que es el mismo de $S_d$ para $d = 7$. Por lo tanto lo volvemos a sumar a $K$

997 441
+ 4 219
---------
  1 660

$R_d$ para $d = 8$ es $91 + 13\cdot7 = 112$, por lo tanto tendríamos que disminuirlo en $3$ para volver a $d = 7$

Cuando uno de los dígitos de la raíz es cero

He aquí otro ejemplo que muestra qué hacer cuando uno de los dígitos de la raíz es cero:

Raíz cúbica $\sqrt[3]{8 869 743} = 207$

      K              Sd        Rd

 8 869 743            0         1
-8 (d = 2)
------
   869

$S_d = 0 + (32 - 22)\cdot(1 - 1) + 33 - 23 = 19$

$R_d = 1 + 3\cdot(2 - 1) = 4$

Pasemos al siguiente dígito como antes

   869               19         4
                              + 1
                             -----
                                5
                    - 5
                    - 2
                   -----
                     12         50
                              + 11
                              ------
   869               1200       61

Debido a que $S_d$ es mayor que $K$, $d$ debe ser cero, así que añadimos otro grupo a $K$, agregamos dos ceros más a $S_d$ y cambiamos $R_d = 50$ a $R_d = 500$ y sumamos $101$ en lugar de $11$.

   869 743           120000     601

Probamos $d = 7$

Estimamos $D_d$ aproximadamente $= 7\cdot120000 + 50\cdot600 + 340 = 870340$ - esto es lo bastante próximo para probar. El valor verdadero de $D_d$ es $7\cdot120000 + 49\cdot600 + 343 = 869743$.

 - 869 743
----------------
   000 000

No hay necesidad de actualizar $S_d$. $R_d = 601 + 3\cdot6 = 619$. La raíz es $621/3 = 207$.


Steve Treadwell
     1 de abril de 2009

Artículo traducido del original en lengua inglesa
por Jesús Cabrera - gmail: jccsvq
(2022)

© Marzo de 2009
Steve Treadwell
Email
...