11 votos

Un indio afirma haber encontrado una nueva fórmula de raíz cúbica

Un indio afirma haber encontrado una nueva fórmula de raíz cúbica

Durante siglos, los expertos han eludido esta cuestión, pero ahora un indio, siguiendo los pasos de Aryabhatt, uno de los primeros matemáticos indios, afirma haber elaborado una fórmula sencilla para encontrar la raíz cúbica de cualquier número.

Nirbhay Singh Nahar, ingeniero químico jubilado y matemático aficionado, afirma haber encontrado una fórmula que ayudará a los estudiantes e ingenieros aplicados a calcular las raíces cúbicas de cualquier número en poco tiempo.

"Dame cualquier número -par, impar, decimales, una fracción... y te daré la raíz cúbica usando una simple calculadora para que sólo sumes y restes en un minuto y medio. Tenemos métodos y patrones, pero ninguna fórmula por el momento. Incluso las tablas dan raíces cúbicas de 1 a 1.000, pero no de fracciones o de números más allá de 1.000, para lo que la gente tiene que usar calculadoras científicas", dijo Nahar, que se jubiló como ingeniero de Hindustan Salts Ltd en Sambhar (Rajastán).

¿Tiene algún sentido esta afirmación? ¿Es posible tener un algoritmo que dé la raíz cúbica que sólo utilice sumas y restas?

26voto

KP. Puntos 1177

Si por "fórmula", Nirbhay (el antiguo ingeniero que aparece en el artículo) quiere decir "fórmula de forma cerrada", entonces la respuesta es obviamente no porque las respuestas tendrían que ser todas racionales, mientras que Por ejemplo  la raíz cúbica de 2 no lo es. Sin embargo, si por "fórmula" Nirbhay entiende "algoritmo que calcula los dígitos en secuencia, que converge en la respuesta y que termina en el caso de los enteros y otras fracciones terminadas que son cubos perfectos", entonces la respuesta es sí, si se permiten multiplicaciones simples, o se realiza en base 2 . (Por supuesto, puedes reducir la multiplicación a la suma si quieres, pero más allá de los números enteros pequeños o el desplazamiento de los números por valores de posición, eso se siente como una trampa).

No es necesario innovar; es una simple modificación del algoritmo dígito a dígito para calcular raíces cuadradas. La intuición detrás de este algoritmo es que, en cada punto, se trata de obtener aproximaciones cada vez mejores a X construyendo números racionales Y 1 , Y 2 , Y 3 ...teniendo cada vez más dígitos, cuyos cubos se aproximan X de abajo. Nos desprendemos del error entre X y los cubos de estas aproximaciones tratando de "completar el cubo". Cada nuevo dígito de X que consideramos que nos permite tratar de reducir más la diferencia entre Y y X definiendo Y <em>j </em>+1  =  Y j + δ para un incremento adecuado δ A continuación, determinamos el error de la nueva aproximación calculando Y <em>j </em>+1 ³ =  Y ³ + 3 δY ² + 3 δ ² Y  +  δ ³. El truco está en cómo hacer esto con operaciones aritméticas sencillas; pero no es demasiado difícil.

Demuestro el algoritmo en binario, porque es la base donde sería más fácil en la práctica calcular las raíces cúbicas. La generalización a bases arbitrarias ( Por ejemplo  decimal) es un ejercicio para el lector. Para simplificar la presentación, podemos suponer sin pérdida de generalidad que el número X cuya raíz cúbica calculamos es menor que 8. Podemos dividir repetidamente por 8 hasta que sea así; cuando hayamos obtenido la raíz cuadrada, basta con multiplicar la respuesta el mismo número de veces por 2. Esto no es más que observar que $\sqrt[3]{8^{-n} \cdot X\;} = 2^{-n} \cdot \sqrt[3]{X\;}$ y me permite destacar que el algoritmo funciona igual de bien para las fracciones que para los enteros. Por la forma en que funciona el algoritmo, parece un poco como si empezara con un número en octal, y obtuviera una raíz en binario (para las raíces cuadradas parece que produce una raíz binaria a partir de un número en cuartal); pero por supuesto podemos representar los "dígitos" de base 8 por grupos de tres dígitos binarios.

