El método de los trapecios

prev.gif (997 bytes)chapter.gif (1105 bytes)home.gif (1232 bytes)next.gif (1211 bytes)

Integración numérica

El método de los trapecios

La jerarquía de clases

El código fuente


El método de los trapecios

El método de los trapecios es muy simple y se puede explicar facilmente a partir de la siguiente figura.

FIG15_01.gif (2576 bytes)

Eligiendo un espaciado

se divide el intervalo [a, b] por medio de puntos igualmente espaciados

tenemos que, las ordenadas de dichos puntos son

En cada intervalo (xi, xi+1) se sustituye la función f(x) por la recta que une los puntos (xi, yi) y (xi+1, yi+1) tal como se aprecia en la figura.

La parte sombreada, un trapecio, se toma como el área aproximada, su valor se puede calcular fácilmente

El el área total aproximada es la suma de las áreas de los n pequeños trapecios de anchura h

o bien, agrupando términos

Cuanto mayor sea el número de divisiones del intervalo [a, b] que hagamos, menor será h, y más nos aproximaremos al valor exacto de la integral. Sin embargo, no podremos disminuir h tanto como queramos, ya que el ordenador maneja números de precisión limitada.

 

La jerarquía de clases

Del mismo modo que se ha hecho para hallar las raíces de una función por distintos procedimientos, crearemos una clase base abstracta denominada Trapecio, que defina una función miembro denominada integral que calcula la integral definida de cualquier función f(x) por el procedimiento de los trapecios. A dicha función le pasaremos los valores de los extremos del intervalo, y el número de divisiones del mismo. Como vemos en la fórmula, la función calcula el valor medio de la función en los extremos del intervalo, y lo guarda en la variable local suma. Posteriormente, suma los n-1 valores de la función en los puntos de abscisas x1 a xn-1. Por último, multiplica el resultado por h.

public abstract class Trapecio {
    public double integral (double a, double b, int n){
        double h=(b-a)/n;
        double suma=(f(a)+f(b))/2;
        for(int i=1; i<n; i++){
            suma+=f(a+i*h);
        }
        return suma*h;
    }
    abstract public double f(double x);
} 

En la clase derivada Funcion de Trapecio definiremos la función f(x) cuya integral deseamos calcular.

public class Funcion extends Trapecio{
    public double f(double x){
        return Math.cos(x);
    }
} 

Para hallar la integral definida de esta función entre los límites 0 y p /2, creamos un objeto de la clase Funcion mediante new y llamamos desde este objeto a la función integral pasádole en el primer argumento el límite inferior 0, en el segundo el límite superior, p /2, y por último el número 10 de divisiones del intervalo.

        double resultado=new Funcion().integral(0.0, Math.PI/2, 10);
        System.out.println("integral "+resultado);

 

El código fuente

disco.gif (1035 bytes) Trapecio.java, Funcion.java, IntegralApp.java