public static Boolean ValidarIntervalo(double a, double b, string ecuacion) { Boolean respuesta = false; try { Evaluador_De_Expresiones evaludor = new Evaluador_De_Expresiones(ecuacion); if ((evaludor.F(a) * evaludor.F(b)) < 0) { respuesta = true; } } catch (Exception ex) { respuesta = false; } return(respuesta); }
public static List<IntervalosBiseccion> GetAutomatico(string Ecuacion) { double ValorInicial = 0.1; double ValorIncremento = 0.1; List<IntervalosBiseccion> lista = new List<IntervalosBiseccion>(); IntervalosBiseccion items; Evaluador_De_Expresiones evaluador = new Evaluador_De_Expresiones(Ecuacion); Boolean encontro = false; int contador = 0; while (encontro==false) { if ((evaluador.F(ValorInicial) * evaluador.F(ValorInicial + ValorIncremento)) < 0) { items = new IntervalosBiseccion(); items.X = ValorInicial.ToString(); items.Fx = evaluador.F(ValorInicial).ToString(); lista.Add(items); ValorInicial = ValorInicial + ValorIncremento; encontro = true; items = new IntervalosBiseccion(); items.X = ValorInicial.ToString(); items.Fx = evaluador.F(ValorInicial).ToString(); lista.Add(items); } else { items = new IntervalosBiseccion(); items.X = ValorInicial.ToString(); items.Fx = evaluador.F(ValorInicial).ToString(); lista.Add(items); ValorInicial = ValorInicial + ValorIncremento; } contador++; if (contador >= 200000) { throw new Exception($"Se realizo {contador} calculos y no fue posible encontrar la solucion verifique la ecuacion"); } } return lista; }
//Paso 5 public static string FA_FKX(Biseccion linea) { Evaluador_De_Expresiones evaluador = new Evaluador_De_Expresiones(Ecuacion); return((evaluador.F(linea.A) * evaluador.F(linea.Xk)).ToString()); }
//Paso 4 public static double CalcularFXK(Biseccion linea) { Evaluador_De_Expresiones evaluador = new Evaluador_De_Expresiones(Ecuacion); return(evaluador.F(linea.Xk)); }