static void CalculoNumerico() { Console.WriteLine("\n=== Diferenciación e integración numérica ==="); double resD = Calculo.Derivar(Funciones.FuncParticula, 5); Console.WriteLine($"Derivada: {resD}"); double resI = Calculo.IntegrarRect(Funciones.FuncRaizConCubo, new Intervalo <double>(0, 2), 4); Console.WriteLine($"Integral: {resI}"); }
/// <summary> /// Busca aproximaciones de raíces de una función a través del método de Newton-Raphson. /// Recibe un valor inicial de x para comenzar el cálculo. /// </summary> /// <param name="f">La función a evaluar</param> /// <param name="x0">El valor inicial de x</param> /// <param name="iterations">El número de iteraciones a realizar para la aproximación</param> /// <returns>Una aproximación a la raíz de la función</returns> public static double NewtonRaphson(Func <double, double> f, double x0, int iterations) { double raiz = x0; for (int i = 1; i <= iterations; i++) { double raizAnt = raiz; raiz -= f(raiz) / Calculo.Derivar(f, raiz); ErrorAbsoluto = Math.Abs(raiz - raizAnt); ErrorRelativo = ErrorAbsoluto / Math.Abs(raiz); } return(raiz); }