Dejemos que X  =  x 0  +  x 1 /8 1  +  x 2 /8 2  + ... , donde cada x j va de 0 a 7. Calculamos los dígitos binarios y j representando a Y  =  y 0  +  y 1 /2 1  +  y 2 /2 2  + ... tal que Y 3  =  X de la siguiente manera.

  • Si x 0  = 0, establecer y 0  = 0; en caso contrario, se establece y 0  = 1. Sea R  :=  x 0  -  y 0 .

  • Establecer A  = B \= C \=  y 0  .

  • Establecer j   == =====11 ,11111, ,,,,, a anaaaaandnnnnnd ddddd rerrrrrepeeeeepppeaeeeeeataaaaat ttttt t thttthehhhhhe eeeee f fofffffoloooolllllllllowooooowiwwwiniiiiingnnnnnnng ggggg u unuuuntnnnnntitttttiliiil lllll t thttttthehhhhhe eeeee d dedddddeseeeeesisssssiriiiiirrrrredeeeed ddddd n nunnnnnumuuuuumbmmmbebbbereeeeer rrrrr o ofooooof fffff d didddddigiiiiigggggitiiiiitsttttts sssss i isiiiiis sssss o obooooobtbbbbbtatttttaiaaaaainiiinennnnnedeeeeed ddddd ( (o(((((orooooor rrrrr u unuuuntnnnnntitttttiliiil lllll R  = 0 y sólo si todos los dígitos restantes x j  , x <em>j </em>+1  ... también son cero):

    1. Establecer D  = 8 R  +  x j  y considerar el mayor dígito binario y j tal que $$ D \;\;\geqslant\;\; y_j^3 + 6Ay_j^2 + 12By_j + 8C.$$ Por supuesto, estamos trabajando con dígitos binarios; todas las potencias de y j son cero o uno. Así que lo que realmente estamos probando es si $$ D \;\;\geqslant\;\; 1 + 2A + 4A + 4B + 8B + 8C,$$ donde la multiplicación por 2, 4 y 8 puede realizarse desplazando los enteros uno, dos o tres lugares (añadiendo ceros). Si se cumple la desigualdad anterior, se establece y j  = 1; en caso contrario, establece y j  = 0.

    2. El número entero A será en realidad el número cuya representación binaria es la secuencia de bits y 0 y 1  ...  y <em>j </em>-1 en orden; B es igual a A ², y C es igual a A ³. Para mantener esta invariante para la siguiente iteración j calculamos los nuevos valores A' , B' y C' como valores actualizados. Para A definimos $$ A' = 2A + y_j \;. $$ Para B' Aprovechamos el hecho de que tenemos B y A : $$\begin{align*} B' &= (A')^2 = (2A + y_j)^2 = 4A^2 + 4Ay_j + y_j^2 \\&= 4B + 4Ay_j + y_j^2 \;. \end{align*}$$ Del mismo modo, para C' : $$\begin{align*} C' &= (A')^3 = (2A + y_j)^2 = 8A^3 + 12A^2y_j + 6Ay_j^2 + y_j^3 \\&= 8C + 8By_j + 4By_j + 4Ay_j^2 + 2Ay_j^2 + y_j^3 \;. \end{align*}$$ De nuevo, las multiplicaciones por cero, uno o potencias de dos son triviales en la representación binaria. A continuación, actualizamos A  :=  A' , B  :=  B' y C  :=  C' .

    3. Actualizamos R que pretende representar el error de C como una aproximación al entero formado por el primer j dígitos (en octal) de X : fijamos $$ R' = \bigl(8R + x_j\bigr) - C' = D - C' \;,$$ y a continuación, establecer R  :=  R' .

  • Si alguna vez obtenemos R  = 0 y con todos los dígitos restantes de X igual a cero, nos detenemos (con una solución exacta).

De hecho, no es muy difícil modificar este algoritmo para obtener un procedimiento de extracción de cuarta raíz, quinta raíz o n th raíces para cualquier constante n (aunque el número de parámetros que tienes que llevar contigo, y los tamaños de las sumas que tienes que realizar, crecerán a medida que trabajes más y más para evitar realizar explícitamente cualquier multiplicación).

15voto

user21783 Puntos 11

Para poner las cosas en contexto, primero expondré un método sencillo inspirado en la evaluación clásica de las raíces cuadradas (en breve : "si sabemos que $a^2 \le N <(a+1)^2$ entonces el siguiente dígito $d$ tendrá que verificar $(10a+d)^2 \le 10^2 N <(10a+d+1)^2$ . Esto significa que queremos el dígito más grande $d$ tal que $(20a+d)d\le 10^2(N-a^2)$ ") :

Para evaluar la raíz cúbica de $N$ supongamos que $a^3 \le N <(a+1)^3$ entonces el siguiente dígito $d$ tendrá que verificar $(10a+d)^3 \le 10^3 N <(10a+d+1)^3$ .
De modo que queremos el dígito más grande $d$ tal que $\left(30a(10a+d)+d^2\right)d \le 10^3(N-a^3)$ .

Para tener una idea de este método vamos a evaluar $\sqrt[3]{2}$ empezando por $N=2,\ a=1$ :

$ \begin{array} {r|l} 2.000.000 & 1\\ \hline \\ -1.000.000 & 1.25\\ 1.000.000 & \\ -728.000 & \\ 272.000 & \\ -225.125 & \\ 46.875 & \\ \end{array} $

$a=1$ de modo que el primer decimal debe verificar $(30(10+d)+d^2)d \le 1000$ es decir $d=2$ .
$a=12$ y el segundo decimal debe verificar $(360(120+d)+d^2)d \le 272000$ para que $d=5$ .
(notemos que esto es "casi $360\cdot 120\cdot d \le 272000$ para que $d=5$ o $d=6$ (no es necesario probar todos los dígitos)

Podría haber continuado pero observé que para $d=6$ la evaluación devuelta $272376$ para que el error relativo en $d$ es $\epsilon_1 \approx \frac{376}{272376+360\cdot 6^2}\approx 0.001318$ dando $d\approx 5.9921$ y la solución $\sqrt[3]{2}\approx 1.259921$ .


Ahora vamos a dar una oportunidad al método de Nirbhay Sngh Nahar expuesto aquí .

Consideremos $N=2000$ entonces $x=1\cdot 10=10$

La fórmula aproximada de NAHNO es : $$A= \frac 12\left[x+\sqrt{\frac{4N-x^3}{3x}}\right]= \frac 12\left[10+\sqrt{\frac{4\cdot 2000-10^3}{3\cdot 10}}\right]\approx 12.6376$$

No se ve muy bien... Demos una segunda oportunidad a la fórmula proporcionando un valor mucho mejor de $x=12.5$ entonces la fórmula devuelve $A=12.5992125$ no tan lejos de $2^{\frac 13}= 12.59921049894873\cdots$ pero $x=12.5$ está realmente cerca de la solución así que comparemos este método con las iteraciones de Newton $\displaystyle x'=x-\frac{x^3-N}{3x^2}$

$x_0=12.5\to x_1=12.6\to x_2=12.599210548\cdots \to x_3=12.5992104989487318\cdots$

EDIT: Me faltó el 'Valor preciso de la raíz cúbica' usando la siguiente fórmula : $$P=A\frac{4N-A^3}{3N}$$ (He actualizado la imagen y he añadido esta fórmula, así como la tercera iteración de Newton)

La fórmula aproximativa NAHNO es mejor que la primera iteración de Newton pero más débil que la segunda. La fórmula precisa de NAHNO sólo es superada por la tercera aproximación de Newton, como puede verse en esta imagen (las curvas son de arriba a abajo: primera iteración de Newton, NAHNO aproximativa, segunda iteración de Newton, NAHNO precisa, tercera iteración de Newton; las curvas de NAHNO son más oscuras, la escala vertical es logarítmica y "cuanto más bajo, mejor") :

log|relerror|

El eje vertical muestra $\ \log \left| \frac {A(N)}{N^{\frac 13}}-1\right|$ para $N$ en $(1000,50000)$ . Las líneas verticales son valores $N$ tal que $2\sqrt[3]{N}$ es entero (cuando la estimación inicial es casi la solución).

De modo que, consideradas como fórmulas aproximadas, las fórmulas NAHNO son bastante buenas y podrían hacerse más precisas con una primera aproximación mejor (especialmente para $x$ entre $1$ y $2.5$ se deben proporcionar más valores en la tabla). Evitar las reclamaciones extravagantes también podría ser una ventaja. :-)

4voto

Lissome Puntos 31

A menos que haya algo perdido en la traducción, las afirmaciones del artículo son inconsistentes...

Incluso las tablas dan raíces cúbicas de 1 a 1.000, pero no de fracciones o de números más allá de 1.000, para los que la gente tiene que usar calculadoras científicas", dijo Nahar.

Mientras que la fórmula de Newton llega a una aproximación, Nahar afirma que su fórmula conduce a un valor directo y perfecto, y a ninguna aproximación.

Así, afirma poder hacer esto para cualquier número, incluyendo fracciones, y obtener el valor perfecto , no una aproximación.... Genial, así que es capaz de calcular todos los dígitos de $\sqrt[3]{2}$ ....

A juzgar por esto, tengo grandes dudas.

Por supuesto, importa lo que él entiende por una fórmula; técnicamente una fórmula del tipo $x=10^{\frac{\log_{10} x}{3}}$ es bastante simple y fácil de usar si se utiliza una escala logarítmica para los números reales...

2voto

P_P Puntos 11

¿Es posible tener un algoritmo que dé la raíz cúbica que utilice sólo sumas y restas? Sí, si se permiten los desplazamientos binarios. El algoritmo se describe en el libro de Henry S. Warren "Hacker's Delight" (11-2 Integer Cube Root), también en línea: icbrt2 .

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X