Respuestas

2013-04-06T02:59:11+02:00

El algoritmo que permite calcular en cada paso un nuevo dígito de la raíz cuadrada de un número a través de un tanteo no era del todo sencillo, como ya se dijo antes. El siguiente es un ejemplo en el que se calcula la raíz cuadrada del número entero 2 con cinco decimales.

Figura 1. Cálculo de Ö 2 en forma manual con cinco cifras decimales.

 

Se mostrará enseguida un algoritmo alternativo para el cálculo de raíces cuadradas, que ilustra la sencillez, la elegancia y la potencia de los métodosbasados en sistemas dinámicos.

Si se quiere calcular la raíz cuadrada de un número n, para ello se parte de una estimación inicial xo. Si se llama ε al error cometido, se tiene:

(xo + ε)2 = xo2 + 2 xo ε + ε 2 = n

 

de forma que suponiendo xo ¹ 0, se tiene:

ε = n/2xo – xo/2 – ε 2/2xo

Si esta estimación inicial es suficientemente buena, se puede suponer que, ε 2/2xo es mucho menor que ε, de modo que:

ε » n/2xo – xo/2

con lo que es natural tomar como nueva aproximación:

x1 = xo + n/2xo – xo/2 = n/2xo + xo/2

y en general:

 (k = 0, 1, 2, 3, ...)

Basándose en consideraciones matemáticas que por ahora no se justifican, es posible probar que este sencillo algoritmo converge, siempre que se verifique la condición:

xo2 > n/3

 

En particular, una elección a la vez natural y sencilla para esta aproximación de partida es tomar xo igual al menor natural tal que xo2 > n, o dicho de otra forma, tomar para xo la aproximación entera por exceso de Ö n. En este caso, se tiene xo2 > n > n/3, y el algoritmo siempre converge. Pero, no sólo converge, sino que además lo hace de forma extremadamente rápida. Por ejemplo, si se aplica este algoritmo al cálculo de Ö 2, tomando como aproximación inicial xo = 2, se obtiene:

Tabla 1. Cinco iteraciones del cálculo de la raíz cuadrada de 2 usando calculadora

 

iteración

xk+1

xk

n/2xk

xk/2

n/2xk + xk/2

1

2.5

2

0.5

1

2.5

2

1.65

2.5

0.4

1.25

1.65

3

1.4310606

1.65

0.60606060

0.825

1.4310606

4

1.414312727

1.4310606

0.698782427

0.7155303

1.414312727

5

1.414213565

1.414312727

0.707057202

0.707156363

1.414213565 *

donde todas las cifras anotadas con rojo en cada aproximación, son cifras exactas de Ö 2. A la quinta iteración se han obtenido más de 9 dígitos exactos, cuando el algoritmo clásico hubiera dado sólo cinco, como puede verse en la tabla 1. ¡La eficacia de este algoritmo resulta verdaderamente impresionante! En términos de la teoría de sistemas dinámicos se debe a que Ö 2 es un punto fijo superatractivo (atractor), para el sistema dinámico:

xk+1 = n/2xk + xk/2

 

Ojalá lo hubiéramos sabido antes para sustituir el viejo método por éste, pues demuestra ser muy útil, aún teniendo calculadora, ya que ésta no nos proporciona más de 12 cifras significativas o menos y hace que la convergencia sea más lenta por los errores de redondeo o truncamiento cometidos