예제 #1
0
        public static Resultado_TP4 CalcularSimpsonUnTercioMultiple(string funcion, double a, double b, int n)
        {
            Resultado_TP4 result = ChequearFuncion(funcion);

            if (result.Ok)
            {
                double h = (b - a) / n;
                double fx0 = Fx(funcion, a);
                double fxn = Fx(funcion, b);
                double sum_fximpares = 0; double sum_fxpares = 0; double xi;
                for (int i = 1; i <= n - 1; i += 2) //Se suman los impares
                {
                    xi             = a + (i * h);
                    sum_fximpares += Fx(funcion, xi);
                }

                for (int i = 2; i <= n - 2; i += 2) //Se suman los pares
                {
                    xi           = a + (i * h);
                    sum_fxpares += Fx(funcion, xi);
                }

                result.Resolucion = (h / 3) * (fx0 + (4 * sum_fximpares) + (2 * sum_fxpares) + fxn);
            }
            return(result);
        }
예제 #2
0
        public static Resultado_TP4 CalcularSimpsonUnTercioSimple(string funcion, double a, double b)
        {
            Resultado_TP4 result = ChequearFuncion(funcion);

            if (result.Ok)
            {
                double h = (b - a) / 2;
                result.Resolucion = (h / 3) * (Fx(funcion, a) + (4 * Fx(funcion, (a + h))) + Fx(funcion, b));
            }
            return(result);
        }
예제 #3
0
        public static Resultado_TP4 CalcularTrapecioSimple(string funcion, double a, double b)
        {
            Resultado_TP4 result = ChequearFuncion(funcion);

            if (result.Ok)
            {
                double Fa = Ejercicio1.Fx(funcion, a);
                double Fb = Ejercicio1.Fx(funcion, b);
                result.Resolucion = ((Fa + Fb) * (b - a)) / 2;
            }
            return(result);
        }
예제 #4
0
        private static Resultado_TP4 ChequearFuncion(string func)
        {
            Resultado_TP4 result = new Resultado_TP4(true, "El area es: ");
            Calculo       AnalizadorDeFuncion = new Calculo();

            if (!AnalizadorDeFuncion.Sintaxis(func, 'x'))
            {
                result.Ok      = false;
                result.Mensaje = "La función no es admitida";
            }
            return(result);
        }
예제 #5
0
        public static Resultado_TP4 CalcularSimpsonTresOctavos(string funcion, double a, double b)
        {
            Resultado_TP4 result = ChequearFuncion(funcion);

            if (result.Ok)
            {
                double h   = (b - a) / 3;
                double fx0 = Fx(funcion, a);
                double fx1 = Fx(funcion, (a + h));
                double fx2 = Fx(funcion, (a + (2 * h)));
                double fx3 = Fx(funcion, b);
                result.Resolucion = ((3 * h) / 8) * (fx0 + (3 * fx1) + (3 * fx2) + fx3);
            }
            return(result);
        }
예제 #6
0
        public static Resultado_TP4 CalcularTrapecioMultiple(double a, double b, string funcion, int n)
        {
            Resultado_TP4 result = ChequearFuncion(funcion);

            if (!result.Ok)
            {
                return(result);
            }
            double h   = (b - a) / n;
            double Sum = 0;

            for (int i = 1; i <= n - 1; i++)
            {
                Sum += Fx(funcion, a + (i * h));
            }
            result.Resolucion = (h / 2) * (Fx(funcion, a) + (2 * Sum) + Fx(funcion, b));
            return(result);
        }