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 }); }