Veamos una forma algorítmica de calcular la raíz cuadrada. El algoritmo descrito a continuación, se llama “iteración de Newton” [1]
Calcular la raíz cuadrada de un número como a = 16782 es equivalente a resolver la ecuación para x:
[matemáticas] x ^ 2 – a = 0 [/ matemáticas]
Podemos reorganizar la ecuación como:
- ¿Cuáles son las soluciones generales para cos (x) = 0? Además, ¿por qué usas x = a + 180n y no 360n?
- Cómo mostrar que [matemáticas] \ sqrt {10} ^ {\ left (\ sqrt {11} ^ {\ left (\ sqrt {12} ^ \ sqrt {13} \ right)} \ right)} [/ math] no es un numero primo
- ¿Por qué es mx + c = y en lugar de cero?
- ¿Cómo integramos [x ^ 2] desde los límites 0 a 3, donde [] significa la función entera más grande?
- ¿Cómo se pueden resolver los enfoques lim x 0 (x ^ 2 + 1) = 1 usando un teorema de sandwich?
[matemáticas] x = (x + a / x) / 2 [/ matemáticas]
¿Qué hemos logrado con esta reorganización? .
Si tenemos una suposición (estimación) del valor de x, podemos obtener una nueva calculando (x + a / x) / 2. Esto sugiere un procedimiento iterativo en el que comenzamos desde una suposición inicial de x y mejoramos sobre ella, luego usamos la nueva estimación y la mejoramos aún más, y así sucesivamente …
¿Cuándo nos detenemos?
Nos detenemos cuando no hay mejora en el valor de x (o la mejora es insignificante)
Para el caso de 16782, comenzando con una suposición de 130, intentemos esto en una consola ipython (o calculadora científica):
En [1]: x = 130
En [2]: 0.5 * (x + 16782.0 / x)
Fuera [2]: 129.54615384615386
En [3]: x = 129.54615384615386
En [4]: 0.5 * (x + 16782.0 / x)
Fuera [4]: 129.54535885407864
En [5]: x = 129.54535885407864
En [6]: 0.5 * (x + 16782.0 / x)
Fuera [6]: 129.5453588516393
En [7]: x = 129.5453588516393
En [8]: 0.5 * (x + 16782.0 / x)
Fuera [8]: 129.5453588516393
Deje un análisis más detallado del algoritmo como ejercicio.
Notas al pie
[1] La iteración de Newton