示例#1
0
        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;
        }
示例#3
0
        //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());
        }
示例#4
0
        //Paso 4
        public static double CalcularFXK(Biseccion linea)
        {
            Evaluador_De_Expresiones evaluador = new Evaluador_De_Expresiones(Ecuacion);

            return(evaluador.F(linea.Xk));
        }