public void CriacaoMathExpressionTest(object[] actual, double expected) { var aux = new MathExpression(actual[0].ToString()); var x = Convert.ToDouble(actual[1]); Assert.AreEqual(expected, aux.F(x)); }
public double NewtonRaphson() { if (DerivadaFuncao == null) { throw new Exception("Função derivada necessária"); } if (X == null) { throw new Exception("Valor de X necessário"); } var funcaoLinha = new MathExpression(DerivadaFuncao); var x = X; double fx; var validador = 0; do { x -= _math.F(x) / funcaoLinha.F(x); fx = _math.F(x); validador++; if (validador > short.MaxValue * 1000) { throw new Exception("Não conseguimos encontrar o valor"); } } while (Math.Abs(fx) >= Precisao); return(x); }