Este programa utiliza el método de Newton-Raphson o de aproximación sucesiva para obtener la raíz cuadrada de un número. Antes de presentarte el código, expliquemos brevemente de qué se trata este método:
El método de Newton es un algoritmo iterativo que nos permite obtener soluciones aproximadas a una ecuación no lineal, por ejemplo, podemos utilizarlo para obtener la raíz cuadrada de un número mediante una serie de aproximaciones. La función que se evalúa incialmente es f(x) = x^2 - a, donde "a" es un número cualquiera. La raíz cuadrada de "a" es la solución a la ecuación f(x) = 0, es decir, el valor de x para el cual la función f(x) se hace cero. El método de Newton se utiliza para encontrar una aproximación de esta solución. Primero se elige un punto inicial, y luego se aplica una fórmula para encontrar una aproximación mejorada de la raíz. En cada iteración, el método utiliza la información sobre la pendiente de la función en el punto actual para encontrar una mejor aproximación de la solución, es decir, esta información se utiliza para encontrar el punto en el eje x donde la curva cruza la línea horizontal que pasa por el punto actual. Para encontrar el punto x en el que la recta tangente intersecta el eje x, podemos tomar la ecuación de la recta tangente, podemos igualar la ecuación de la recta tangente a y=0 (ya que en el eje x el valor de y es 0) y resolver para x, como lo vemos a continuación.
Pasemos al código:
#include <iostream>
#include <cmath>
using namespace std;
double raiz_cuadrada(double x)
{
double raiz = x / 2;
while (abs(raiz * raiz - x) > 0.0001)
{
raiz = (raiz + x / raiz) / 2;
}
return raiz;
}
int main()
{
double x;
cout << "Ingrese un número: ";
cin >> x;
cout << "La raíz cuadrada de " << x << " es: " << raiz_cuadrada(x) << endl;
return 0;
}
Es importante aclarar que este programa no utiliza explícitamente la derivada de la función para calcular la raíz cuadrada. En cambio, utiliza una forma iterativa del método de Newton que solo requiere la función original y su evaluación en puntos sucesivos para obtener una mejor aproximación de la raíz. Aunque el concepto de pendiente y tangente son importantes en el método de Newton, el programa no necesita calcularlas de manera explícita.NOTA: Si al correr el programa los acentos o caracteres especiales no se muestran correctamente, puedes usar esta solución: ¿Cómo mostrar acentos y caracteres especiales en programas escritos en C++?