El método de Newton funciona muy bien. Para que una función [math] f (x) [/ math] encuentre un valor x para el cual [math] f (x) = 0 [/ math], podemos usar la iteración
[matemáticas] x_ {n + 1} = x_n – \ frac {f (x_n)} {f ‘(x_n)} [/ matemáticas]
para obtener mejores aproximaciones a la raíz. Aquí usamos [math] f (x) = x ^ 2 – S [/ math] donde S es el valor del que queremos encontrar la raíz. Tenga en cuenta que esto es cero cuando x es la raíz cuadrada de S. Ponga eso en la fórmula de Newton
[matemáticas] \ begin {align} x_ {x + 1} & = x_n – \ frac {x_n ^ 2 – S} {2 x_n} \\ & = x_n – (\ frac {x_n} {2} – \ frac { S} {2 x_n}) \\ & = \ frac {1} {2} \ left (x_n + \ frac {S} {x_n} \ right) \ end {align} [/ math]
- Para una diferencia de tiempo de 1 hora, la distancia longitudinal es igual a?
- Si f (x) yg (x) son polinomios de grado 5 en x, ¿se deduce que f (x) + g (x) tiene grado 5?
- ¿Cuáles son las funciones de los espacios vectoriales en álgebra lineal?
- ¿Cuál es la suma de 1 a 100?
- ¿Cómo es 2 ^ 32 igual a 4G?
Para poner en palabras “tome el promedio de la última aproximación y (S dividido por su última aproximación)”. La respuesta dada por David Simpson. Este método era conocido por los antiguos y se llama los métodos babilónicos.
Este método converge muy bien, pero tiene problemas si el número con el que está comenzando es muy grande. El método mejora mucho si puede obtener una buena primera aproximación.
Ahora suponga que el número que desea encontrar está en notación científica [matemática] S = a \ por 10 ^ {b} [/ matemática] con [matemática] 1 \ ge a \ lt 10 [/ matemática], b un entero. Tomar raíz cuadrada da [math] \ sqrt {a} \ times 10 ^ {b / 2} [/ math]. Entonces, para obtener una buena primera aproximación, tome un número con la mitad del exponente. Por ejemplo, si su primer número es [matemáticas] 1234567 = 1.234567 \ veces 10 ^ 6 [/ matemáticas] intente como primera aproximación [matemáticas] 1234.567 = 1.234567 \ veces 10 ^ 3 [/ matemáticas].
Esta técnica es la base detrás de la notoria raíz cuadrada inversa rápida que se usa en el juego de computadora Quake de 1999. Implicaba un número mágico 0x5F3759DF que a primera vista parece bastante extraño. Lo que realmente sucede en el algoritmo es que se encuentra una representación binaria del número de coma flotante. Luego se construyó algo de magia y un nuevo número de coma flotante.
i = * (largo *) & y; // piratería de nivel de bits de punto flotante malvado
i = 0x5f3759df – (i >> 1); // ¿Qué carajo?
y = * (flotante *) & i;
La operación actúa sobre los bits que representan el exponente dividiéndolo por dos. También hace una aproximación lineal aproximada en la mantisa.
El siguiente bit del algoritmo
y = y * (tres medias – (x2 * y * y)); // primera iteración
// y = y * (tres medias – (x2 * y * y)); // segunda iteración,
es solo un par de rondas del método de Newton.
No creo que sea de mucha ayuda tratar de hacerlo en tu cabeza.