Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Integracion Numerica PDF
Integracion Numerica PDF
REGLA TRAPEZOIDAL
Objetivos: Resolver el problema de clculo del rea bajo la curva entre dos
lmites conocidos, dividiendo en N sub reas para calcular su valor asumiendo
cada sub rea como un pequeo trapecio.
Temas:
9 Clculo de reas.
9 Mtodo de los trapecios.
9 Programacin del mtodo de los trapecios.
9 Clculo del rea de mltiples funciones en base a subclases.
Clculo de reas
Fig. 1
Desde luego, la soluciones algebraicas son mejores que las numricas, porque
son exactas.
Universidad Pero a veces, la complejidad de las funciones hace imposible
Surcolombiana 1 de 18 (o
Yamil Armando Cerquera Rojas
difcil) obtener la solucin algebraica, por lo que una solucin numrica permite
ahorrar tiempo.
La Fig. 2 muestra de color verde como sera el clculo del rea bajo la curva de
la funcin f (x ) entre los lmites a y b si se dividiera dicha subarea en un solo
trapecio. El error que se cometera sera demasiado grande con respecto al rea
real que se desea obtener. Dependiendo de la forma de la curva el error que se
cometera sera por exceso o por defecto. En el caso del ejemplo, el error seria
por defecto, es decir el valor que arroje el clculo de la integral ser menor al
valor real del rea.
Fig. 2
Fig. 3
Universidad Surcolombiana 2 de 18
Yamil Armando Cerquera Rojas
pequeo tamao y aproximar el rea como la suma de las reas de cada uno de
los trapecios que se forman:
Fig. 4
9 Se determinan los puntos del eje x que delimitarn cada trapecio. Estos
puntos son:
xi= a+i*dx, con i= 0, 1, 2, ..., n
9 Se evala la funcin f en cada uno de los puntos Xi:
yi= f(xi), i= 0, 1, 2, ..., n
9 Se calcula el rea de cada trapecio como:
ai= (yi+y(i+1))*dx/2, i= 0, 1, 2, ..., n-1
9 Se suman las reas de cada uno de los trapecios.
DEDUCCION DEL MTODO DEL TRAPECIO: (Deduccin del mtodo desde los
Polinomios de Interpolacin)
b
b
a
f ( x)dx f1 ( x)dx
a
Donde f1(x), es un polinomio de interpolacin (obviamente de grado 1) para
los datos:
x a b
y f(a) f(b)
Universidad Surcolombiana 3 de 18
Yamil Armando Cerquera Rojas
Fig 5
f (b) f (a)
( x a) = f ( x) f (a)
ba
f (b) f (a)
f1 ( x) = f (a ) + ( x a)
ba
Integrando este polinomio, se tiene que:
b
b b
f (b) f (a ) ( x a) 2
f ( x)dx
1 f 1 ( x)dx = f (a ) x +
ba 2
a a a
b
f (b) f (a ) (b a ) 2
a
f1 ( x)dx = f (a )(b a ) +
ba 2
(b a )
b
f ( x)dx
a
1 = f (a )(b a ) + ( f (b) f (a ))
2
b
f (b) f (a )
f ( x)dx
a
1 = (b a ) f (a ) +
2
f (a) + f (b)
b
f ( x)dx
a
1 = (b a)
2
Universidad Surcolombiana 4 de 18
Yamil Armando Cerquera Rojas
b
f (a ) + f (b)
f ( x)dx (b a)
a 2
Fig. 6
Fig. 7
Universidad Surcolombiana 5 de 18
Yamil Armando Cerquera Rojas
Fig. 8
Llamando a las ordenadas Yi (i = 0,1, 2, 3, ...., n), las reas de los trapecios son:
y + y1
A1 = X 0
2
Y + Y2
A2 = X 1
2
(1)
.
.
Y + Yn
An = X n 1
2
Fig. 9
Universidad Surcolombiana 6 de 18
Yamil Armando Cerquera Rojas
b
X
A = f ( x)dx ( y0 + 2 y1 + 2 y 2 + ... + 2 y n1 + y n ) (3)
a
2
b
X
A = f ( x)dx (y0 + y n + 2 ( y 2 + y3 + ... + y n1 )) (4)
a
2
b
X n 1
A = f ( x)dx y 0 + y n + 2 y i (5)
a
2 i =1
Ahora, y i sera la evaluacin en cada uno de los puntos sobre el eje x de base
comn a cada una de las sub reas.
y1 = f (a + 1dx)
y 2 = (a + 2dx)
y 3 = (a + 3dx)
.
.
.
y i = (a + idx)
b
X n 1
A = f ( x)dx f (a ) + f (b) + 2 f (a + i * dx) (7)
a
2 i =1
Que tambin se pudiese representar como
b
f (a ) + f (b) n1
A = f ( x)dx X + f (a + i * dx) (8)
a 2 i =1
Universidad Surcolombiana 7 de 18
Yamil Armando Cerquera Rojas
1
et = f ``( )(x) 3 con xi 1 < < xi (9)
12
Este error es la cantidad que se debe agregar al rea del trapecio para obtener
el rea real. Se llama Error por Truncamiento, ya que es el error que resulta de
utilizar una serie de Taylor truncada, en vez de una serie de Taylor completa,
para representar en forma de serie el rea de una faja. Generalmente no se
puede valuar directamente el trmino mostrado como error por truncamiento.
Sin embargo, se puede obtener una buena aproximacin de su valor para cada
faja suponiendo que f '' es suficientemente constante en el intervalo de la faja
(se supone que las derivadas de orden superior son despreciables) y evaluando f
'' para = X i . La estimacin del error por truncamiento para la integracin
total se obtiene sumando las estimaciones para cada faja. Si la estimacin
obtenida para el error total por truncamiento es mayor de lo que se puede
tolerar, se debe utilizar una subarea ms angosta o un mtodo ms preciso.
Se puede demostrar que una aproximacin al lmite del error por redondeo es:
ye(b a) 2 1
eR (10)
2 x
Universidad Surcolombiana 8 de 18
Yamil Armando Cerquera Rojas
1
x2
Ejemplo: Utilizar la regla del trapecio para aproximar la integral: e dx .
0
Tenga en cuenta que el valor real es 1.4626
Fig. 10
Universidad Surcolombiana 9 de 18
Yamil Armando Cerquera Rojas
1
f (0) + f (1) 1 + e
e
x2
dx (1 0) = 2 = 1.85914
0 2
syms x
f=exp(x^2);
integral=int(f)
integral =
-1/2*i*pi^(1/2)*erf(i*x)
ex 4
4
ex f (2) + f (4) e
2
e4
2 x dx ( 4 2) 2
=
2 +
4
= 17.3441
Universidad Surcolombiana 10 de 18
Yamil Armando Cerquera Rojas
b x1 x2 xn
b
f ( x0 ) + f ( x1 ) f ( xn1 ) + f ( xn )
f ( x)dx ( x1 x0 ) 2 + ... + ( x n x n 1 ) 2
a
Ahora bien, ya que todos los subintervalos tienen la misma longitud h, se tiene
que:
b
h
f ( x)dx 2 [ f ( x
a
0 ) + 2 f ( x1 ) + 2 f ( x 2 ) + ... + 2 f ( x n 1 ) + f ( x n )]
n 1
b f ( x 0 ) + 2 f ( xi ) + f ( x n )
f ( x)dx (b a)
i =1
a 2n
Esta es la regla del trapecio para n sub intervalos. Obviamente, se espera que
entre ms sub intervalos use, mejor sea la aproximacin a la integral.
1
2
Ejemplo: Aplicar la regla del trapecio para aproximar la integral e x dx si se
0
subdivide en 5 intervalos.
Universidad Surcolombiana 11 de 18
Yamil Armando Cerquera Rojas
e x2
dx 1
[
1 + 2 e 0.2 + e 0.4 + e 0.6 + e 0.8 + e
2 2
2 2
]
0 10
1
x2
e dx 1.48065
0
As, se nota que con 5 intervalos, la aproximacin no es tan mala. Para hacer
clculos con ms subintervalos, es conveniente elaborar un programa que
aplique la frmula con el nmero de subintervalos que se desee y que permita
obtener un valor ms cercano al real. Deberrealizar su propio programa y
chequear con 50, 500, 1000, 10000 y 20000 subintervalos, para observar el
comportamiento de la aproximacin.
1.2
Fig 11
Solucin.
Universidad Surcolombiana 12 de 18
Yamil Armando Cerquera Rojas
0.1
0.1 0
I1 = f ( x)dx = [ f (0) + f (0.1)] = 0.842
0 2
0.7
0.7 0.1
I2 = f ( x)dx = [ f (0.1) + 3 f (0.3) + 3 f (0.5) + f (0.7)] = 2.7712
0.1 8
1. 2
1.2 0.7
I3 = f ( x)dx = [ f (0.7) + 4 f (0.95) + f (1.2)] = 2.4658
0. 7 6
1.2
3.25
Ejemplo: Calcula la integral f ( x)dx , usando la siguiente tabla de datos:
1
x -1 -0.5 0 1 1.75 2.5 3.25
f(x) 2 -3 1.5 -1 0.5 0.75 -2
Fig. 12
Universidad Surcolombiana 13 de 18
Yamil Armando Cerquera Rojas
0
0 (1)
I1 = f ( x)dx [ f (1) + 4 f (0.5) + f (0)] 1.41667
1 6
1
1 0
I 2 = f ( x)dx [ f (0) + f (1)] 0.25
0 2
3.25
3.25 1
I3 = f ( x)dx [ f (1) + 3 f (1.75) + 3 f (2.5) + f (3.25)] 0.210938
1 8
3.25
Vale la pena comentar que no siempre tiene que suceder que se apliquen
exactamente las tres reglas. En realidad, esto depende de cmo se encuentran
espaciados los intervalos de la tabla de datos y la forma que pueda tener la
curva.
Programa en lenguaje C: Se supone que la funcin area se debe llamar con los
parmetros a,b y n, que seran lmite inferior, lmite superior y nmero de sub
reas respectivamente.
Universidad Surcolombiana 14 de 18
Yamil Armando Cerquera Rojas
Esta solucin es anloga a la que se program para buscar los ceros de una
funcin. El problema de esta solucin, es que cuando se desea calcular la
integral de varias funciones distintas, hay que programar una funcin para
calcular el rea de cada funcin.
#include <vcl.h>
#pragma hdrstop
#include <stdio.h>
#include <conio.h>
#include <math.h>
void Lee_Datos(void);
double f(double x);
int n; // Variable para el numero de intervalos
float a,b; // Variables para os limites de la integral
#pragma argsused
int main(int argc, char* argv[])
{ float dx;
double Area;
double Suma = 0;
double Xi;
int i;
clrscr();
printf("\n MTODO DE INTEGRACIN POR TRAPECIOS ");
printf("\n==================================================");
printf("\n Dada una Funcin f(x)=x2 ");
printf("\n");
Lee_Datos();
Universidad Surcolombiana 15 de 18
Yamil Armando Cerquera Rojas
dx = (b-a)/n;
Xi = a;
for ( i = 1; i < n; i++)
{ Xi += dx;
Suma += 2*f(Xi);
}
Area = dx/2 *( f(a) + Suma + f(b));
printf("\n------------------------------------------");
printf("\n Area bajo La Curva es => %.8lf ",Area);
getche();
return 0;
}
void Lee_Datos(void)
{ printf("\n Numero de Subareas => n : ");
scanf("%d",&n);
printf("\n Valor de Lmite inferior => a : ");
scanf("%f",&a);
printf("\n Valor de Lmite Superior => b : ");
scanf("%f",&b);
}
double f(double x)
{ return x*x; // Ecuacin a la cual se le calcula el rea bajo la curva
}
Si la idea es crear objetos para evaluar mltiples funciones, entonces cada uno
de estos objetos poseer un mtodo eval para evaluar la funcin asignada. La
definicin del mtodo se har en una subclase de una clase base comn a todas
las funciones. Se llamar a esta clase Funcin:
Con esta clase ahora es posible calcular en un solo programa el rea de sin(x),
de exp(x) y de xk:
Universidad Surcolombiana 16 de 18
Yamil Armando Cerquera Rojas
{ return exp(x); }
// area se hereda
}
class FXk extends Funcion { int k; FXk(int k)
{ this.k= k; }
double eval(double x)
{ return pow(x, k); }
// area se hereda
}
...
void run()
{ println("area sin(x)= " + new FSin().area(0.0, PI/2, 100));
println("area exp(x)= " + new FExp().area(0.0, 1.0, 100));
println("area x^3= " + new FXk(3).area(0.0, 1.0, 100));
}
O si mejor desea utilizar MatLab Scilab entonces el cdigo sera as, Se debe
aclarar que la funcin debe estar contenida en un archivo nombrado funcion.m
en un directorio que este configurado en el Path del MatLab.
clc
format long
echo on
% La funcin a evaluar esta contenida dentro del archivo 'funcion.m' y se
requiere introducir los valores de los lmites, como se indica a continuacin
pulsa una tecla...
pause
n= input('Digite el nmero de subareas => n :');
a= input('Digite el Lmite inferior => a :');
b= input('Digite el Lmite superior => b :');
dx=(b-a)/n;
suma=0;
% Algoritmo para la sumatoria de la regla trapezoidal de segmentos mltiples
% pulsa una tecla...
pause
for I=1:n-1
xi=a+i*dx
suma=suma+funcion(xi);
end
Universidad Surcolombiana 17 de 18
Yamil Armando Cerquera Rojas
Universidad Surcolombiana 18 de 18