public ResultadoIntegracion MetodoTrapecioMultiple(ParametrosIntegracion parametros) { double altura = (parametros.SegundoValor - parametros.PrimerValor) / parametros.TercerValor; double suma = 0; ResultadoIntegracion resultado = new ResultadoIntegracion(); var funcion = new Function(parametros.Funcion); var argumento1 = new Argument("x", parametros.PrimerValor); var argumento2 = new Argument("x", parametros.SegundoValor); var f1 = new Expression("f(x)", funcion, argumento1); var f2 = new Expression("f(x)", funcion, argumento2); for (int i = 1; i < parametros.TercerValor; i++) { var argumento3 = new Argument("x", parametros.PrimerValor + (i * altura)); var F3 = new Expression("f(x)", funcion, argumento3); suma = suma + F3.calculate(); } resultado.Valor = (altura / 2) * (f1.calculate() + 2 * suma + f2.calculate()); return(resultado); }
public ResultadoIntegracion MetodoSimpson13Multiple(ParametrosIntegracion parametros) { double altura = (parametros.SegundoValor - parametros.PrimerValor) / parametros.TercerValor; ResultadoIntegracion resultado = new ResultadoIntegracion(); var funcion = new Function(parametros.Funcion); var argumento1 = new Argument("x", parametros.PrimerValor); var argumento2 = new Argument("x", parametros.SegundoValor); var f1 = new Expression("f(x)", funcion, argumento1); var f2 = new Expression("f(x)", funcion, argumento2); double suma1 = 0; double suma2 = 0; double valor = 0; if ((parametros.TercerValor % 2) != 0) { for (int i = 1; i < parametros.TercerValor - 4; i += 2) { var argumento3 = new Argument("x", parametros.PrimerValor + i * altura); var f3 = new Expression("f(x)", funcion, argumento3); suma1 = suma1 + f3.calculate(); } for (int i = 2; i < parametros.TercerValor - 5; i += 2) { var argumento3 = new Argument("x", parametros.PrimerValor + i * altura); var f3 = new Expression("f(x)", funcion, argumento3); suma2 = suma2 + f3.calculate(); } ParametrosIntegracion nuevoParametro = new ParametrosIntegracion { PrimerValor = parametros.PrimerValor + (parametros.TercerValor - 4) * altura, SegundoValor = parametros.PrimerValor + parametros.TercerValor * altura, Funcion = funcion.ToString() }; valor = MetodoSimpson38(nuevoParametro).Valor; } else { for (int i = 1; i < parametros.TercerValor; i += 2) { var argumento3 = new Argument("x", parametros.PrimerValor + i * altura); var f3 = new Expression("f(x)", funcion, argumento3); suma1 = suma1 + f3.calculate(); } for (int i = 2; i < parametros.TercerValor - 1; i += 2) { var argumento3 = new Argument("x", parametros.PrimerValor + i * altura); var f3 = new Expression("f(x)", funcion, argumento3); suma2 = suma2 + f3.calculate(); } } resultado.Valor = ((parametros.SegundoValor - parametros.PrimerValor) / (3 * parametros.TercerValor)) * (f1.calculate() + 4 * suma1 + 2 * suma2 + f2.calculate()) + valor; return(resultado); }
public ResultadoIntegracion MetodoTrapecioSimple(ParametrosIntegracion parametros) { ResultadoIntegracion resultado = new ResultadoIntegracion(); var funcion = new Function(parametros.Funcion); var argumento1 = new Argument("x", parametros.PrimerValor); var argumento2 = new Argument("x", parametros.SegundoValor); var f1 = new Expression("f(x)", funcion, argumento1); var f2 = new Expression("f(x)", funcion, argumento2); resultado.Valor = ((f2.calculate() + f1.calculate()) * (parametros.SegundoValor - parametros.PrimerValor)) / 2; return(resultado); }
public ResultadoIntegracion MetodoSimpson13Simple(ParametrosIntegracion parametros) { double altura = (parametros.SegundoValor + parametros.PrimerValor) / 2; ResultadoIntegracion resultado = new ResultadoIntegracion(); var funcion = new Function(parametros.Funcion); var argumento1 = new Argument("x", parametros.PrimerValor); var argumento2 = new Argument("x", parametros.SegundoValor); var argumentoaltura = new Argument("x", altura); var f1 = new Expression("f(x)", funcion, argumento1); var f2 = new Expression("f(x)", funcion, argumento2); var faltura = new Expression("f(x)", funcion, argumentoaltura); resultado.Valor = ((parametros.SegundoValor - parametros.PrimerValor) / 6) * (f1.calculate() + (4 * faltura.calculate()) + f2.calculate()); return(resultado); }
public ResultadoIntegracion MetodoSimpson38(ParametrosIntegracion parametros) { double altura = (parametros.SegundoValor - parametros.PrimerValor) / 3; ResultadoIntegracion resultado = new ResultadoIntegracion(); var funcion = new Function(parametros.Funcion); var argumento1 = new Argument("x", parametros.PrimerValor); var argumento2 = new Argument("x", parametros.SegundoValor); var argumento3 = new Argument("x", parametros.PrimerValor + altura); var argumento4 = new Argument("x", parametros.PrimerValor + 2 * altura); var f1 = new Expression("f(x)", funcion, argumento1); var f2 = new Expression("f(x)", funcion, argumento2); var f3 = new Expression("f(x)", funcion, argumento3); var f4 = new Expression("f(x)", funcion, argumento4); resultado.Valor = (0.375 * altura) * (f1.calculate() + 3 * f2.calculate() + 3 * f3.calculate() + f4.calculate()); return(resultado); }