Esempio n. 1
0
        private void btn_TrapercioMultiple_Click(object sender, EventArgs e)
        {
            try
            {
                ParametroTrapecioMultiple parametro = new ParametroTrapecioMultiple
                {
                    Funcion           = txt_Funcion.Text,
                    ValorA            = Convert.ToDouble(txt_ValorA.Text),
                    ValorB            = Convert.ToDouble(txt_ValorB.Text),
                    CantSubIntervalos = Convert.ToInt16(txt_CantIntervalos.Text)
                };

                var resultado = integracionNumerica.MetodoDelTrapecioMultiple(parametro);
                txt_Resultado.Text = resultado.Valor.ToString("0.000000");
                lbl_NomMetodo.Text = btn_TrapercioMultiple.Text;
            }
            catch (Exception exception)
            {
                MessageBox.Show(exception.Message);
            }
        }
        public ResultadoIntegracionNumerica MetodoDelTrapecioMultiple(ParametroTrapecioMultiple parametro)
        {
            var h       = (parametro.ValorB - parametro.ValorA) / parametro.CantSubIntervalos;
            var FValorA = Utilidad.EvaluarFuncion(parametro.Funcion, parametro.ValorA);
            var FValorB = Utilidad.EvaluarFuncion(parametro.Funcion, parametro.ValorB);

            double X         = parametro.ValorA + h;
            double sumatoria = 0;

            while (X < (parametro.ValorB - h))
            {
                sumatoria += Utilidad.EvaluarFuncion(parametro.Funcion, X);
                X         += h;
            }

            double resultado = (h / 2) * (FValorA + (2 * sumatoria) + FValorB);

            return(new ResultadoIntegracionNumerica()
            {
                Valor = resultado
            });
        }