Situaciones Dado un número total de estudiantes en una escuela y desea saber si todos los estudiantes caben en un lugar de reunión, necesita saber cuántas filas se deben formar como mínimo. Dada la dimensión de una puerta, debe saber qué tamaño de madera contrachapada se puede pasar a través de la puerta. No puedes hacer esto sin una cosa: la raíz cuadrada. Ya sea para encontrar la raíz cuadrada de un número o la raíz cuadrada de una suma de cuadrados, se necesita una función (o comando) para encontrar la raíz cuadrada de un número. ¿Fácil? Está bien, fácil. Tenemos funciones integradas (o comandos/botones) en nuestras calculadoras, computadoras, lenguajes de programación, móviles y en todas partes para calcular la raíz cuadrada. Sí, eso se puede hacer de una manera directa. Pero, ¿qué pasa si estás en un lugar donde no hay electricidad disponible y tus dispositivos están muertos? Ayúdame … Sí, te estoy rescatando de esa situación si llega el día. Traigo a tu viejo amigo Newton (y también a Raphson), a quien amabas mucho durante tus días de escuela. Probablemente, algunos de ustedes también odiaron ver su nombre en todas partes, desde el libro de texto de matemáticas hasta el libro de texto de física, desde la mecánica clásica hasta el calor y la termodinámica, y desde la óptica hasta la cúbica. También recuerdo su nombre en el libro de GK. Algoritmo Tome una conjetura razonable (raíz aproximada) para la raíz cuadrada. Sume la raíz aproximada con el número original dividido por la raíz aproximada y divida por 2. x_i := (x_i + n / x_i) / 2 Continúe con el paso 2 hasta que la diferencia en la raíz aproximada a lo largo de las iteraciones sea menor que el valor deseado (o valor de precisión). La raíz aproximada es la raíz cuadrada que queremos. Demostración de pizarra Veámoslo en la pizarra ahora con . n = 4 Fig: método de Newton para calcular la raíz cuadrada de 4 Es bien sabido que hay dos raíces cuadradas e ignoramos la raíz cuadrada negativa aquí. La raíz cuadrada negativa se puede calcular fácilmente tomando la primera aproximación cerca de la raíz cuadrada negativa. Entonces, esto es todo, la receta para el rescate, pero no me detengo aquí ya que mis lectores amantes de la informática, Python y las matemáticas esperan ver más. Comencemos con el código de Python. Pitón r = x precision = ** ( ) abs(x - r * r) > precision: r = (r + x / r) / r : def mySqrt (x) 10 -10 while 2 return ¿Por qué no lo implementas en tu sistema? método de newton El método de Newton, también conocido como método de Newton-Raphson, es un algoritmo de búsqueda de raíces que produce aproximaciones cada vez mejores de las raíces de una función de valor real. Las aproximaciones de la raíz son: x_(n+1) = x_n - f(x_n) / f'(x_n) es la aproximación aproximada de la raíz hecha al principio y las sucesivas aproximaciones van como x_0 x_1, x_2,…. es la función cuya raíz se quiere determinar y es la derivada de la función. f(x_n) f'(x_n) Descripción Para una aproximación lo suficientemente cercana, la mejor aproximación de la raíz generalmente se puede encontrar dibujando la tangente al gráfico en y encontrando dónde la tangente intersecta el eje . x_n x_n x La ecuación de una recta con pendiente que pasa por sería: m (x_1, y_1) y - y_1 = metro (x - x_1) Aquí, la tangente es la recta, la derivada, , es la pendiente y es el punto. f'(x_n) (x_n, f(x_n)) Entonces, y - f(x_n) = f'(x_n)(x - x_n) Como la mejor aproximación será de la tangente, ponga y resuelva para . la intersección x y = 0 x_n -f(x_n) = f'(x_n)(x - x_n) o, x - x_n = -f(x_n) / f'(x_n) Entonces, x = x_n - f(x_n) / f'(x_n) ………………. (1) Este es el método de Newton para aproximar la raíz de una función, f(x). Veamos ahora si podemos llegar al algoritmo provisto arriba usando la fórmula general. Método de Newton para la raíz cuadrada Si tenemos que encontrar la raíz cuadrada de un número , la función sería y tendríamos que encontrar la raíz de la función, n f(x) = x² - N f(x). Aquí, el valor en es: f(x_n) x = x_n f(x_n) = x_n² - N Y, la derivada en el punto es: f'(x_n) = 2 * x_n Ahora, la mejor aproximación se puede encontrar usando (1). x_(n+1) = x_n - (x_n² - N) / (2 * x_n) x_(n+1) = x_n - x_n² / (2 * x_n) + N/ (2 * x_n) x_(n+1) = x_n - x_n / 2+ N/ (2 * x_n) x_(n+1) = x_n / 2+ N/ (2 * x_n) x_(n+1) = (x_n + N/ x_n) / 2 Así surge el algoritmo para hallar la raíz cuadrada de un número. Raíz cuadrada entera de un número La raíz cuadrada entera de un número es el piso de la raíz cuadrada. El algoritmo se puede modificar un poco para encontrar la raíz cuadrada entera de un número. La condición aquí sería . El algoritmo termina cuando el cuadrado aproximado es menor o igual a N. while aproximado * aproximado > n La relación de iteración aquí es: donde // es la división de enteros. x_(n+1) = (x_n + N // x_n) // 2, Prueba de corrección Primero, probemos la . corrección de la condición while La relación de iteración es: x_(n+1) = (x_n + N // x_n) // 2 Se puede escribir como: x_(n+1) = suelo((x_n + N / x_n) / 2) Para y . Entonces, a ≥ 0 b ≥ 0, a + b ≥ 2 * sqrt(a*b) x_(n+1) ≥ piso(2 * sqrt(x_n * N / x_n) / 2) o, x_(n+1) ≥ piso(raíz cuadrada(N)) Entonces, x_(n+1) ≥ enterosqrt(N) Por lo tanto, el valor de la aproximación nunca cae por debajo del valor de . intsqrt(N) Ahora, demostremos que . la aproximación es monótonamente decreciente Encontremos la diferencia x_(n+1) - x_n. x_(n+1) - x_n = (x_n + N // x_n) // 2 - x_n Como es menor o igual que (según la condición while), N // x_n x_n (x_n + N // x_n) // 2 ≤ (2 * x_n) // 2 Entonces, x_(n+1) - x_n ≤ (2 * x_n) // 2 - x_n Como es un número entero, es decir x_n (2 * x_n) // 2 = x_n. , x_(n+1) - x_n ≤ x_n - x_n Entonces, x_(n+1)-x_n ≤ 0 Por lo tanto, la sucesión es monótonamente decreciente. {x_n} Los valores y son iguales solo cuando es igual a y ahí es cuando encontramos la solución y el ciclo while se detiene. En todos los demás casos, la sucesión es estrictamente decreciente. x_(n+1) x_n N // x_n x_n {x_n} Por lo tanto, se prueba la corrección del algoritmo para calcular la raíz cuadrada entera. Análisis numérico — EndNote El análisis numérico es el campo de los algoritmos que utilizan la aproximación numérica para los problemas de análisis matemático. Desde la ingeniería y las ciencias físicas hasta las ciencias de la vida, las ciencias sociales, la medicina, los negocios y las artes, los cálculos científicos se aplican en todas partes. El aumento de la potencia informática ha fomentado y permitido el uso de modelos matemáticos realistas en la ciencia y la ingeniería, y se requiere un análisis numérico para la implementación detallada. Este es un ejemplo de análisis numérico, donde usamos el método de Newton para calcular la raíz de la función. Hay dos cosas que me emocionan sobre el análisis numérico. Se pueden resolver funciones y ecuaciones complejas que de otro modo serían irresolubles. Los algoritmos se pueden programar y automatizar, lo que hace que la solución sea más fácil de implementar, reproducir y empaquetar. ¿A usted también le pareció interesante ? Si es así, comenta aquí tu algoritmo de análisis numérico favorito. el análisis numérico