Documentos de Académico
Documentos de Profesional
Documentos de Cultura
02 Integracion PDF
02 Integracion PDF
Integración numérica
Los métodos que estudiaremos se basan en la interpretación geométrica de
que la integral de una función de una (o de dos o más) variables se asocia (a
parte de un signo) al área (volumen o hipervolumen) que se encuentra “debajo”
de la función y que se encuentra limitada (limitado) por rectas verticales (o
planos o hiperplanos) definidos por los límites de integración y el eje de
abscisas (o planos o hiperplanos). Extenderemos este concepto también en el
caso de las integrales impropias.
tales que
x i − x i −1 = h ∀i = 1,2,3,..., n .
Así pues, la integral I se aproxima a la suma de las áreas que quedan debajo
de cada segmento (xi-1,f(xi-1))–(xi,f(xi)) y que también están limitadas por las
rectas y=xi-1, y=xi y el eje de abscisas. El área de cada uno de esos trapecios
es
f (x i −1 ) + f (x i )
Ii = h.
2
[f (x i −1 ) + f (x i )] = h f (x 0 ) + f (x n ) + 2∑ f (x i ) ,
n n −1
h n
I = ∑ Ii = ∑
i =1 2 i =1 2 i =1
es decir
2-1
f (x ) + f (x n ) n − 1
I = h 0 + ∑ f (x i ) + ε .
2 i =1
− nh 3
El error cometido es ε = f ' ' (ξ ) , donde a<ξ<b.
12
En una versión modificada del método, se añade el término
h
[f (x −1 ) + f (x1 ) + f (xn −1 ) − f (xn +1 )] ,
24
11nh 5 4 )
el cual involucra dos puntos adicionales. Luego el error es ε = f (ξ ) .
720
h
I i (− h,0, h ) = ∫ y dx =
h
3
(
2ah 2 + 6c . )
−h
f (− h ) = ah 2 − bh + c
f (0 ) = c
f (h ) = ah 2 + bh + c
y de aquí surge la relación
2-2
2ah 2 + 6c = f (− h ) + 4f (0 ) + f (h ) .
h
I i (− h,0, h ) = [f (− h ) + 4f (0) + f (h )] .
3
n −1 n −1
I = ∑ I i (x i −1, x i , x i +1 ) = ∑ I i (x i − h, x i , x i + h ) .
i =1 i =1
n −1
h
I= ∑ [f (x i − h ) + 4f (x i ) + f (x i + h )].
3 i =1
(1)
Definitivamente,
h n −2 n −1
I= f (x0 ) + f (x n ) + 2∑ f (x i ) + 4∑ f (x i ) + ε . (2)
3 i = 2& i ≠ 2&
− nh 5 4 )
El error cometido es ε = f (ξ ) , donde a<ξ<b.
90
2-3
R(J,0). Los elementos de esta columna se pueden calcular a partir de las
siguientes fórmulas:
b−a
R (0,0 ) = [f (a ) + f (b )] (fórmula trapezoidal para un solo intervalo)
2
1 b − a
k
b − a 2 −1
R (k,0 ) = R (k − 1,0 ) + k −1 ∑ f a + k i para k=1,2,...,J.
2 2 i =1,3,5,... 2
4 i R (k, i − 1) − R (k − 1, i − 1)
R (k, i ) = para i=1,2,...,J y k=i,i+1,...,J.
4i − 1
R (0,0 )
R (1,0 ) R (1,1)
R (2,0 ) R (2,1) R (2,2)
M M M O
R (J ,0 ) R (J ,1) R (J ,2) L R (J, J )
2-4
2.4. La cuadratura de Gauss-Legendre
2 x − (b + a ) 1
z= ⇔ x= (b − a )z + 1 (b + a )
b−a 2 2
y la integral se transforma en
b +1
I = ∫ f (x )dx ⇒ I = ∫ g (z ) dz ,
a −1
+1 n
I = ∫ g (z )dz = ∑ w i g (z i ) . (3)
−1 i =0
Esta ecuación así planteada requiere la evaluación de 2n+2 variables (los n+1
pesos y los correspondientes n+1 valores de abscisas).
Vamos a situar el problema para obtener el resultado exacto cuando f(x) y g(z)
son polinomios de grado 3 o inferior, integrando la ecuación de una recta. Esto
se puede conseguir eligiendo n=1, puesto que luego se dispone de 4
parámetros (w0, w1, z0 y z1) que se van a manipular para ajustar el término de
la derecha de (3) de forma exacta:
+1
I = ∫ g (z ) dz = w 0 g (z0 ) + w 1g (z1 ) .
−1
2-5
+1
∫ a dz = 2a = w a + w a 0 1 ⇒ w 0 + w1 = 2
−1
+1
∫ az dz = 0 = w az
−1
0 0 + w 1az1 ⇒ w 0 z0 + w 1z1 = 0
+1 .
2 2
∫ a z dz = 3 a = w az + w 1az12 ⇒ w 0 z0 + w 1z1 =
2 2 2 2
3
0 0
−1
+1
∫ az
3
dz = 0 = w 0 az03 + w 1az13 ⇒ w 0 z0 + w 1z1 = 0
3 3
−1
1 1
w 0 = w1 = 1 , z0 = − , z1 =
3 3
+1
1 1
∫ g (z )dz = g − 3
+ g
3.
−1
2
wi = .
( 2
i )
1 − z [P 'n (zi )]
2
22n +1 (n!)
4
ε= f 2n ) (ξ ) donde -1<ξ<1.
(2n + 1)[(2n )!]3
2-6
n wi zi
2 1.00000 00000 ±0.57735 02692
0.88888 88889 0.00000 00000
3
0.55555 55556 ±0.77459 66692
0.65214 51549 ±0.33998 10436
4
0.34785 48451 ±0.86113 63116
0.56888 88889 0.00000 00000
5 0.47862 86705 ±0.53846 93101
0.23692 68851 ±0.90617 98459
0.46791 39346 ±0.23861 91861
6 0.36076 15730 ±0.66120 93865
0.17132 44924 ±0.93246 95142
M M M
0.20257 82419 25561 0.00000 00000 00000
0.19843 14853 27111 ±0.20119 40939 97435
0.18616 10001 15562 ±0.39415 13470 77563
0.16626 92058 16994 ±0.57097 21726 08539
15
0.13957 06779 26154 ±0.72441 77313 60170
0.10715 92204 67172 ±0.84820 65834 10427
0.07036 60474 88108 ±0.93727 33924 00706
0.03075 32419 96117 ±0.98799 25180 20485
M M M
Se pueden encontrar más tablas de este tipo en el libro editado por Abramowitz
y Stegun.
∞ n
∫ e f (x )dx = ∑ w i f (x i ) + Rn
−x
0 i =1
Pesos: w i =
(n!) x i
2
.
(n + 1)2 [Ln +1 (x i )]2
Resto: R n =
(n!)2 f 2n ) (ξ ) donde 0<ξ<∞.
(2n )!
2-7
2. Integrales con un núcleo exponencial gaussiano:
∞ n
∫ e f (x )dx = ∑ w i f (x i ) + Rn
2
−x
−∞ i =1
n! π 2n )
Resto: R n = f (ξ ) donde -∞<ξ<∞.
2 n (2n )!
Consultar las fotocopias adjuntas para obtener los valores numéricos de los
pesos y las raíces para los dos casos.
Ejercicios
π 1 −x2
1
I = ∫ sen(x )dx = 1
2π −∫1
, I= e 2
dx ≈ 0.6827 .
0
2-8
calculado de las dos primeras columnas (valores obtenidos con las reglas del
trapecio y de Simpson para 2J puntos).
R (0,0 )
R (1,0 ) R (1,1)
R (0,0 )
R (1,0 ) R (1,1)
R (2,0 ) R (2,1) R (2,2)
2-9
Programas de integración
*---------------------------------------------------------------------
* Dada una funcion FORTRAN f(x)continua en el intervalo [a,b]
* esta rutina calcula la integral entre a y b por el metodo de Simpson
*---------------------------------------------------------------------
real*8 function simpson(xmin,xmax,n)
implicit double precision (a-h,o-z)
if (mod(n,2).ne.0) STOP ' Hace falta n par.'
h=(xmax-xmin)/n
fmimpar=0.0d0
do j=1,n-1,2
fmimpar=fmimpar+f(xmin+h*j)
end do
fmpar=0.0d0
do j=2,n-2,2
fmpar=fmpar+f(xmin+h*j)
end do
simpson=(f(xmin)+f(xmax)+fmimpar*4+fmpar*2)*h/3
end
*--------------------------------------------------------------------
2-10
!---------------------------------------------------------------------
¡ Programa en FORTRAN 90
! Integracion por el metodo de Romberg
! En general, la función f(x) debe ser aportada por el usuario
! Este programa tambien muestra la tabla que se va generando
! Aqui se evalua el ln(137.2) como la integral de 1 a 137.2 de la
! funcion 1/x. El resultado es 4.92143969305.
! Para ahorrar memoria solo se trabaja con dos columnas de la tabla.
!---------------------------------------------------------------------
PROGRAM ROMBERG1
implicit double precision (a-h,o-z)
! Intervalo de integracion
a=1.0d0
b=137.2
ba=b-a
write(*,*) (R(k,0),k=0,J)
write(*,*) (R(k,1),k=1,J)
do k=i,J
R(k,1)=(4**i * R(k,0)-R(k-1,0)) / (4**i -1)
end do
R(i:J,0)=R(i:J,1) ! Transferencia
2-11
write(*,*) (R(k,0),k=i,J)
end do
END
!---------------------------------------------------------------------
!---------------------------------------------------------------------
double precision function f(x)
double precision x
f=1/x
END
!---------------------------------------------------------------------
2-12
!---------------------------------------------------------------------
! Integracion por el metodo de Romberg.
! En general, la funcion f(x) debe ser aportada por el usuario.
! Este programa termina cuando dos aproximaciones sucesivas de la
! integral son menores que un parametro de error predeterminado.
! Se muestra la tabla que se va generando y a la izquierda aparecen
! los valores de precision que se van consiguiendo.
! Solo se guardan en memoria los elementos necesarios de la tabla
! que se requieren para hacer los calculos.
!---------------------------------------------------------------------
PROGRAM ROMBERG2
implicit double precision (a-h,o-z)
parameter (maxcol=999)
! Intervalo de integracion
a=1.0d0
b=137.2
ba=b-a
! Precision requerida
epsilon=1.0d-10
k=0
precis=epsilon*10
do while (precis>epsilon) ! Iteraciones
k=k+1 ! Contador de filas/columnas
if (k>maxcol) stop "ERROR: Hace falta redimensionar."
precis=abs(R(1,k)-R(0,k-1))
! Transferencia
R(0,0:k)=R(1,0:k)
2-13
end do
END
!---------------------------------------------------------------------
!---------------------------------------------------------------------
double precision function f(x)
double precision x
f=1/x
END
!---------------------------------------------------------------------
2-14
*--------------------------------------------------------------------
* Cuadratura de Gauss-Legendre.
* Se utiliza la formula de 15 puntos, la cual da resultados
* exactos para polinomios de grado 29 o inferiores.
* Para cada dato z se consideran los puntos –z y +z
* El usuario debe proveer la funcion a integrar f(x)
* en el intervalo [a,b]
*--------------------------------------------------------------------
double precision function fmgau(a,b)
implicit double precision (a-h,o-z)
dimension z(8),w(8)
ab=(a+b)/2
ba=(b-a)/2
fmgau=w(1)*f(ba*z(1)+ab)
do i=2,8
fmgau=fmgau+w(i)*(f(ba*z(i)+ab)+f(-ba*z(i)+ab)
end do
fmgau=fmgau*ba
end
*--------------------------------------------------------------------
2-15