public double ZerarFuncao(FormulaInputZeroFuncaoModel input) { //Faz reflection para executar a fórmula que o usuário escolheu Funcao = FuncaoHelper.Clean(input.Funcao); Type classe = Type.GetType("WebApplication1.Metodos.MetodosHub"); MethodInfo metodoCalculo = classe.GetMethod(input.Metodo.ToString()); return((double)metodoCalculo.Invoke(this, new object[] { input })); }
public double Newton_Ralphson(FormulaInputZeroFuncaoModel input) { string derivada = FuncaoHelper.Clean(input.Derivada); double x, f, x0, flinha; x0 = input.A; int LIMITE = 10000; do { f = F(x0); flinha = F_linha(x0, derivada); if (f == 0) { return(x0); } x = x0 - (f / (flinha > 0 ? flinha : 1)); x0 = x; LIMITE--; } while (Math.Abs(F(x)) > input.Erro && LIMITE > 0); return(x); }