analisis
(3*h/8)*(f(x0) + 3*f(x0+h) +3*f(x0+2*h) + f(xn)) , h = (xn-x0)/2
En este caso este método se repite en todos los intervalos y al final se suman estos valores
para llegar al resultado. Se forma entonces una sucesión devalores que puede ser expresado
de la siguiente manera:
Area = (3*h/8) * (f(x0) + 3*sum(f(xi)) + 3*sum(f(xj)) + 2*sum(f(xk)) + f(xn))
i= (multiplos de 3)+1 ,.., n/3
j= (multiplos de 3)+2 ,.., n/3k= multiplos de 3 ,.., n/3
h = (xn-x0)/n
public void simpson38compuesto(double x0, double xn, int iteraciones)
{
double h;
double integ = 0;
string res = "";
double suma1 = 0;
double suma2 =0;
double suma3 = 0;
if (iteraciones % 3 != 0)
{
MessageBox.Show("el numero de intervalos debe ser multiplo de 3.");
return;
}
else
{
String funcion = txtFuncion.Text.Replace("X",x0.ToString());
MathParser.Parser p = new MathParser.Parser();
h = (xn - x0) / iteraciones;
if (p.Evaluate(funcion))
{
integ = p.Result;
}
for (int i = 1; i < iteraciones; i++)
{
if (i % 3 == 1)
{funcion = txtFuncion.Text.Replace("X", (x0 + (i * h)).ToString());
if (p.Evaluate(funcion))
{
suma1 += p.Result;
}
}
else
{
if (i % 3 == 2)
{
funcion = txtFuncion.Text.Replace("X", (x0 + (i *h)).ToString());
if (p.Evaluate(funcion))
{
suma2 += p.Result;
}
}
else
{
funcion = txtFuncion.Text.Replace("X", (x0 + (i * h)).ToString());
if (p.Evaluate(funcion))
{
suma3 += p.Result;
}}
}
}
integ += 3 * suma1;
integ += 3 * suma2;
integ += 2 * suma3;
funcion = txtFuncion.Text.Replace("X", xn.ToString());
if (p.Evaluate(funcion))
{
integ += p.Result;
}
integ = (3 * h /...
Regístrate para leer el documento completo.