Programación en C++

Integral por método de trapecios


La función para el método del trapecio es la siguiente:

double trapecio(float coeficientes[100], float limites[2], unsigned int iteraciones, unsigned int grado)

{

       //Dx/2 * [f(x0)+2f(x1)+2f(x2)+...+2f(xn-1)+f(xn)]

 

double Dx, x, resultado = 0, parte1 = 0, parte2 = 0, parte3=0,total1=0;

int contador = 0;

Dx = (limites[1] - limites[0]) / iteraciones;

 

//f(x0)

x = limites[0] + (0 * Dx);

for (int l = 0; l <= grado; l++)

{

       parte1 += (coeficientes[l] * (pow(x, grado - contador)));

       contador++;

}

contador = 0;

 

//f(xn)

 

x = limites[0] + (iteraciones * Dx);

for (int l = 0; l <= grado; l++)

{

       parte3 += (coeficientes[l] * (pow(x, grado - contador)));

       contador++;

}

contador = 0;

 

 

 

//2f(x1)+...+2f(xn-1)

for (int i = 1; i < iteraciones; i++)

{

       x = limites[0] + (i * Dx);

       for (int l = 0; l <= grado; l++)

       {

             parte2 += (coeficientes[l] * (pow(x, grado - contador)));

             contador++;

       }

       total1 += parte2*2;

       parte2 = 0;

       contador = 0;

}

resultado = (Dx / 2) * (parte1 + parte3+ total1);

return resultado;

}

Acá está separada en “dos partes”.


 




 

La separación consiste en hacer por separado las funciones multiplicadas por 2


 y las que no



Y los principios son los mismos que en la suma de Riemann solo que acá cambia el valor de  en el ciclo principal mientras que en el anidado suma los elementos del polinomio al final todo se multiplica por




Comentarios